Реалізація змінних і сценаріїв у робочому циклі
Тепер, коли ви знаєте компоненти файлу робочого циклу, ви можете дізнатися, як налаштувати ці робочі цикли для різних сценаріїв. У цій одиниці ми зосередимося на використанні змінних і сценаріїв для оптимізації робочого циклу. Змінні дають змогу зберігати та повторно використовувати нечутливі відомості про конфігурацію. Ви можете зберігати будь-які дані конфігурації, наприклад позначки компілятора, імена імен користувачів або серверів як змінні. Змінні інтерпольовано на комп'ютері бігуна, який запускає робочий цикл. Команди, які виконуються в діях або кроках робочого циклу, можуть створювати, читати та змінювати змінні.
Ви можете встановити власні настроювані змінні або використовувати стандартні змінні середовища, які GitHub автоматично встановлює. Настроювану змінну можна створити двома способами.
- Щоб визначити змінну середовища для використання в одному робочому циклі, можна скористатися ключем
envу файлі робочого циклу. - Щоб визначити змінну конфігурації для кількох робочих циклів, ви можете визначити її на рівні організації, сховища або середовища.
Визначення змінних середовища для одного робочого циклу
Щоб установити настроювану змінну середовища для одного робочого циклу, ви можете визначити її за допомогою клавіші env у файлі робочого циклу. Область настроюваної змінної, установленої цим методом, обмежена елементом, де його визначено. Ви можете визначити змінні, які області:
- Увесь робочий цикл, використовуючи
envна верхньому рівні файлу робочого циклу. - Вміст завдання в робочому циклі за допомогою
jobs.<job_id>.env. - Певний крок у межах завдання за допомогою
jobs.<job_id>.steps[*].env.
Примітка
Як jobs.<job_id>.env, так і jobs.<job_id>.steps[*].env впроваджують контексти, які пізніше розглянуто в цьому модулі.
У наведеному нижче прикладі робочого циклу реалізовано дві змінні, DAY_OF_WEEK та Greeting для створення привітання під час його запуску.
name: Greeting on variable day
on:
workflow_dispatch
env:
DAY_OF_WEEK: Monday
jobs:
greeting_job:
runs-on: ubuntu-latest
env:
Greeting: Hello
steps:
- name: "Say Hello"
run: echo "$Greeting, today is $DAY_OF_WEEK!"
Правила іменування змінних середовища
Якщо встановити змінну середовища, не можна використовувати імена змінних середовища за промовчанням. Якщо спробувати перевизначити значення однієї з цих змінних за промовчанням, призначення ігноруватиметься.
Кінчик
Повний список змінних середовища за промовчанням див. в статті Змінні середовища за промовчанням.
Створення змінних конфігурації для сховища
Щоб створити секрети або змінні на GitHub для сховища особистого облікового запису, ви повинні бути власником сховища. Щоб створити секрети або змінні на GitHub для сховища організації, потрібно мати admin доступ. Нарешті, щоб створити секрети або змінні для сховища особистого облікового запису або сховища організації через API REST, потрібно мати спільний доступ.
Пріоритет змінних конфігурації
Якщо змінна з однаковим іменем існує на кількох рівнях, змінна на найнижчому рівні має пріоритет. Наприклад, якщо змінна на рівні організації має таке саме ім'я, як змінна рівня сховища, то змінна на рівні сховища має пріоритет. Так само, якщо організація, сховище та середовище мають змінну з однаковим іменем, змінна на рівні середовища має пріоритет.
Додавання сценаріїв до робочого циклу
За допомогою робочого циклу Дій GitHub можна запускати сценарії та команди оболонки, які потім виконуються на призначеному бігуні. У наведеному нижче прикладі показано, як використовувати ключове слово run для виконання команди npm install -g bats на бігуні.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- run: npm install -g bats
Щоб запустити сценарій, який зберігається у сховищі, спочатку потрібно взяти на редагування сховище для бігуна. У наведеному нижче прикладі: перевіряє сховище; установлює робочий каталог – розташування сценаріїв у сховищі; і запускає сценарій my-script.sh.
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
Усі сценарії, які потрібно виконати для завдання робочого циклу, мають бути виконуваними. Ви можете передати сценарій як аргумент перекладачу, який запускає сценарій, наприклад run: bash script.sh або зробивши сам файл виконуваним.