Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.
Обзор
Действия, используемые в рабочем процессе, можно определять в следующих местах:
- в том же репозитории, в котором находится файл рабочего процесса;
- во внутреннем репозитории в той же корпоративной учетной записи, настроенной для предоставления доступа к рабочим процессам;
- в любом общедоступном репозитории;
- в опубликованном образе контейнера Docker в Docker Hub.
GitHub Marketplace — это основное место для поиска действий, созданных сообществом GitHub.
Примечание. GitHub Actions в экземпляр GitHub Enterprise Server может иметь ограниченный доступ к действиям в GitHub.com или GitHub Marketplace. Дополнительные сведения см. в разделе Управление доступом к действиям с сайта GitHub.com и обратитесь к администратору сайта GitHub Enterprise.
Добавление действия из того же репозитория
Если действие определено в том же репозитории, в котором оно используется в файле рабочего процесса, можно сослаться на действие с помощью синтаксиса {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}
в файле рабочего процесса.
Действие должно храниться в общедоступном репозитории или во внутреннем репозитории, которому разрешен доступ к рабочим процессам. Дополнительные сведения см. в разделе Сведения о доступе GitHub Actions к внутренним репозиториям репозиториям.
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@a824008085750b8e136effc585c3cd6082bd575f
Использование ветвей
Указание целевой ветви для действия означает, что всегда будет использоваться версия в этой ветви. Этот подход может вызвать проблемы, если обновление ветви включает критические изменения. В этом примере используется ветвь с именем @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.