通过github actions实现:vuepress博客自动构建,github仓库自动同步到gitee,giteepage自动部署

时间:2021-2-20 作者:admin

说明

vuepress博客的本地构建过程转移到github-actions中,同时支持将构建结果自动部署到gitee上,且可以自动更新gitee pages

使用此action后你将不再需要关心博客构建的问题,只需要在本地将文档写好后,push到仓库。剩下的构建以及部署交给,github actions就好了。

既节省了本地空间,又减少了操作步骤。

使用 github actions

如果你是第一次使用此工具可以参考官方介绍github-actions,也可以参考阮一峰-GitHub Actions 入门教程

完整actions代码

此处假设你已经掌握了github actions的基本使用方法,如果你不清楚如何使用已下代码请参看上面关于如何使用github actions的内容。下面会对代码内部的参数做详细的介绍

name: A TO A:GH_PAGES
on: [push]
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@master

    - name: Build and Deploy
      uses: jenkey2011/vuepress-deploy@master
      env:
        ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
        # 你要操作的目标仓库
        TARGET_REPO: linzowo/linzowo.github.io
        # 构建结果存储的分支
        TARGET_BRANCH: gh_pages
        # 要使用的构建命令
        BUILD_SCRIPT: yarn && yarn build
        # 构建结果存储目录
        BUILD_DIR: docs/.vuepress/dist/
  sync:
    needs: build-and-deploy
    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:linzowo/linzowo.github.io.git"
        # 目标仓库
        destination-repo: "git@gitee.com:linzowo/linzowo.git"
  reload-pages:
    needs: sync
    runs-on: ubuntu-latest
    steps:
      - name: reload
        uses: mizuka-wu/gitee-pages-action@v1.0.0
        with:
          repository: linzowo/linzowo
          cookie: ${{ secrets.GITEE_COOKIE }}
          branch: gh_pages

针对每个job的单独说明

vuepress自动构建及github page部署:build-and-deploy

此actions来源vuepress-deploy,如果在配置中有不清楚的部分可以参考该项目的文档。下面将对其中模糊的部分进行说明。

关键词 说明
secrets. 在项目的设置中有一个Secrets选项下面可以存储一些常用值,这些值在actions中可以访问
secrets.ACCESS_TOKEN 此secrets下存储的是你账户的token ===> token创建步骤:点击你的头像 > Settings > Developer settings > Personal access tokens > Generate new token. 权限至少要勾选repo,不清楚的,直接无脑全选就行~ 问题不大,不要慌。 ===> 创建完成后将生成的token保存下来,在项目secrets下创建ACCESS_TOKEN将你生成的token存入其中就好了

同步githubpage至giteepage:sync

此actions来源Git Mirror Action,如果在配置中有不清楚的部分可以参考该项目的文档。下面将对其中模糊的部分进行说明。

关键词 说明
secrets. 在项目的设置中有一个Secrets选项下面可以存储一些常用值,这些值在actions中可以访问
secrets.GITEE_RSA_PRIVATE_KEY 此secrets下存储的是你常用电脑的ssh私钥 ===> 如果你不知道如何生成ssh,参考此教程生成 SSH 公钥,生成对应的ssh公钥后。进入.ssh文件夹中获取id_rsa文件(注意此处的id_rsa文件是无后缀的)中的值。将此值存入GITEE_RSA_PRIVATE_KEY即可。 ===> 完成这一步后我们需要去gitee上存储对应的公钥 ===> 进入gitee ==> 点击头像 ==> 点击设置 ==> 找到安全设置 ==> 找到ssh公钥 ==> 获取.ssh文件夹中id_rsa.pub文件中的值。使用此值添加到账户的公钥中

giteepage自动部署:reload-pages

这个actions是为了解决giteepage仓库更新后不能自动部署的问题。此actions来源gitee-pages-action,如果在配置中有不清楚的部分可以参考该项目的文档。下面将对其中模糊的部分进行说明。

关键词 说明
secrets. 在项目的设置中有一个Secrets选项下面可以存储一些常用值,这些值在actions中可以访问
secrets.GITEE_COOKIE 此secrets下存储的是你已经登录gitee后更新pages的时候那个rebuild请求中的值。具体操作步骤我已经在gitee-pages-action做了详细记录。可以参考其进行配置

鸣谢

感谢您的阅读,如果此文档对您有所帮助,我也十分高兴。

同时感谢一下开源作者的贡献

Jenkey2011

required

Edward Mizuka

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。