image: registry.opensuse.org/opensuse/infrastructure/containers/heroes-salt-testing:latest
stages:
- test
- deploy
.test_mr:
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_BRANCH == 'production'
.test_common:
extends:
- .test_mr
stage: test
tags:
- docker
.test_artifacts:
artifacts:
when: always
paths:
- '*.txt'
lint:
extends:
- .test_common
image: registry.opensuse.org/opensuse/infrastructure/containers_tumbleweed/heroes-salt-validation:latest
script:
- bin/set_gitlab_ci_safe_directory.sh
- bin/lint.sh
validate:
extends:
- .test_common
image: registry.opensuse.org/opensuse/infrastructure/containers_tumbleweed/heroes-salt-validation:latest
script:
- bin/set_gitlab_ci_safe_directory.sh
- bin/test_validate.sh
show_highstate:
extends:
- .test_common
- .test_artifacts
before_script:
- bin/prepare_test_env.sh -g -o Leap,15,5 -s
script: bin/test_show_highstate.sh
test_haproxy:
extends:
- .test_common
- .test_artifacts
image: registry.opensuse.org/opensuse/infrastructure/containers/heroes-salt-testing-haproxy:latest
before_script:
- bin/prepare_test_env.sh -g -s -n
- bin/replace_secrets.sh
script: bin/test_haproxy.sh
# changes:
# - bin/test_haproxy.sh
# - pillar/cluster/*/*
# - pillar/common/haproxy/*
# - salt/profile/proxy/*
# - salt/role/proxy*
test_nftables:
extends:
- .test_common
image: registry.opensuse.org/opensuse/infrastructure/containers/heroes-salt-testing-nftables:latest
script: bin/test_nftables.pl
test_prometheus:
extends:
- .test_common
image: registry.opensuse.org/opensuse/infrastructure/containers/heroes-salt-testing-prometheus:latest
before_script: bin/prepare_test_env.sh -g -s -n
script: bin/test_prometheus.sh
artifacts:
when: always
paths:
- '*.txt'
- rules/*.txt
# Dynamically generated jobs
prepare_includes:
extends:
- .test_mr
script: bin/render_gitlab_ci_includes.py -w
artifacts:
paths:
- .gitlab-ci.includes/*.yml
test_highstate:
extends:
- .test_mr
needs:
- prepare_includes
trigger:
include:
- artifact: .gitlab-ci.includes/test_highstate.yml
job: prepare_includes
strategy: depend
test_nginx:
extends:
- .test_mr
needs:
- prepare_includes
trigger:
include:
- artifact: .gitlab-ci.includes/test_nginx.yml
job: prepare_includes
strategy: depend
.deploy:
rules:
- if: $CI_COMMIT_BRANCH == 'production'
stage: deploy
tags:
- docker
sync:
extends: .deploy
script:
- "rsync -a --delete --super --owner --group --chown=477:479 --chmod='u=rwX,g=rX,o=' $PWD/ rsync://saltpush@witch1.infra.opensuse.org:873/salt-push/"
deploy:
extends: .deploy
image: registry.opensuse.org/opensuse/infrastructure/containers_tumbleweed/heroes-salt-deployment:latest
needs:
- sync
script:
- bin/set_gitlab_ci_safe_directory.sh
- bin/deploy.py --mode test --no-mine-update --state-verbose=False