注:GitHub Enterprise Server 2.22 上的 GitHub Actions 支持是有限的公测版。 测试已结束。 GitHub Actions 现在一般可用于 GitHub Enterprise Server 3.0 或更新版本。 更多信息请参阅 GitHub Enterprise Server 3.0 发行说明。
- 有关升级到 GitHub Enterprise Server 3.0 或更新版本的更多信息,请参阅“升级 GitHub Enterprise Server”。
- 有关在升级后配置 GitHub Actions 的更多信息,请参阅 GitHub Enterprise Server 3.0 的文档。
注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。
概览
GitHub Actions 允许您自定义工作流程,以满足应用程序和团队的独特需求。 在本指南中,我们将讨论一些基本的自定义技术,例如使用变量、运行脚本以及在作业之间共享数据和构件。
在工作流程中使用变量
GitHub Actions 包含每个工作流程运行的默认环境变量。 如果您需要使用自定义环境变量,可以在 YAML 工作流程文件中设置这些变量。 此示例演示如何创建名为 POSTGRES_HOST
和 POSTGRES_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,请参阅“管理复杂的工作流”。