前言

最近听说 antd 4.0 发布了,心痒加手痒,决定尝试尝试,当提交代码到 github 时,弹出了 github actions 推广卡片。由于双十一剁手买的云主机一直处于吃灰状态,决定借这个机会玩一下 持续集成。
image.png

费用

参见 github action 定价
image.png
每月有 2000 分钟的免费 action 运行时间,本测试项目当前 deploy 一次的时间是 3 分钟,那么 2000/3/30 = 22,平均每天可以有 22 次 deploy,这对于想我这种初级玩家来说已经足够了。在此感激大厂的慷慨。

插件选用

在官方市场上搜索部署用 action
比较火的有基于 rsync 的 https://github.com/marketplace/actions/rsync-deployments
和基于 ssh 的 https://github.com/marketplace/actions/ssh-deploy
由于个人使用 rsync 比较少,对 ssh 比较熟悉,所以选用 后者。

配置

首先在代码仓库 settings -> secrets -> add a new secret 下添加服务器地址,私钥等信息
image.png
然后编辑 workflow 文件

  1. name: Node CI
  2. on: [push] # 触发事件
  3. jobs:
  4. build:
  5. runs-on: ubuntu-latest
  6. steps:
  7. - uses: actions/checkout@v1 # checkout 插件,由于使用 master 分支,这个插件这次没有泳道
  8. - name: Install Node.js # 安装 nodejs
  9. uses: actions/setup-node@v1
  10. with:
  11. node-version: '10.x'
  12. - name: Install npm dependencies # 安装依赖
  13. run: npm install
  14. - name: Run build task # build 代码
  15. run: npm run build --if-present
  16. - name: Deploy to Server # 部署到服务器
  17. uses: easingthemes/ssh-deploy@v2.0.7
  18. env:
  19. SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
  20. ARGS: "-rltgoDzvO --delete"
  21. SOURCE: "dist/"
  22. REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
  23. REMOTE_USER: ${{ secrets.REMOTE_USER }}
  24. TARGET: ${{ secrets.REMOTE_TARGET }}

效果

如下图,界面简洁友好。部署时打印各部日志和耗时以供排查问题使用。

WX20200315-230249@2x.png