Przejdź do treści

GITLAB-CI - Utworzenie procesu wersjonowania kodu

Tips

SemVer (Semantic Versioning)1 to standard wersjonowania oprogramowania, który określa sposób nadawania numerów wersji w formacie MAJOR.MINOR.PATCH.

Struktura:

  • MAJOR – Zwiększane, gdy wprowadzane są zmiany niekompatybilne wstecz.
  • MINOR – Zwiększane, gdy dodawane są nowe funkcje, ale zachowana jest kompatybilność wsteczna.
  • PATCH – Zwiększane, gdy poprawiane są błędy bez zmiany funkcjonalności.

Dodatkowo można stosować oznaczenia: - Pre-release (np. 1.2.0-alpha.1) – wersje testowe przed oficjalnym wydaniem. - Build metadata (np. 1.2.0+build201) – informacje o kompilacji.

SemVer pomaga w zarządzaniu zależnościami i ułatwia utrzymanie kompatybilności kodu.

Krok 1. Przygotowanie obrazu kontenerowego

Przygotowany obraz kontenerowy z semantic-release2 commit

Ręczne wydanie obrazu

 docker build -t registry.gitlab.com/pl.rachuna-net/containers/semantic-release:0.0.1 .
 docker push registry.gitlab.com/pl.rachuna-net/containers/semantic-release:0.0.1

Krok 2. Przygotowanie komponentu do wersjonowania kodu

pl.rachuna-net/cicd/components/versioning

  • Krok 1. Pobieranie konfiguracji .releaserc.js
          if [ ! -f "$CI_PROJECT_DIR/.releaserc" ]; then
            curl -s -H "PRIVATE-TOKEN: ${GITLAB_TOKEN}" ${VERSIONING_RELEASERC_URL} --output $CI_PROJECT_DIR/.releaserc.js;
          fi
    
  • Krok 2. Uruchomienie semantic-release

# Ustawienie wersji tylko na potrzeby pipeline
🕵 Set Version:
  stage: prepare
  rules:
    - when: on_success

# Publikacja wersji po utworzeniu artifact'ów
📍 Publish Version:
  stage: release
  rules:
    - when: on_success


  1. Źródło: https://semantic-release.gitbook.io/semantic-release 

  2. Źródło: https://semver.org/