Loading... ## github actions简介 GitHub Actions 是一个 CI/CD(持续集成/持续部署)工具,但也可用作代码运行环境。功能非常强大,能够玩出许多花样。 GitHub默认会提供一个以下配置的服务器做为 runner。 ```sh 2-core CPU 7 GB of RAM memory 14 GB of SSD disk space ``` ## 基本概念 GitHub Actions 有一些自己的术语。 (1)workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。 (2)job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。 (3)step(步骤):每个 job 由多个 step 构成,一步步完成。 (4)action (动作):每个 step 可以依次执行一个或多个命令(action)。 ## workflow GitHub Actions 的配置文件叫做 workflow 文件,存放在代码仓库的.github/workflows目录。 workflow 文件采用 YAML 格式,文件名可以任意取,但是后缀名统一为.yml,比如foo.yml。一个库可以有多个 workflow 文件。GitHub 只要发现.github/workflows目录里面有.yml文件,就会自动运行该文件。 workflow 文件的配置字段非常多,详见官方文档。下面是一些基本字段。 ```yaml name: Greeting from Mona on: push jobs: my-job: name: My Job runs-on: ubuntu-latest steps: - name: Print a greeting env: MY_VAR: Hi there! My name is FIRST_NAME: Mona MIDDLE_NAME: The LAST_NAME: Octocat run: | echo $MY_VAR $FIRST_NAME $MIDDLE_NAME $LAST_NAME. ``` 比如说这样一个 `yaml` 文件,说明了当前的工作流名,触发条件。在工作中,指明 `job_id` 和任务的说明 `name` ,运行所需要的虚拟机环境。步骤则说明了步骤名称、所需的环境变量和步骤运行的命令。 ## 敏感数据 我们可以在 github repo 上依次点击 Settings -> Secrets 设置 secret ```yaml - name: setup aliyun oss uses: manyuanrong/setup-ossutil@master with: endpoint: oss-cn-beijing.aliyuncs.com access-key-id: ${{ secrets.OSS_KEY_ID }} access-key-secret: ${{ secrets.OSS_KEY_SECRET }} ``` 这里的 secret 就是一种 context,描述 CI/CD 一个 workflow 中的上下文信息,使用 ${{ expression }} 语法表示。除了 secret,还有 - github: workflow 的信息,如 github.sha 可以获取当前的 commit SHA,我们可以利用它为 sentry 或者 docker image 打入版本号 - env: 环境变量 - job: 当前执行 job 的信息,如 job.status 表示当前 job 的执行状态 - matrix: 描述一些构建信息,如 node 以及 os 版本号 更多 context 信息可以参考官方文档。 ## 参考文献 [iBug 的github action脚本](https://github.com/iBug/iBug-source/blob/master/script/deploy-actions.sh) [iBug](https://ibugone.com/blog/2018/04/build-github-pages-with-travis-ci/) [GitHub Actions 入门教程](http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html) [GitHub Actions 教程:定时发送天气邮件](http://www.ruanyifeng.com/blog/2019/12/github_actions.html) [github actions 入门指南及实践](https://shanyue.tech/no-vps/github-action-guide.html) [真香!GitHub Action一键部署](https://didiheng.com/front/2019-12-11.html#github-action%E5%8F%91%E5%B8%83%E9%98%BF%E9%87%8C%E4%BA%91ecs) ``` ``` Last modification:January 16th, 2021 at 01:00 pm © 允许规范转载 Support 确定不打赏一下支持博主吗 ×Close Appreciate the author Sweeping payments Pay by AliPay