Github Action指北


引言

GitHub Action 是 GitHub 于 2018 年 10 月推出的一个 CI\CD 服务,其主旨是帮助您建立强大而动态的自动化。

之前一直都是 Beta 版本,正式版于 2019 年 11 月正式推出。

GitHub Action :https://github.com/features/actions

GitHub Action 官方市场:https://github.com/marketplace?type=actions

CI\CD 说的是三件事情:持续集成(Continuous Integration)、持续交付(Continuous Delivery)、持续部署(Continuous Deployment)。因为持续交付和持续部署的英文缩写是一样的,所以这三件事情缩写成了 CI\CD 。

GitHub Action 基本概念

GitHub Actions 有一些自己的术语。

  • workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。
  • job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。
  • step(步骤):每个 job 由多个 step 构成,一步步完成。
  • action (动作):每个 step 可以依次执行一个或多个命令(action)。

workflow 文件的配置字段非常多,详情可以参考官方文档:Workflow syntax for GitHub Actions

如何使用Github Action

如何快速使用Github Action也给出了官方指南文档https://docs.github.com/cn/actions/learn-github-actions

大家对YAML语言不清楚可以查看,YAML语言教程http://www.ruanyifeng.com/blog/2016/07/yaml.html

下面主要列举一些常见的,示例如下:

name: learn-github-actions
on:
push:
  branches:
    - 'development*'
jobs:
check-bats-version:
  runs-on: ubuntu-latest
  outputs:
    VERSION: ${{ steps.release_version.outputs.VERSION }}
  steps:
    - uses: actions/checkout@v2
    env:
          KUBE_CONFIG_DATA: ${{ secrets.KUBECONFIG_AP_EAST_1_DEV }}
          CHART_NAME: payment-dash
    - name: install node
      uses: actions/setup-node@v1
    with:
      username: ${{ secrets.DOCKER_HUB_USER }}
      password: ${{ secrets.DOCKER_HUB_TOKEN }}
    - run: npm install -g bats
    - run: bats -v
name: learn-github-actions可选 – 将出现在 GitHub 仓库的 Actions(操作)选项卡中的工作流程名称。
on:指定自动触发工作流程文件的事件。
push:此示例使用 push 事件,这样每次有人推送更改到仓库时,作业都会运行。 您可以设置工作流程仅在特定分支、路径或标记上运行。 有关包含或排除分支、路径或标记的语法示例,请参阅“GitHub Actions 的工作流程语法”
branches:
– ‘development*’指定哪些分支可出发,可指定多个或者使用通配符
jobs:learn-github-actions 工作流程文件中运行的所有作业组合在一起。
check-bats-version:定义存储在 jobs 部分的 check-bats-version 作业的名称。
runs-on: ubuntu-latest配置作业在 Ubuntu Linux 运行器上运行。 这意味着该作业将在 GitHub 托管的新虚拟机上执行。 有关使用其他运行器的语法示例,请参阅“GitHub Actions 的工作流程语法”
outputs:
VERSION: ${{ steps.release_version.outputs.VERSION }}输出是字符串,当每个作业结束时,在运行器上评估包含表达式的作业输出。 包含密码的输出在运行器上编辑,不会发送至 GitHub Actions。${{}} 用来取当前运行环境的环境变量
steps:check-bats-version 作业中运行的所有步骤组合在一起。 此部分下嵌套的每项都是一个单独的操作或 shell 命令。
– uses: actions/checkout@v2uses 关键字指示作业检索名为 actions/checkout@v2 的社区操作的 v2。 这是检出仓库并将其下载到运行器的操作,允许针对您的代码运行操作(例如测试工具)。 只要工作流程针对仓库的代码运行,或者您使用仓库中定义的操作,您都必须使用检出操作。
env:

KUBE_CONFIG_DATA: ${{ secrets.KUBECONFIG_AP_EAST_1_DEV }}

           CHART_NAME: payment-dash | 设置供步骤用于运行器环境的环境变量。 您也可以设置整个工作流程或某个作业的环境变量。 |

| – name | 步骤名称,可在显示在action步骤里 |

| – uses: actions/setup-node@v1 | 此操作会在运行器上安装 node 软件包,使您可以访问 npm 命令。 |

| with:

          username: ${{ secrets.DOCKER_HUB_USER }}

          password: $${{ secrets.DOCKER_HUB_TOKEN }} | 每个输入参数都是一个键/值对。 输入参数被设置为环境变量。 该变量的前缀为 INPUT_,并转换为大写。这些输入变量将被 setup-node 操作作为 INPUT_USERNAME、和 INPUT_PASSWORD 环境变量使用。 $${{}}中的可以在我们在项目中settings/secrets设置环境变量,供workflow使用 | | – run: npm install -g bats |run关键字指示作业在运行器上执行命令。 在这种情况下,使用npm来安装bats软件测试包。 | | – run: bats -v | 最后,您将运行bats 命令,并且带有输出软件版本的参数。 |


《“Github Action指北”》 有 1 条评论

发表回复

您的电子邮箱地址不会被公开。