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.