В чем разница между ‘name’ и ‘id’ в действиях Github

#github-actions

#github-действия

Вопрос:

В действии github для развертывания Google app Engine есть ссылка на идентификатор в действии github:

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

Но примеры действий Github не ссылаются на id, скорее это относится к имени как к идентификатору:

У каждого задания должен быть идентификатор, который можно связать с заданием. Ключ job_id представляет собой строку, а ее значение представляет собой отображение данных конфигурации задания. Вы должны заменить <job_id> на строку, уникальную для объекта jobs . <job_id> должен начинаться с буквы или _ и содержать только буквенно-цифровые символы, — или _ .

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

В чем разница?

Ответ №1:

Я полагаю, что вы путаете step определение и job определение.

Это шаг:

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

как видно из раздела «Использование» репозитория deploy-appengine.

Документация по синтаксису рабочего процесса GitHub Actions является окончательным руководством — если вы видите что-то написанное в другом месте, которое не упоминается в этом руководстве, это либо ошибка, либо недоразумение.

Что касается разницы между идентификатором и именем (как в заданиях, так и в шагах):

  • Идентификатор используется в качестве ссылки из других заданий или шагов (например, в jobs.<job_id>.needs ).
  • Имя используется для целей отображения на GitHub.

Наконец, для полноты картины, вот записи, связанные с идентификатором / именем, в синтаксисе рабочего процесса GitHub:

 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