注: 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
要从同一工作流程运行中下载构件,下载作业应指定 needs: upload-job-name
,使其在上� 作业完成之前不会开始。
有关构件的更多信息,请参阅“使用构件持久化工作流程”。
后续步骤
要继续了解 GitHub Actions,请参阅“管理复杂的工作流”。