Github ActionsGitHub推出的持续集成服务(CI/CD),可以放弃Jenkins了,节省一台服务器。

# 基本概念

  • workflow:工作流程
  • job:任务
  • step:步骤
  • action:动作/命令

文件存放于项目根目录下的.github/workflows/**.yml

# 基本语法

# test.yml
# 名称:未设置取文件名
name: test
# 触发事件
on:
  # 推送事件
  push:
    # 分支
    branches:
      - master
  # 定时任务
  schedule:
    # 国际标准时间21点,北京时间5点
    - cron: '0 21 * * *'
# 任务
jobs:
  # 任务ID
  job1:
    # 任务说明
    name: 第一个任务
    # 虚拟机环境:windows-latest、ubuntu-latest、macOS-latest
    runs-on: ubuntu-latest
    # 步骤
    steps:
      # 步骤说明
      - name: 步骤
        # 条件判断:总是运行always、上一步成功success、上一步失败failure
        if: always()
        # 环境变量
        evn:
          HOME_PATH: ../home
        # 使用action
        uses: actions/checkout@v1
        # 使用Docker
        uses: docker://node:alpine
        # 运行命令
        run: |
          npm install
          npm run build
  job2:
    name: 第二个任务
    # 前任务的依赖关系
    needs: job1

注意

📢 触发事件见文档 (opens new window)、工作流程语法见文档 (opens new window)

# 常用Action

我们可以在官方市场 (opens new window)里搜索所有action,比较常用的有:

名称 功能
actions/checkout (opens new window) 更新代码
actions/setup-node (opens new window) 安装Nodejs
peaceiris/actions-gh-pages (opens new window) 提交生成代码到某个分支
manyuanrong/setup-ossutil (opens new window) 提交生成代码到阿里云OSS
bingblue/send-nodemailer (opens new window) 发送邮件
稍后更新 (opens new window) 发送短信
elgohr/Publish-Docker-Github-Action (opens new window) 发布Docker到私有库