Image builder

2 minute read
Proces gitlab CI dla image builder (budowanie kontenerów)
Gitlab-ci pipeline
--- config: theme: redux --- flowchart LR subgraph s1["prepare"] n1["🔍 Analyze Conventional Commits"] n2["⚙️ Input Parameters"] n3["🕵 Set Version"] end subgraph s2["validate"] n4["🧪 Validate files (conftest)"] n11@{ label: "<div style=\"color:\"><span style=\"color:\">🧑💻 YAML lint</span></div>" } end subgraph s3["build"] n5["🚀 build container image"] end subgraph s4["publish"] n6["🌐 publish container image"] end subgraph s5["release"] n8["📍 Publish Version"] end subgraph s6["integration-test"] n9["🔬 trivy (dast)"] n10["🧪 test docker image"] end s1 --> s2 s2 --> s3 s3 --> s4 s4 --> s5 s5 --> s6 n1 --- n2 n2 --- n3 n9 --- n10 n4 --> n11 n11@{ shape: rect} click n1 "https://gitlab.com/pl.rachuna-net/cicd/components/prepare/-/blob/main/templates/conventional_commits.yml?ref_type=heads" click n2 "https://gitlab.com/pl.rachuna-net/cicd/components/prepare/-/blob/main/templates/input_parameters.yml?ref_type=heads" click n3 "https://gitlab.com/pl.rachuna-net/cicd/components/release/-/blob/main/templates/set_version.yml?ref_type=heads" click n4 "https://gitlab.com/pl.rachuna-net/cicd/components/validate/-/blob/main/templates/contrest.yml" click n5 "https://gitlab.com/pl.rachuna-net/cicd/components/containers/-/blob/main/templates/image-builder.yml" click n6 "https://gitlab.com/pl.rachuna-net/cicd/components/containers/-/blob/main/templates/image-builder.yml" click n8 "https://gitlab.com/pl.rachuna-net/cicd/components/release/-/blob/main/templates/versioning.yml" click n9 "https://gitlab.com/pl.rachuna-net/cicd/components/ast/-/blob/main/templates/trivy.yml?ref_type=heads" click n10 "https://gitlab.com/pl.rachuna-net/cicd/components/containers/-/blob/main/templates/image-builder.yml" click n11 "https://gitlab.com/pl.rachuna-net/cicd/components/validate/-/blob/main/templates/yamllint.yml?ref_type=heads"
Stage | Job | Opis |
---|---|---|
prepare | 🔍 Analyze Conventional Commits | Analiza konwencji commitów (Conventional Commits) w celu ustalenia poprawności komunikatów |
prepare | ⚙️ Input Parameters | Wyświetlenie i weryfikacja parametrów wejściowych procesu CI |
prepare | 🕵 Set Version | Ustalanie wersji aplikacji na podstawie commitów i reguł wersjonowania semantycznego |
validate | 🧪 Validate files (conftest) | Walidacja plików YAML/JSON w oparciu o polityki OPA/Conftest |
validate | 🧑💻 YAML lint | Walidacja składni plików YAML(lintowanie) |
build | 🚀 build container image | Budowanie obrazu kontenera z użyciem Buildah |
publish | 🌐 publish container image | Publikacja obrazu kontenera do rejestru Docker/GitLab |
release | 🎉 Publish version in vault | Zapisanie informacji o wydanej wersji w systemie Vault |
release | 📍 Publish Version | Publikacja wersji (np. tagowanie, release na repozytorium) |
integration-test | 🔬 trivy (dast) | Skanowanie obrazu kontenera pod kątem luk bezpieczeństwa przy użyciu Trivy |
integration-test | 🧪 test docker image | Testy integracyjne gotowego obrazu kontenera |