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 |