Github Actions 简介
GitHub Actions 是 Github 推出的一项服务。提供了虚拟服务器环境和 Actions 市场,用于 github 上的项目进行持续集成。这对于 Github 上公开的仓库是免费的,私有仓库有服务器运行时间和存储空间的限制,具体请看 about billing for github actions。
教程
下面介绍怎么如使用 GitHub Actions 部署一个前端项目到 linux 服务器上。
建立 workflow 配置文件
在仓库的根目录中创建文件夹 .github/workflows。在此文件夹中创建一个 .yml 后缀的文件。
文件内容:
1  | name: CI  | 
指定触发事件
我们以推送到 master 分支为例:
1  | on:  | 
更多触发方式参考 Triggering a workflow with events 和 Workflow syntax for GitHub Actions。
配置 jobs 和 build
事件可以触发的多个 job,这里我们添加一个 build job, 指定运行环境。
1  | jobs:  | 
配置 steps
在 build 下配置 steps。
1  | steps:  | 
获取源码
使用 Actions 市场 里的 actions/checkout 获取仓库代码,
1  | - name: Checkout  | 
安装模块和构建
使用 npm 安装模块和运行 build script。
1  | - name: Build  | 
部署
我们要使用 rsync 命令来同步构建好的文件目录到到发布目标服务器。
首先要准备可以在目标服务器上发布的私钥和 known-hosts,添加到仓库设置的 Secrets 中,命名为 SSH_PRIVATE_KEY 和 KNOWN_HOSTS_TEST 这样可以避免被暴露而在配置中使用。用 shimataro/ssh-key-action 安装私钥到 Github Action 的虚拟服务器。

1  | - name: Install SSH key for deploy  | 
使用 rsync 命令同步发布文件夹。
1  | - name: Deploy  | 
推送代码
接下来推送代码到 master 分支即可执行这个 workflow ,将项目部署到服务器。可以在仓库的 Actions 菜单查看运行日志。