使用 github action 自动化可以让我们发布博客更加简单,只需要把代码提交到 github 仓库即可。
准备
关于如何使用 git 上传博客到自己的服务器可以查看我之前写的Hexo博客部署到服务器。
部署到 github page
action 配置
在项目根目录下创建 .github/workflows
文件夹,然后在该文件夹下创建 deploy-gh-page.yml
文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| name: Deploy to gh-page
on: push: branches: - master
jobs: deploy-gh-page: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: ref: master fetch-depth: 0 - uses: pnpm/action-setup@v2 with: version: 7 run_install: false - uses: actions/setup-node@v3 with: node-version: "16" cache: "pnpm" - name: Install dependencies run: pnpm install --frozen-lockfile - name: Build run: npm run build - name: Deploy to gh-page uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public
|
部署到服务器
SSH key
添加 SSH Private Key 到 github repo -> settings -> Secrets and variables -> Actions
。
action 配置
在上文的配置基础上,增加如下配置:
1 2 3 4 5 6 7 8 9 10 11 12 13
| deploy-to-server: runs-on: ubuntu-latest needs: [deploy-gh-page] steps: - name: Deploy to server uses: wei/git-sync@v3 with: source_repo: JakeLaoyu/blog source_branch: refs/remotes/source/gh-pages destination_repo: root@110.40.198.64:/www/wwwroot/blog.git destination_branch: refs/heads/master destination_ssh_private_key: ${{ secrets.SERVER_PRIVATE_KEY }}
|
效果
同步至 gitee 等
依赖 wearerequired/git-mirror-action 我们可以很方便实现。
在项目根目录下创建 .github/workflows
文件夹,然后在该文件夹下创建 sync-to-gitee.yml
文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| name: Sync to Gitee
on: push: branches: [master]
jobs: sync: runs-on: ubuntu-latest steps: - name: Sync to Gitee uses: wearerequired/git-mirror-action@master env: SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }} with: source-repo: git@github.com:JakeLaoyu/blog.git destination-repo: git@gitee.com:jakelaoyu/HexoBlogBackup.git
|