注意:GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。
概述
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@v3
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@v3
with:
name: output-log-file
若要从同一工作流运行中下载工件,下载作业应指定 needs: upload-job-name
,使其在上传作业完成之前不会开始。
有关项目的详细信息,请参阅“将工作流程数据存储为构件”。
后续步骤
若要继续了解 GitHub Actions,请参阅“关于工作流程”。