Skip to content

Gitlab Pipeline

Dokumentacja techniczna

Pipeline CI/CD dla repozytorium flows/gitlab (tego repozytorium). Obsługuje walidację statyczną, testy jednostkowe szablonów CI za pomocą conftest i deployment pipeline’ów na środowiska GitLab.

W projekcie dodaj do .gitlab-ci.yml:

include:
  - project: pl.rachuna-net/flows/gitlab
    file: pipelines/gitlab-pipelines/.gitlab-ci.yml
    ref: main

variables:
  PROJECT_TYPE: gitlab-pipelines
.pre        → 🕵 Set Version
validate    → 🔍 Analyze Conventional Commits
            → 🕵 yamllint           (tylko gdy zmienił się *.yml/*.yaml)
            → 🐚 shellcheck         (tylko gdy zmienił się *.sh/*.sh.yml)
tests       → 🧪 unit-test
publish     → 📍 Publish Version    (needs: Set Version + unit-test, artifacts)
.pre        → 🔧 Prepare Dynamic Deployment
deployment  → 🚀 Trigger Deployment  → child pipeline:
                                          💥 Deployment:<ENV_NAME>  (per środowisko)
JobNazwa emojiStageCICD
versioning (Set Version)🕵 Set Version.pre
environment-deployment-prepare🔧 Prepare Dynamic Deployment.pre
conventional-commits🔍 Analyze Conventional Commitsvalidate
yamllint🕵 yamllintvalidate✅*
shellcheck🐚 shellcheckvalidate✅*
dependency📦 dependencydependency
build🚀 buildbuild
trigger-deployment🚀 Trigger Deploymentdeployment
deployment💥 deploymentdeployment✅**
unit-test🧪 unit-testtests
publish🌐 publishpublish
versioning (Publish Version)📍 Publish Versionpublish

* tylko gdy zmienił się odpowiedni typ pliku względem main ** uruchamia się w child pipeline (CI_PIPELINE_SOURCE == "parent_pipeline")

Joby dependency, build i publish mają when: never.

Testy jednostkowe szablonów GitLab CI przy użyciu conftest (Open Policy Agent):

# before_script
apt-get install -y shellcheck

# script
./tools/unit-test/unit-test.sh

Obraz: registry.gitlab.com/pl.rachuna-net/artifacts/containers/conftest:1.1.0

JobWymagany
🕵 Set Version✅ (artifacts)
🧪 unit-test✅ (artifacts)