我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

GitHub 操作的元数据语法

您可以创建操作来执行仓库中的任务。 操作需要使用 YAML 语法的元数据文件。

GitHub 操作 is available with GitHub Free, GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. 更多信息请参阅“GitHub 的产品。”

本文内容

关于 GitHub 操作 的 YAML 语法

Docker 和 JavaScript 操作需要元数据文件。 元数据文件名必须为 action.yml。 元数据文件中的数据定义操作的输入、输出和主要进入点。

操作元数据文件使用 YAML 语法。 如果您是 YAML 的新用户,请参阅“五分钟了解 YAML”。

name

必要 操作的名称。 GitHub 在 Actions(操作)选项卡中显示 name,帮助从视觉上识别每项作业中的操作。

作者

可选 操作的作者姓名。

description

必要 操作的简短描述。

inputs

可选 输入参数用于指定操作在运行时预期使用的数据。 GitHub 将输入参数存储为环境变量。 大写的输入 ID 在运行时转换为小写。 建议使用小写输入 ID。

示例

此示例配置两个输入:numOctocats 和 octocatEyeColor。 numOctocats 输入不是必要的,默认值为 '1'。 octocatEyeColor 输入是必要的,没有默认值。 使用此操作的工作流程文件必须使用 with 关键词来设置 octocatEyeColor 的输入值。 有关 with 语法的更多信息,请参阅“GitHub 操作 的工作流程语法”。

inputs:
  numOctocats:
    description: 'Number of Octocats'
    required: false
    default: '1'
  octocatEyeColor:
    description: 'Eye color of the Octocats'
    required: true

在指定工作流程文件中某个操作的输入或者使用默认输入值时,GitHub 将为名称为 INPUT_<VARIABLE_NAME> 的输入创建环境变量。 创建的环境变量将输入名称转换为大写,并将空格替换为 _ 字符。

例如,如果工作流程定义了 numOctocats and octocatEyeColor 输入,操作代码可使用 INPUT_NUMOCTOCATSINPUT_OCTOCATEYECOLOR 环境变量读取输入的值。

inputs.<input_id>

必要 要与输入关联的 string 识别符。 <input_id> 的值是输入元数据的映射。 <input_id> 必须是 inputs 对象中的唯一识别符。 <input_id> 必须以字母或 _ 开关,并且只能包含字母数字、-_

inputs.<input_id>.description

必要 输入参数的 string 描述。

inputs.<input_id>.required

必要 表示操作是否需要输入参数的 boolean。 当参数为必要时设置为 true

inputs.<input_id>.default

可选 表示默认值的 string。 当工作流程文件中未指定输入参数时使用默认值。

outputs

可选 输出参数可让您指定在定义这些输出的操作运行之后,后续操作在工作流程后阶段可以使用的数据。 例如,如果有操作执行两个输入的相加 (x + y = z),则该操作可能输出总和 (z),用作其他操作的输入。

大写的输出 ID 在运行时转换为小写。 建议使用小写输出 ID。

outputs.<output_id>

必要 要与输出关联的 string 识别符。 <output_id> 的值是输出元数据的映射。 <output_id> 必须是 outputs 对象中的唯一识别符。 <output_id> 必须以字母或 _ 开头,并且只能包含字母数字、-_

outputs.<output_id>.description

必要 输出参数的 string 描述。

runs

必要 操作执行时运行的命令。

using

必要 用于执行 main 中指定的代码的应用程序。

使用 Node.js 的示例
using: 'node12'
main: 'main.js'
在仓库中使用 Dockerfile 的示例
using: 'docker'
image: 'Dockerfile'
using: 'docker'
image: 'docker://debian:stetch-slim'

env

可选 指定要在虚拟环境中设置的环境变量的键/值映射。

main

对 JavaScript 操作必要 包含操作代码的代码文件。 使用 using 语法指定的应用程序将执行此文件。

image

对容器操作必要 要用作容器来运行操作的 Docker 图像。 值可以是 Docker 基本映像名称、仓库中的本地 Dockerfile、公共 Docker Hub 或注册表。 要引用仓库本地的 Dockerfile,请使用仓库根目录的相对路径。 使用 using 语法指定的应用程序将执行此文件。

在仓库中使用 Dockerfile 的示例
image: 'Dockerfile'
使用公共 Docker 注册表容器的示例
image: 'docker://debian:stretch-slim'
在 GitHub 上使用公共 Docker 容器的示例
image: 'actions/container-template@master'

entrypoint

对容器操作可选 覆盖 Dockerfile 中的 Docker ENTRYPOINT,或在未指定时设置它。 如果操作不使用 runs 关键字,则 entrypoint 中的命令将会执行。 Docker ENTRYPOINT 指令具有 shell 形式和 exec 形式。 Docker ENTRYPOINT 文档建议使用 exec 形式的 ENTRYPOINT 指令。

args

对容器操作可选 定义 Docker 容器的输入的 array of strings。 输入可包含硬编码的字符串。 GitHub 在容器启动时将 args 传递到容器的 ENTRYPOINT

args 用来代替 Dockerfile 中的 CMD 指令。 如果在 Dockerfile 中使用 CMD,请遵循按偏好顺序排序的指导方针:

  1. 在操作的自述文件中记录必要的参数,并在 CMD 指令的中忽略它们。
  2. 使用默认值,允许不指定任何 args 即可使用操作。
  3. 如果操作显示 --help 标记或类似项,请将其用作默认值,以便操作自行记录。
示例
# array format
args: ['${{ inputs.greeting }}', 'foo', 'bar']

# and because it's just YAML, this works:
args:
  - ${{ inputs.greeting }}
  - 'foo'
  - 'bar'

branding

您可以使用颜色和 Feather 图标创建徽章,以在 GitHub Marketplace 中个性化和识别操作。 更多信息请参阅 GitHub 开发者文档 中的“GitHub Marketplace 中的 GitHub 操作”。

示例

branding:
  icon: 'award'  
  color: 'green'

color

徽章的背景颜色。 可以是以下之一:whiteyellowbluegreenorangeredpurplegray-dark

icon

要使用的 Feather 图标的名称。

activity airplay alert-circle alert-octagon
alert-triangle align-center align-justify align-left
align-right anchor aperture archive
arrow-down-circle arrow-down-left arrow-down-right arrow-down
arrow-left-circle arrow-left arrow-right-circle arrow-right
arrow-up-circle arrow-up-left arrow-up-right arrow-up
at-sign award bar-chart-2 bar-chart
battery-charging battery bell-off bell
bluetooth bold book-open book
bookmark box briefcase calendar
camera-off camera cast check-circle
check-square check chevron-down chevron-left
chevron-right chevron-up chevrons-down chevrons-left
chevrons-right chevrons-up circle clipboard
clock cloud-drizzle cloud-lightning cloud-off
cloud-rain cloud-snow cloud code
command compass copy corner-down-left
corner-down-right corner-left-down corner-left-up corner-right-down
corner-right-up corner-up-left corner-up-right cpu
credit-card crop crosshair database
delete disc dollar-sign download-cloud
download droplet edit-2 edit-3
edit external-link eye-off eye
facebook fast-forward feather file-minus
file-plus file-text 文件 film
过滤 flag folder-minus folder-plus
folder gift git-branch git-commit
git-merge git-pull-request globe grid
hard-drive hash headphones heart
help-circle home image inbox
info italic layers layout
life-buoy link-2 link list
loader lock log-in log-out
mail map-pin map maximize-2
maximize menu message-circle message-square
mic-off mic minimize-2 minimize
minus-circle minus-square minus monitor
moon more-horizontal more-vertical move
music navigation-2 navigation octagon
package paperclip pause-circle pause
percent phone-call phone-forwarded phone-incoming
phone-missed phone-off phone-outgoing phone
pie-chart play-circle play plus-circle
plus-square plus pocket power
printer radio refresh-ccw refresh-cw
repeat rewind rotate-ccw rotate-cw
rss save scissors search
send server settings share-2
share shield-off shield shopping-bag
shopping-cart shuffle sidebar skip-back
skip-forward slash sliders smartphone
speaker square star stop-circle
sun sunrise sunset tablet
tag target terminal thermometer
thumbs-down thumbs-up toggle-left toggle-right
trash-2 trash trending-down trending-up
triangle truck tv type
umbrella underline unlock upload-cloud
upload user-check user-minus user-plus
user-x 用户 users video-off
video voicemail volume-1 volume-2
volume-x volume watch wifi-off
wifi wind x-circle x-square
x zap-off zap zoom-in
zoom-out

问问别人

找不到要找的内容?

联系我们