前言
最近听说 antd 4.0 发布了,心痒加手痒,决定尝试尝试,当提交代码到 github 时,弹出了 github actions 推广卡片。由于双十一剁手买的云主机一直处于吃灰状态,决定借这个机会玩一下 持续集成。
费用
参见 github action 定价
每月有 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 下添加服务器地址,私钥等信息
然后编辑 workflow 文件
name: Node CIon: [push] # 触发事件jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v1 # checkout 插件,由于使用 master 分支,这个插件这次没有泳道- name: Install Node.js # 安装 nodejsuses: actions/setup-node@v1with:node-version: '10.x'- name: Install npm dependencies # 安装依赖run: npm install- name: Run build task # build 代码run: npm run build --if-present- name: Deploy to Server # 部署到服务器uses: easingthemes/ssh-deploy@v2.0.7env:SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}ARGS: "-rltgoDzvO --delete"SOURCE: "dist/"REMOTE_HOST: ${{ secrets.REMOTE_HOST }}REMOTE_USER: ${{ secrets.REMOTE_USER }}TARGET: ${{ secrets.REMOTE_TARGET }}
效果
如下图,界面简洁友好。部署时打印各部日志和耗时以供排查问题使用。

