前两天看到个关键词是“github action”,经查询了解到是 github 的持续集成服务,今天来进行配置尝试
配置项目说明
步骤
- 执行
ssh-keygen -f blog-deploy-key
,在 .ssh/
文件中 生成一组 公钥(blog-deploy-key.pub)与私钥(blog-deploy-key)
- 进入 EvanHongYousan.github.io 项目,
setting -> deploy keys -> add deploy key
,命名p_rsa
,把 blog-deploy-key.pub 中的内容填入
这里注意,需要把Allow write access
选项钩上
- 进入 blog 项目,
setting -> Secrets -> add a new secret
,命名s_rsa
,把 blog-deploy-key 中的内容填入
- hexo 中的发布配置,改为 ssh 形式
1 2 3 4 5
| deploy: type: git repo: git@github.com:EvanHongYousan/EvanHongYousan.github.io.git branch: master message:
|
- 最后在 blog 项目,新建
.github/workflows/main.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 35 36 37
| name: Deploy Blog
on: [push]
jobs: build: runs-on: ubuntu-latest
steps: - name: Checkout uses: actions/checkout@v1
- name: Use Node.js 10.x uses: actions/setup-node@v1 with: node-version: "10.x"
- name: Setup Hexo env env: ACTION_DEPLOY_KEY: ${{ secrets.s_rsa }} run: | mkdir -p ~/.ssh/ echo "$ACTION_DEPLOY_KEY" | tr -d '\r' > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan github.com >> ~/.ssh/known_hosts git config --global user.name 'XXXXXX' git config --global user.email 'XXXXXX' npm i -g hexo-cli npm i
- name: Deploy run: | hexo generate && hexo deploy
|
- 至此,任意 blog 项目任意 push 后,都会出发 github action
参考
如何正确的使用 GitHub Actions 实现 Hexo 博客的 CICD