if
умов для виконання jobs і steps за певних умовОднією з ключових можливостей GitHub Actions є можливість умовного виконання завдань (jobs) та кроків (steps) у workflow. Це дозволяє більш гнучко керувати процесами, запобігаючи непотрібному виконанню певних дій залежно від результатів попередніх кроків або зовнішніх факторів.
if
?Умови if
дозволяють вам контролювати виконання кроків або завдань залежно від результату інших дій або від інших умов. В if
можна використовувати різні вирази, які GitHub оцінює як true
або false
. Якщо вираз у if
повертає true
, крок або завдання виконується; якщо false
— пропускається.
Приклад:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Run tests
run: npm test
- name: Deploy to production
if: success()
run: npm run deploy
У цьому прикладі крок Deploy to production
буде виконано лише, якщо всі попередні кроки завершаться успішно.
failure()
, success()
, canceled()
, і always()
для керуванняGitHub Actions надає кілька вбудованих функцій, які допомагають у керуванні умовами виконання кроків та завдань:
failure()
: Повертає true
, якщо будь-який з попередніх кроків або завдань завершився з помилкою. Використовується для виконання дій у разі помилки.success()
: Повертає true
, якщо всі попередні кроки або завдання завершилися успішно. Це зазвичай використовується для дій, які слід виконувати тільки після успішного виконання всіх інших кроків.canceled()
: Повертає true
, якщо workflow був скасований. Це може бути корисним, якщо потрібно виконати певні дії у разі скасування workflow.always()
: Повертає true
завжди, незалежно від результату попередніх кроків або завдань. Використовується для кроків, які повинні виконуватися завжди, наприклад, для очистки ресурсів.Використання оператора continue-on-error
: Цей оператор дозволяє продовжити виконання jobs або steps, навіть якщо попередній крок завершився з помилкою. Він може бути особливо корисним у випадках, коли деякі кроки є необов'язковими або ви хочете завершити весь workflow, навіть якщо одна з його частин не вдалася. Приклад використання:
yamlКопіювати код
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- name: Run a script
run: some-command
continue-on-error: true
Використання continue-on-error: true
забезпечує, що наступні кроки продовжать виконуватися, навіть якщо поточний крок зазнає невдачі.
&&
та ||
Для більш складних умов виконання можна використовувати логічні оператори &&
(AND) та ||
(OR), щоб комбінувати кілька умов в одне правило.
&&
(AND): Умови, з'єднані за допомогою &&
, вимагають, щоб усі частини умови були істинними (true) для виконання кроку.||
(OR): Умови, з'єднані за допомогою ||
, вимагають, щоб хоча б одна з частин умови була істинною (true) для виконання кроку.