GitHub Actions

GitHub Actions帮助您自动完成软件开发周期内的任务。
GitHub Actions 是事件驱动的,在 GitHub Actions 的仓库中自动化、自定义和执行软件开发工作流程。
您可以发现、创建和共享操作以执行您喜欢的任何作业(包括 CI/CD),并将操作合并到完全自定义的工作流程中。

快速入门参考

关于CI

Continuous Integration(持续集成)

持续集成 (CI) 是一种需要频繁提交代码到共享仓库的软件实践。
频繁提交代码能较早检测到错误,减少在查找错误来源时开发者需要调试的代码量。
频繁的代码更新也更便于从软件开发团队的不同成员合并更改。
这对开发者非常有益,他们可以将更多时间用于编写代码,而减少在调试错误或解决合并冲突上所花的时间。

关于CD

Continuous Deploy(持续构建)

工作流程

WorkFlows

工作流程是您添加到仓库的自动化过程。
工作流程由一项或多项作业组成,可以计划或由事件触发。
工作流程可用于在 GitHub 上构建、测试、打包、发布或部署项目。

GitHub Actions 使用 YAML 语法来定义事件、作业和步骤。
这些 YAML 文件存储在代码仓库中名为 .github/workflows 的目录中。

事件

事件是触发工作流程的特定活动。
例如,当有推送提交到仓库或者创建议题或拉取请求时,GitHub 就可能产生活动。
您还可以使用仓库分发 web 挂钩在发生外部事件时触发工作流程。 有关可用于触发工作流程的事件的完整列表,请参阅触发工作流程的事件。

Jobs

作业是在同一运行服务器上执行的一组步骤。
默认情况下,包含多个作业的工作流程将同时运行这些作业。 您也可以配置工作流程按顺序运行作业。
例如,工作流程可以有两个连续的任务来构建和测试代码,其中测试作业取决于构建作业的状态。
如果构建作业失败,测试作业将不会运行。

步骤

步骤是可以在作业中运行命令的单个任务。
步骤可以是操作或 shell 命令。
作业中的每个步骤在同一运行器上执行,可让该作业中的操作互相共享数据。

Node.js的工作流程模板

  1. # 工作流程名称
  2. name: Blog CI
  3. on: [push]
  4. # 触发构建动作
  5. # push:
  6. # # 触发构建分支[默认分支]
  7. # branches: [ $default-branch ]
  8. # pull_request:
  9. # 作业是在同一运行服务器上执行的一组步骤
  10. jobs:
  11. # 作业名称
  12. deploy:
  13. # 运行器(这里是Ubuntu系统)
  14. runs-on: ubuntu-latest
  15. # 作业名称(同deploy)
  16. name: Deploy
  17. # 步骤是可以在作业中运行命令的单个任务
  18. # 步骤可以是操作或 shell 命令
  19. steps:
  20. # 检出推送的代码
  21. - name: Checkout
  22. uses: actions/checkout@v2
  23. # 发布到云开发
  24. - name: Deploy to Tencent CloudBase
  25. uses: TencentCloudBase/cloudbase-action@v2
  26. with:
  27. # 以下参数配置于 github secrets
  28. secretId: ${{secrets.SECRETID}}
  29. secretKey: ${{secrets.SECRETKEY}}
  30. envId: ${{secrets.ENV_ID}}

查看工作流程

查看运行进度的可视化图以及查看 GitHub 上每个步骤的活动。

WorkFlows

WorkFlows.png

jobs

jobs.png

steps

steps.png

yaml语法