Github Actions中'name'和'id'有什么区别

问题描述

github action for Google app engine deploy 中,引用了 github 操作中的 id:

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

但是 Github Actions examples 不是指 id,而是指名称作为 id:

每个作业都必须有一个 ID 才能与作业关联。键 job_id 是一个字符串,其值是作业配置数据的映射。您必须将 替换为作业对象唯一的字符串。 必须以字母或 _ 开头,并且只能包含字母数字字符、- 或 _。

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

有什么区别?

解决方法

我相信您对 step 定义和 job 定义感到困惑。

这是一个步骤:

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

完整的、不太容易混淆的符号是这样的:

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

可以在 Usage section of the deploy-appengine 存储库中看到。

GitHub 操作 workflow syntax documentation 是权威指南 - 如果您在别处看到本指南中未提及的内容,则可能是错误或误解。

至于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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...