此版本的 GitHub Enterprise 已停止服务 2021-09-23. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

GitHub Actions 的基本功能

GitHub Actions 旨在帮助您建立强大而动态的自动化。 本指南说明如何创建包括环境变量、定制化脚本等的 GitHub Actions 工作流程。

注:GitHub Enterprise Server 2.22 上的 GitHub Actions 支持是有限的公测版。 测试已结束。 GitHub Actions 现在一般可用于 GitHub Enterprise Server 3.0 或更新版本。 更多信息请参阅 GitHub Enterprise Server 3.0 发行说明


注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。

概览

GitHub Actions 允许您自定义工作流程,以满足应用程序和团队的独特需求。 在本指南中,我们将讨论一些基本的自定义技术,例如使用变量、运行脚本以及在作业之间共享数据和构件。

在工作流程中使用变量

GitHub Actions 包含每个工作流程运行的默认环境变量。 如果您需要使用自定义环境变量,可以在 YAML 工作流程文件中设置这些变量。 此示例演示如何创建名为 POSTGRES_HOSTPOSTGRES_PORT 的自定义变量。 然后,这些变量可供 node client.js 脚本使用。

jobs:
  example-job:
      steps:
        - name: Connect to PostgreSQL
          run: node client.js
          env:
            POSTGRES_HOST: postgres
            POSTGRES_PORT: 5432

更多信息请参阅“使用环境变量”。

添加脚本到工作流程

您可以使用操作来运行脚本和 shell 命令,然后在指定的运行器上执行。 此示例演示操作如何使用 run 关键字在运行器上执行 npm install -g bats

jobs:
  example-job:
    steps:
      - run: npm install -g bats

例如,要将脚本作为操作运行,您可以将脚本存储在您的仓库中并提供路径和 shell 类型。

jobs:
  example-job:
    steps:
      - name: Run build script
        run: ./.github/scripts/build.sh
        shell: bash

更多信息请参阅“GitHub Actions 的工作流程语法”。

在作业之间共享数据

如果作业生成您要与同一工作流程中的另一个作业共享的文件,或者您要保存这些文件供以后参考,可以将它们作为构件存储在 GitHub 中。 构件是创建并测试代码时所创建的文件。 例如,构件可能包含二进制或包文件、测试结果、屏幕截图或日志文件。 构件与其创建时所在的工作流程运行相关,可被另一个作业使用。

例如,您可以创建一个文件,然后将其作为构件上传。

jobs:
  example-job:
    name: Save output
    steps:
      - shell: bash
        run: |
          expr 1 + 1 > output.log
      - name: Upload output file
        uses: actions/upload-artifact@v2
        with:
          name: output-log-file
          path: output.log

要从单独的工作流程运行下载构件,您可以使用 actions/download-artifact 操作。 例如,您可以下载名为 output-log-file 的构件。

jobs:
  example-job:
    steps:
      - name: Download a single artifact
        uses: actions/download-artifact@v2
        with:
          name: output-log-file

有关构件的更多信息,请参阅“使用构件持久化工作流程”。

后续步骤

要继续了解 GitHub Actions,请参阅“管理复杂的工作流”。