16/10/2025

gitlab-ci : insert code (!reference)

Gitlab Doku : https://docs.gitlab.com/ci/yaml/yaml_optimization/#reference-tags
her hangi bir dosyadaki tekrar eden kodu copy paste etmek gibi.

Önce ana pipeline da include etmemiz gerekiyor

include:
  - local: 'gitlab-ci/ci-variables.yml'
  - local: 'gitlab-ci/test-connectivity.yml'
  - local: 'gitlab-ci/code-preperation.yml'
  - local: 'gitlab-ci/build.yml'
  - local: 'gitlab-ci/master-config.yml'
  - local: 'gitlab-ci/basic-debug.yml'

Daha sona bunu build icinde master-config.yml e yaziyoruz.

.master-config:
  script:
    - |
        if [[ "$ENVIRONMENT_TYPE" == "master" ]]; then
          echo "Branch is $ENVIRONMENT_TYPE  - using DEVELOPMENT"
          export ENVIRONMENT=development
        elif [[ "$ENVIRONMENT_TYPE" == "internal" ]]; then
          echo "Branch is internal  - STAGING"
          export ENVIRONMENT=internal
        fi

sonrada build icinde kullaniyoruz

.build:
  stage: build-docker-push
  image: maven:3.9.10-eclipse-temurin-21
  script:
    - !reference [.master-config, script]
    - !reference [.basic-debug, script]

Burada .master-config, script hangi dosyaadan hangi bölümü aldigimiz.
Variable olarakta kullanmak mümkün.