job-prepare
Inicjalizuje środowisko bash oraz parsuje CI_CONFIG_PATH w celu wyekstrahowania danych o repozytorium CI.
Co robi
Section titled “Co robi”- Ustawia opcje bash:
set -eaou pipefail— każdy job działa w trybie strict mode z automatycznym exportem zmiennych. - Parsuje zmienną
CI_CONFIG_PATHi eksportuje trzy zmienne opisujące repozytorium CI.
Parsowanie CI_CONFIG_PATH
Section titled “Parsowanie CI_CONFIG_PATH”GitLab wypełnia CI_CONFIG_PATH w formacie:
Przykład:
| Zmienna eksportowana | Wyrażenie bash | Wartość dla przykładu |
|---|---|---|
GITLAB_CI_REPOSITORY_FILEPATH | ${CI_CONFIG_PATH%%@*} | pipelines/image-builder/.gitlab-ci.yml |
GITLAB_CI_REPOSITORY_PATH | ${CI_CONFIG_PATH#*@} → część przed : | pl.rachuna-net/flows/gitlab |
GITLAB_CI_REPOSITORY_BRANCH | ${CI_CONFIG_PATH#*@} → część po : | main |
Zmienne wyjściowe
Section titled “Zmienne wyjściowe”| Zmienna | Opis |
|---|---|
GITLAB_CI_REPOSITORY_FILEPATH | Ścieżka do pliku .gitlab-ci.yml w repozytorium CI |
GITLAB_CI_REPOSITORY_PATH | Ścieżka projektu repozytorium CI (używana do budowania URL-i) |
GITLAB_CI_REPOSITORY_BRANCH | Gałąź repozytorium CI (używana przez job-docs do URL-a dokumentacji) |
Użycie w jobach
Section titled “Użycie w jobach”Helper jest wstrzykiwany jako pierwszy element before_script i after_script każdego joba:
after_scriptw GitLab CI uruchamia się w osobnym procesie — zmienne wyeksportowane wbefore_scriptnie są dostępne. Dlategojob-preparejest wstrzykiwany zarówno wbefore_script, jak iafter_script.set -a(częśćset -eaou pipefail) powoduje, że wszystkie zmienne zdefiniowane po wywołaniu helpera są automatycznie eksportowane do środowiska.