首页 > 解决方案 > Github Actions 中的 'name' 和 'id' 有什么区别

问题描述

Google 应用引擎部署的 github 操作中,在 github 操作中有对 id 的引用:

- id: Deploy
  uses: google-github-actions/deploy-appengine@main
  with:
    credentials: ${{ secrets.GCP_SA_KEY }}

但是Github Actions 的示例并没有引用 id,而是将名称称为 id:

每个工作都必须有一个与工作相关联的 ID。键 job_id 是一个字符串,它的值是作业配置数据的映射。您必须将 <job_id> 替换为作业对象独有的字符串。<job_id> 必须以字母或 _ 开头,并且仅包含字母数字字符 - 或 _。

jobs:
  my_first_job:
    name: My first job
  my_second_job:
    name: My second job

有什么不同?

标签: github-actions

解决方案


我相信您在step定义和job定义之间感到困惑。

这是一个步骤:

steps:
- id: deploy
  uses: google-github-actions/deploy-appengine@main
  with:
    credentials: ${{ secrets.gcp_credentials }}

可以在deploy-appengine 存储库的 Usage 部分看到。

GitHub Actions工作流语法文档是权威指南 - 如果您在其他地方看到本指南中未提及的内容,则可能是错误或误解。

至于ID和Name的区别(在jobs和steps中):

  • ID 用作参考,来自其他作业或步骤(例如,在 中jobs.<job_id>.needs)。
  • 名称用于在 GitHub 上显示。

最后,为了完整起见,这里是 GitHub 工作流语法中与 ID/名称相关的条目:

name: Test                 # <- Workflow name

jobs:
  test:                    # <- Job ID
    name: Run test suite   # <- Optional Job Name

    steps:
    - id:   checkout       # <- Optional step ID
      name: Checkout code  # <- Optional step name

推荐阅读