Как остановить работу в gitlab-ci.yml, если на предыдущем этапе произошел сбой

У меня есть отчет эхолота, если контрольный порог качества пройден, он будет запущен для следующего этапа и выполнит развертывание, если контрольно-измерительные приборы не удались, остановите задание gitlab. но на этапах задания у нас есть откат, он будет запускаться, когда у нас возникнет сбой, поэтому в этом случае, если сонар не работает, выполняется откат. Я хочу остановить выполнение отката. Он должен запускаться только тогда, когда у нас есть этап задания сбоя развертывания, который, по сути, является следующим этапом сонара.

image: maven-jdk-8 cache: paths: — ./.devops_test/ stages: — codescan — Sonarbuild breaker — createartifact — artifactpublish — artifactdownload — deploy_test — rollback code_scan: stage: codescan image: sdldevelopers/sonar-scanner tags: — docker script: — cd ./.devops_test — java -jar SourceCode_Extract_V3.jar ../07-METADATA/metadata/ javascript_extracts/ — chmod 777 ../02-SHELL/stage-codescan.sh — cd .. — ./02-SHELL/stage-codescan.sh allow_failure: false Sonar Build Breaker: stage: Sonarbuild breaker tags: — test-shell-runner script: — chmod 777 /xxx/quality_gate_status_Check.sh — /xxx/quality_gate_status_Check.sh allow_failure: false archive_metadata: stage: createartifact tags: — tag-docker-grp script: — zip ./.devops/lib/metadata.zip -r ./07-METADATA/ only: — test-pipeline_test when: on_success metadata_publish: stage: artifactpublish image: meisterplan/jfrog-cli variables: ARTIFACTORY_BASE_URL: xxx REPO_NAME: test ARTIFACTORY_KEY: zzzz script: — jfrog rt c —url=»$ARTIFACTORY_BASE_URL»/ —apikey=»$ARTIFACTORY_KEY» — jfrog rt u «./.devops/lib/my_metadata.zip» «$REPO_NAME»/test/test»$CI_PIPELINE_ID».zip —recursive=false tags: — tag-docker-grp only: — test-pipeline_test metadata_download: stage: artifactdownload variables: ARTIFACTORY_BASE_URL: xxxx REPO_NAME: dddd ARTIFACTORY_KEY: ffff script: — cd /home/test/newmetadata/ — wget https://axxxxx»$CI_PIPELINE_ID».zip — mv test»$CI_PIPELINE_ID».zip test_metadata.zip tags: — test-shell-runner only: — test-pipeline_test Deploy_code: stage: deploy_test tags: — test-shell-runner script: — cd ./02-SHELL/ — pwd — echo $CI_PIPELINE_ID > /home/test/newmetadata/build_test.txt — echo $CI_PIPELINE_ID > /home/test/newmetadata/postbuild_test.txt — ansible-playbook -i /etc/ansible/hosts deployment.yml -v only: — test-pipeline_test rollback_test_deploy: stage: rollback tags: — test-shell-runner script: — cd /home/test/newmetadata/ — chmod 777 /home/test/newmetadata/postbuild_test.txt — previousbuild=$(cat /home/test/newmetadata/postbuild_test.txt) — echo «previous successfull build is $previousbuild» — wget xxx»$previousbuild».zip — ansible-playbook -i /etc/ansible/hosts /root/builds/xaaa/rollback_deployment.yml -e «previousbuild=${previousbuild}» -vv when: on_failure

откат будет выполняться только при сбое deploy_code, а не в случае сбоя любого другого этапа. Это то, что я хочу … здесь, если сбой гидролокатора, то откат выполняется, я хочу остановить этот запуск.   —  person 14MAR    schedule 14.05.2019

Источник: ledsshop.ru

Стиль жизни - Здоровье!