Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.
Обзор
GitHub Actions позволяют настраивать рабочие процессы в соответствии с уникальными потребностями приложения и команды. Их этого руководства вы узнаете о базовых методах настройки, таких как применение переменных, выполнение сценариев и совместное использование несколькими заданиями данных и артефактов.
Использование переменных в рабочих процессах
GitHub Actions включают переменные среды по умолчанию для каждого выполнения рабочего процесса. При необходимости применять пользовательские переменные среды их можно задать в файле рабочего процесса YAML. В этом примере показано, как создать пользовательские переменные с именами POSTGRES_HOST
и POSTGRES_PORT
. Эти переменные затем будут доступны для сценария node client.js
.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- name: Connect to PostgreSQL
run: node client.js
env:
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
Дополнительные сведения см. в разделе Переменные.
Добавление сценариев в рабочий процесс
Для выполнения скриптов и команд оболочки можно использовать рабочий процесс GitHub Actions для выполнения скриптов и команд оболочки, которые затем выполняются на назначенном средстве выполнения. В этом примере показано, как использовать run
ключевое слово для выполнения команды npm install -g bats
в средстве выполнения.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- run: npm install -g bats
Чтобы использовать рабочий процесс для запуска скрипта, хранящегося в репозитории, необходимо сначала проверка из репозитория в средство выполнения. Выполнив это, можно использовать run
ключевое слово для запуска скрипта в средстве выполнения. В следующем примере выполняются два сценария, каждый из которых выполняется на отдельном шаге задания. Расположение скриптов в средстве выполнения указывается путем задания рабочего каталога по умолчанию для команд выполнения. Дополнительные сведения см. в разделе Задание значений по умолчанию для заданий.
jobs:
example-job:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./scripts
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Run a script
run: ./my-script.sh
- name: Run another script
run: ./my-other-script.sh
Все скрипты, которые требуется выполнить задание рабочего процесса, должны быть исполняемыми. Это можно сделать в рабочем процессе, передав скрипт в качестве аргумента интерпретатору, который будет запускать скрипт , например, run: bash script.sh
или путем создания самого исполняемого файла. Вы можете предоставить файлу разрешение на выполнение с помощью команды git update-index --chmod=+x PATH/TO/YOUR/script.sh
локально, а затем зафиксировать и отправить файл в репозиторий. Кроме того, для рабочих процессов, выполняемых в linux и mac-запусках, можно добавить команду, чтобы предоставить файлу разрешение на выполнение в задании рабочего процесса перед запуском скрипта:
jobs:
example-job:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./scripts
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Make the script files executable
run: chmod +x my-script.sh my-other-script.sh
- name: Run the scripts
run: |
./my-script.sh
./my-other-script.sh
Дополнительные сведения о run
ключевое слово см. в разделе "Синтаксис рабочего процесса для GitHub Actions".
Общий доступ к данным для разных заданий
Если задание создает файлы, которыми вы хотите поделиться с другим заданием в том же рабочем процессе или хотите сохранить файлы для последующей ссылки, их можно сохранить как артефакты в GitHub. Артефакты — это файлы, созданные при сборке и тестировании кода. Например, артефактами могут быть двоичные файлы или файлы пакетов, результаты тестов, снимки экрана или файлы журналов. Артефакты связаны с выполнением рабочего процесса, в котором они были созданы, и могут использоваться другим заданием. Все действия и рабочие процессы, вызываемые в рамках запуска, имеют доступ на запись к артефактам этого запуска.
Например, можно создать файл, а затем отправить его как артефакт.
jobs:
example-job:
name: Save output
runs-on: ubuntu-latest
steps:
- shell: bash
run: |
expr 1 + 1 > output.log
- name: Upload output file
uses: actions/upload-artifact@v3
with:
name: output-log-file
path: output.log
Чтобы скачать артефакт из отдельного выполнения рабочего процесса, используйте действие actions/download-artifact
. Например, можно скачать артефакт с именем output-log-file
.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- name: Download a single artifact
uses: actions/download-artifact@v3
with:
name: output-log-file
Для скачивания артефакта из того же выполнения рабочего процесса задание скачивания должно указывать needs: upload-job-name
, чтобы оно не запускалось до завершения задания отправки.
Дополнительные сведения о артефактах см. в разделе "Хранение данных рабочего процесса в виде артефактов".
Следующие шаги
Дополнительные сведения о GitHub Actionsсм. в разделе "Сведения о рабочих процессах".