注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。
概览
在工作流程中使用的操作可以定义于:
- 与工作流程文件相同的仓库
- 任何公共仓库
- Docker Hub 上发布的 Docker 容器图像
GitHub Marketplace 是您查找 GitHub 社区创建的操作的中心位置。
Note: GitHub Actions on your GitHub Enterprise Server instance may have limited access to actions on GitHub.com or GitHub Marketplace. For more information, see "Managing access to actions from GitHub.com" and contact your GitHub Enterprise site administrator.
从相同仓库添� 操作
如果操作在工作流程文件使用该操作的同一仓库中定义,您可以在工作流程文件中通过 {owner}/{repo}@{ref}
或 ./path/to/dir
语法引用操作。
示例仓库文件结构:
|-- hello-world (repository)
| |__ .github
| └── workflows
| └── my-first-workflow.yml
| └── actions
| |__ hello-world-action
| └── action.yml
示例工作流程文件:
jobs:
build:
runs-on: ubuntu-latest
steps:
# This step checks out a copy of your repository.
- uses: actions/checkout@v2
# This step references the directory that contains the action.
- uses: ./.github/actions/hello-world-action
action.yml
文件用于提供操作的元数据。 要了解此文件的内容,请参阅“GitHub Actions 的元数据语法”。
从不同仓库添� 操作
如果在与工作流程文件不同的仓库中定义了某个操作,则可以在工作流程文件中使用 {owner}/{repo}@{ref}
语法引用该操作。
该操作必须存储在公共仓库。
jobs:
my_first_job:
steps:
- name: My first step
uses: actions/setup-node@v1.1.0
引用 Docker Hub 上的容器
如果操作在 Docker Hub 上发布的 Docker 容器图像中定义,您必须在工作流程文件中通过 docker://{image}:{tag}
语法引用操作。 为保护代� �和数据,强烈建议先验证 Docker Hub 中 Docker 容器图像的完整性后再将其用于工作流程。
jobs:
my_first_job:
steps:
- name: My first step
uses: docker://alpine:3.8
有关 Docker 操作的部分示例,请参阅 Docker-image.yml 工作流程和“创建 Docker 容器操作”。
对自定义操作使用发行版管理
社区操作的创建者可以选择使用� �记、分支或 SHA 值来管理操作的版本。 与任何依赖项类似,您应该� �据自动接受操作更新的舒适程度来指示要使用的操作版本。
您将在工作流程文件中指定操作的版本。 检查操作的文档,了解其发行版管理方法的信息,并查看要使用的� �记、分支或 SHA 值。
注意: 我们建议您在使用第三方操作时使用 SHA 值。 更多信息请参阅“GitHub Actions 的安全性增强”。
使用� �记
� �记可用于让您决定何时在主要版本和次要版本之间切换,但这只是临时的,可能被维护员移动或� 除。 此示例演示如何定位已� �记为 v1.0.1
的操作:
steps:
- uses: actions/javascript-action@v1.0.1
使用 SHA
如果需要更可� 的版本控制,应使用与操作版本关联的 SHA 值。 SHA 是不可变的,� 此比� �记或分支更可� 。 但是,此方法意味着您不会自动接收操作的更新,包括重要的 Bug 修复和安全更新。 此示例针对操作的 SHA:
steps:
- uses: actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89
使用分支
为操作指定目� �分支意味着它将始终在该分支上运行当前的版本。 如果对分支的更新包含重大更改,此方法可能会� 成问题。 此示例针对名为 @main
的分支:
steps:
- uses: actions/javascript-action@main
更多信息请参阅“对操作使用发行版管理”。
对操作使用输入和输出
操作通常接受或需要输入并生成可以使用的输出。 例如,操作可能要求您指定文件的路径、� �签的名称或它将用作操作处理一部分的其他数据。
要查看操作的输入和输出,请检查仓库� �目录中的 action.yml
或 action.yaml
。
在此示例 .yml
中, inputs
关键字定义名为 file-path
的必需输入,并且包括在未指定任何输入时使用的默认值。 outputs
关键字定义名为 results-file
的输出,告诉您到何处查找结果。
name: "Example"
description: "Receives file and generates output"
inputs:
file-path: # id of input
description: "Path to test script"
required: true
default: "test-file.js"
outputs:
results-file: # id of output
description: "Path to results file"
后续步骤
要继续了解 GitHub Actions,请参阅“GitHub Actions 的基本功能”。