以 hexo 为例学习 github 的自动构建功能 actions
简介
GitHub Actions
是一种持续集成和持续交付 (CI/CD
) 平台,可用于自动执行生成、测试和部署管道。 你可以创建工作流,以便在推送更改到存储库时运行测试,或将合并的拉取请求部署到生产环境。更多查看官网文档
下面我们将以 hexo
博客的构建示例来说明。
代码集成
首先在项目的根目录下新建目录:.github/workflows
然后在这个新目录中,新建我们的构建配置文件,例如:webpack.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 38 39 40
| name: NodeJS with Hexo blog
on: push: branches: ["master"] pull_request: branches: ["master"]
jobs: build: runs-on: ubuntu-latest
strategy: matrix: node-version: [16.20.2]
steps: - uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }}
- name: Hexo Setup run: | npm i -g hexo-cli
- name: Build run: | npm install npm run build
- name: Upload ftp uses: sebastianpopp/ftp-action@releases/v2 with: host: ${{ secrets.FTP_SERVER }} user: ${{ secrets.FTP_USERNAME }} password: ${{ secrets.FTP_PASSWORD }} localDir: "public"
|
配置解读
可以看到上面定义了一个任务在推送后会被执行。
使用的 nodejs
的版本为:16.20.2
。
然后后面就是编译的过程,最后使用 sebastianpopp/ftp-action@releases/v2
库,来上传到我们的 web
所在的 FTP
服务器上。
更多的工作流模板,可以查看
github 配置
进入 github
的项目主页,找到 Actions
入口,当推送后,在这里就可以看到具体的任务情况。
在前面我们的 yml
配置文件中,有一个 FTP
上传的信息,这块是在 github
另外的地方配置的,当前项目>Settings->Secrets and variables->Actions
这样,我们就能在每次推送完新提交后,启动自动构建流程,并将构建成功后的内容自动上传到服务器进行部署。