Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

Поиск и настройка действий

Важнейшим структурным элементом рабочего процесса являются действия. Рабочий процесс может содержать действия, созданные в сообществе, а также вы можете создать собственные действия непосредственно в репозитории своего приложения. В этом руководстве описывается обнаружение, использование и настройка действий.

Обзор

Действия, используемые в рабочем процессе, можно определять в следующих местах:

  • в том же репозитории, в котором находится файл рабочего процесса;
  • в любом общедоступном репозитории;
  • в опубликованном образе контейнера Docker в Docker Hub.

GitHub Marketplace — это основное место для поиска действий, созданных сообществом GitHub. На странице GitHub Marketplace можно фильтровать действия по категориям.

Просмотр действий Marketplace в редакторе рабочих процессов

Вы искать находить и просматривать действия непосредственно в редакторе рабочих процессов репозитория. На боковой панели можно найти конкретное действие, просмотреть рекомендуемые действия и рекомендуемые категории. Вы также можете просмотреть количество звездочек, полученных действием от сообщества GitHub.

  1. В репозитории перейдите к файлу рабочего процесса, который необходимо изменить.
  2. В правом верхнем углу представления файлов, чтобы открыть редактор рабочего процесса, щелкните . Снимок экрана: файл рабочего процесса с разделом заголовка. Значок карандаша для редактирования файлов выделен темно-оранжевым контуром.
  3. Справа от редактора используйте боковую панель GitHub Marketplace для просмотра действий. Действия с эмблемой указывают на то, что GitHub проверил создателя действия в качестве партнерской организации. Снимок экрана: файл рабочего процесса в режиме редактирования. На правой боковой панели отображаются действия Marketplace. Флажок на значке метки, показывающий, что создатель проверен GitHub, выделен оранжевым цветом.

Добавление действия в рабочий процесс

Вы можете добавить действие в рабочий процесс, сославшись на действие в файле рабочего процесса.

Действия, на которые ссылаются ваши рабочие процессы GitHub Actions, можно просмотреть в виде зависимостей в графе зависимостей репозитория, содержащего рабочие процессы. Дополнительные сведения см. в разделе Сведения о графе зависимостей.

Примечание. Для повышения безопасности перенаправления для действий в GitHub Actions являются нерекомендуемыми. Это означает, что при изменении владельца или имени репозитория действия все рабочие процессы, в которых используется это действие с предыдущим именем, будут завершаться сбоем.

Добавление действия из GitHub Marketplace

На странице со списком действий приводятся версия действия и синтаксис рабочего процесса, необходимый для использования действия. Чтобы обеспечить стабильность рабочего процесса даже при изменении действия, можно указывать версию действия, которую требуется использовать, с помощью номера тега GIT или Docker в файле рабочего процесса.

  1. Перейдите к действию, которое необходимо использовать в рабочем процессе.
  2. Щелкните, чтобы просмотреть полный список действий в Marketplace.
  3. В разделе "Установка" щелкните , чтобы скопировать синтаксис рабочего процесса. Снимок экрана: описание действия в Marketplace. Значок "Копировать в буфер обмена" для действия выделен темно-оранжевым контуром.
  4. Вставьте синтаксис в качестве нового шага рабочего процесса. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.
  5. Если действие требует предоставления входных данных, задайте их в рабочем процессе. Сведения о входных данных, которые может потребовать действие, см. в разделе Поиск и настройка действий.

Вы также можете включить Dependabot version updates для действий, добавленных в рабочий процесс. Дополнительные сведения см. в разделе Поддержка актуальности действий с помощью Dependabot.

Добавление действия из того же репозитория

Если действие определено в том же репозитории, в котором оно используется в файле рабочего процесса, можно сослаться на действие с помощью синтаксиса {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@v3
      # 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@v3

Ссылка на контейнер в Docker Hub

Если действие определено в опубликованном образе контейнера Docker в Docker Hub, на действие необходимо ссылаться с помощью синтаксиса docker://{image}:{tag} в файле рабочего процесса. Чтобы защитить код и данные, настоятельно рекомендуется проверить целостность образа контейнера Docker из Docker Hub перед его использованием в рабочем процессе.

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 являются неизменяемыми и, следовательно, более надежными, чем теги или ветви. Однако такой подход означает, что вы не будете автоматически получать обновления для действия, включая важные исправления ошибок и обновления для системы безопасности. Необходимо использовать полное значение SHA фиксации, а не сокращенное. При выборе SHA следует убедиться, что он находится в репозитории действия, а не вилке репозитория. Этот пример предназначен для SHA действия:

steps:
  - uses: actions/javascript-action@172239021f7ba04fe7327647b213799853a9eb89

Использование ветвей

Указание целевой ветви для действия означает, что всегда будет использоваться версия в этой ветви. Этот подход может вызвать проблемы, если обновление ветви включает критические изменения. В этом примере используется ветвь с именем @main:

steps:
  - uses: actions/javascript-action@main

Дополнительные сведения см. в разделе Сведения о настраиваемых действиях.

Использование входных и выходных данных с действием

Действие часто принимает входные данные или требует их и создает выходные данные, которые можно использовать. Например, действие может требовать указать путь к файлу, имя метки или другие данные, которые будут использоваться в процессе обработки действия.

Чтобы просмотреть входные и выходные данные действия, проверьте action.yml или action.yaml в корневом каталоге репозитория.

В этом примере файла action.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.