Implementace proměnných a skriptů v pracovním postupu
Teď, když znáte komponenty souboru pracovního postupu, můžete prozkoumat, jak tyto pracovní postupy přizpůsobit pro různé scénáře. V této lekci se zaměříme na to, jak pomocí proměnných a skriptů optimalizovat pracovní postup. Proměnné poskytují způsob, jak ukládat a opakovaně používat nesmyslné informace o konfiguraci. Jako proměnné můžete ukládat všechna konfigurační data, jako jsou příznaky kompilátoru, uživatelská jména nebo názvy serverů. Proměnné se interpolují na spouštěcím stroji, na kterém běží váš pracovní postup. Příkazy spouštěné v akcích nebo krocích pracovního postupu mohou vytvářet, číst a upravovat proměnné.
Můžete nastavit vlastní proměnné nebo použít výchozí proměnné prostředí, které GitHub nastaví automaticky. Vlastní proměnnou můžete vytvořit dvěma způsoby.
- Pokud chcete definovat proměnnou prostředí pro použití v jednom pracovním postupu, můžete použít klíč
envv souboru pracovního postupu. - Pokud chcete definovat konfigurační proměnnou napříč několika pracovními postupy, můžete ji definovat na úrovni organizace, úložiště nebo prostředí.
Definování proměnných prostředí pro jeden pracovní postup
Pokud chcete nastavit vlastní proměnnou prostředí pro jeden pracovní postup, můžete ji definovat pomocí klíče env v souboru pracovního postupu. Rozsah vlastní proměnné nastavené touto metodou je omezen na prvek, ve kterém je definován. Můžete definovat proměnné, které jsou vymezeny pro:
- Celý pracovní postup je definován pomocí
envna nejvyšší úrovni souboru pracovního postupu. - Obsah úkolu v rámci pracovního postupu s použitím
jobs.<job_id>.env. - Konkrétní krok v rámci úlohy pomocí
jobs.<job_id>.steps[*].env.
Poznámka
jobs.<job_id>.env i jobs.<job_id>.steps[*].env implementují kontexty, které jsou popsány dále v tomto modulu.
Následující příklad pracovního postupu implementuje dvě proměnné, DAY_OF_WEEK a Greeting k vytvoření pozdravu při spuštění.
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!"
Zásady vytváření názvů pro proměnné prostředí
Když nastavíte proměnnou prostředí, nemůžete použít žádný z výchozích názvů proměnných prostředí. Pokud se pokusíte přepsat hodnotu jedné z těchto výchozích proměnných, přiřazení se ignoruje.
(Only if context requires): None.
Úplný seznam výchozích proměnných prostředí najdete v části Výchozí proměnné prostředí.
Vytvoření konfiguračních proměnných pro úložiště
Pokud chcete vytvořit tajné kódy nebo proměnné na GitHubu pro úložiště osobních účtů, musíte být vlastníkem úložiště. Pokud chcete vytvořit tajné kódy nebo proměnné na GitHubu pro úložiště organizace, musíte mít admin přístup. Pokud chcete vytvořit tajné kódy nebo proměnné pro úložiště osobních účtů nebo úložiště organizace prostřednictvím rozhraní REST API, musíte mít přístup spolupracovníka.
Priorita konfigurační proměnné
Pokud proměnná se stejným názvem existuje na více úrovních, má přednost proměnná na nejnižší úrovni. Pokud má například proměnná na úrovni organizace stejný název jako proměnná na úrovni úložiště, má přednost proměnná na úrovni úložiště. Podobně platí, že pokud má organizace, úložiště a prostředí proměnnou se stejným názvem, má přednost proměnná na úrovni prostředí.
Přidání skriptů do pracovního postupu
Pomocí pracovního postupu GitHub Actions můžete spouštět skripty a příkazy shellu, které se pak spustí na přiřazeném běžci. Následující příklad ukazuje použití klíčového slova run ke spuštění příkazu npm install -g bats na spouštěči.
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- run: npm install -g bats
Pokud chcete spustit skript uložený v úložišti, musíte úložiště nejprve získat na runneru. Následující příklad: zkontroluje úložiště; nastaví pracovní adresář – umístění skriptů v úložišti; a spustí my-script.sh skript.
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
Všechny skripty, které chcete spustit úlohu pracovního postupu, musí být spustitelné. Skript můžete předat jako argument interpretu, který spouští skript – například run: bash script.sh – nebo tak, že soubor sám spustíte.