AboutPostsGithub

基于GithubAction的CICD尝试

CI/CD 的定义

CI/CD falls under DevOps (the joining of development and operations teams) and combines the practices of continuous integration and continuous delivery.

换言之,CI/CD就是在产品不断的更改部署中寻求自动化的一个流程,简化了测试、部署、交付等等机械性工作。

当然,对于独立开发来说,它最大的效果就是减少了登录服务器的次数,不必每一次修改的时候都要在服务器一次又一次部署。

Github Action

不得不说,Github Action确实是好用,它可以直接监听一个被托管项目的活动(比如push、pr),并通过.github/workflow直接配置需要完成的jobs,即使是部署,也可以通过别人做好的Action完成。简单高效

使用方法

.github/workflows下创建yml文件,它会出现在GithubAction界面

dev.yml

name: dev-ci
on:
  push:
    branches:
      - master

name设定流程名称,on则可以指定监听的活动及其branch。

需要注意的是:一个步骤前面只能有一个- ,比如use、name、run,如果使用了name,下方的use或run就不需要加了。

jobs:
  deploy_ghpages:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: 12.16.1
      - name: build static page
        run: |
          node ./script/run.js
          npm install gitbook-cli -g
          gitbook install
          gitbook build
      - name: deploy
        uses: cross-the-world/scp-pipeline@master
        with:
          host: ${{ secrets.MY_HOST }} # 服务器IP(需要在GitHub上自行配置对应的secret)
          user: ${{ secrets.MY_USER }} # 服务器用户名
          pass: ${{ secrets.MY_PASS }} # 服务器密码
          connect_timeout: 10s
          local: "./_book/*" # 源路径(工作流)
          remote: /var/www/ZFS-mds # 目标路径(服务器)