将指定内容自动更新到另一个代码仓库中
-
登录https://github.com,创建Personal access token:
(1)github右上角,点击头像,进入Settings => Developer settings => Personal access tokens 下面的Tokens (classic)中,点击Generate new token,选择Generate new token (classic)
(2)跳出的页面中输入github密码进行验证,
(3)Note中填写此token的描述,过期时间自己选择,select scopes中选择repo(全选),点击Generate token按钮,即可生成一个token,此时会显示具体token内容,记得一定要复制!!!(只此显示一次,后面都不会再次显示)
-
进入该代码仓库中新增secret,按照下图新增一个secret,对于需要用到的用户名、邮箱也可以在这里自定义添加,到这里配置基本结束
-
接下来点击Actions创建wokeflows脚本,目录在.guthub/workflows目录下选择合适的工作流脚本文件
-
脚本文件内容如下(根据需要调整内容,复制后请把//后面的注释删掉):
name: update fe-toolkit-doc
on:
push:
branches:
- master // 这里替换为自己要触发的分支
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v2
with:
node-version: '18.x'
- name: Install Dependencies
run: npm i
- name: Build
run: npm run build:doc // 替换为自己的打包命令
- name: Clone destination repository
run: |
git clone https://这里是github的username:${{ secrets.API_TOKEN_GITHUB }}@github.com/这里是github的username/要提交代码的另一个仓库名称.git destination_repo
- name: Backup all files in the repository
run: |
mkdir -p dist/backup // 创建备份文件
cp -r destination_repo/* dist/backup/
- name: Remove all files from the repository
run: |
cd destination_repo
git rm -r *
- name: Commit and push changes
run: |
cd destination_repo
git config --local user.email ${{ secrets.USER_EMAIL }}
git config --local user.name ${{ secrets.USER_NAME }}
git commit -m "Remove all files"
git push origin master
- name: Push to another repository
uses: cpina/github-action-push-to-another-repository@main
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
with:
source-directory: 'dist' // 要提交的目标文件
destination-github-username: ${{ secrets.STORE_USER_NAME }}
destination-repository-name: ${{ secrets.STORE_ANOTHER_NAME }}
user-email: ${{ secrets.USER_EMAIL }}
target-branch: master // 目标分支
- 提交代码后到 Actions下工作流查看进度和日志
代码提交后自动发布更新npm包
- 按照上面第一步操作创建一个Personal access token
- 按照上面第二步添加该Personal access token
- 登录https://www.npmjs.com/,按照下图去创建npm的access token(会跳出npm的验证页面,输入密码即可),最后会生成一个token,记得一定要复制!!!,此token只会出现一次
- 然后我们登录到gihub上,打开自己的代码仓库,将此token放到仓库中的secrets中,此时就基本完成的所有的创建工作
- 按照上面第三部操作创建一个工作流脚本文件
- 脚本内容如下(根据需要调整内容,复制后请把//后面的注释删掉):
name: npm publish
on:
push:
branches:
- master // 触发分支
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: |
cd packages/utils // 要发布的npm文件目录
npm i
- name: Set user info
run: |
git config user.name 自己的username
git config user.email 自己的邮箱
- name: Version bump and Publish to npm // 每次发布都需要更新版本号
run: |
cd packages/utils // 要发布的npm文件目录
npm version patch -m "Version bumped to %s" && npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Commit and push changes // 发布后需要将增加的版本号更新到仓库中
run: |
git config --local user.email ${{ secrets.USER_EMAIL }}
git config --local user.name ${{ secrets.USER_NAME }}
git add .
git commit -m "Update version"
git push https://这里是github的username:${{ secrets.API_TOKEN_GITHUB }}@github.com/这里是github的username/这里是github的仓库名称.git