通过actions在github上自动化CI/CD

actions的配置在.github/workflows/*.yml

tips

配置文件可以通过vscode插件Github Action自动提示语法

搜索: spublisher:"Mathieu Dutour"

语法参考

  1. 在github上可以通过Actions选项卡,快速通过魔板创建actions,不过你需要一点相关语法.

  2. 通过一个官网的示例(参考: understanding-github-actions),来快速认识

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v
      - shell: bash
        run: echo hello

语法解释

  1. on, 配置事件的触发
  2. jobs, 配置构建任务,可以包含多个job
  3. check-bats-version, 自定义的job名字,
  4. runs-on: 运行环境,一般为ubuntu-latest, 由github提供(参考: Runner-Host)
  5. steps: job的步骤,包含多个
  6. uses: github预定义好的actions操作.指定action仓库地址(例如: actions/checkout@v2)
  7. (参考: github内置的actions)
  8. (参考: 创建自定义的actions)
  9. ps. 当然你可以通过run执行自定义脚本.
  10. run: 运行shell命令 (参考: syntax for github-actions)中using-a-specific-shell一栏

自定义Actions示例

  1. fork github action示例
  2. [在workflows中使用]
#替换示例:
      - uses: axinyue/hello-world-docker-action@main

# 需要注意: @ref不能省略的,可以使用分支名,tag

参考

错误提示

  1. workflows中, uses标签中的用户/仓库名@分支 格式不正确,检查仓库地址,或者镜像名是否正确.
Error : .github#L1
the `uses' attribute must be a path, a Docker image, or owner/repo@ref