случае фэйла предыдущей. Пример. Я собираю сначала образ. Затем — запускаю тесты. При этом, если хотя бы одна из стадий завалилась, мне нужно удалить образ и остановить все контейнеры. Я могу воспользоваться when: on_failure и написать для каждой из двух стадий clean. Но тогда, если падение произойдёт на стадии build, будут выполняться и clean build и clean test. А хотелось бы, чтобы выполнился только clean build. Как решить эту задачу?
                  
                  
                  
                  
                  
                  clean build:
                  
                  
                    stage: test
                  
                  
                    when: on_failure
                  
                  
                    script:
                  
                  
                      - make docker-stop
                  
                  
                      - make docker-clean
                  
                  
                  
                  
                  
                  clean test:
                  
                  
                    stage: clean test
                  
                  
                    when: on_failure
                  
                  
                    script:
                  
                  
                      - make docker-stop
                  
                  
                      - make docker-clean
                  
                  
                  
                  
                  
                  build:
                  
                  
                    stage: build
                  
                  
                    when: manual
                  
                  
                    allow_failure: false
                  
                  
                    script:
                  
                  
                      - make docker-run-full
                  
                  
                      - make docker-build
                  
                  
                  
                  
                  
                  test:
                  
                  
                    stage: test
                  
                  
                    when: on_success
                  
                  
                    allow_failure: false
                  
                  
                    script:
                  
                  
                      - make docker-run-full
                  
                  
                      - make docker-run-test
                  
                  
                      - make docker-stop
                  
                  
                
А почему не хотите через миксин? clean_build_script: &clean_build_script - clean build cleanup test: stage: clean test script: - *clean_build_script - clean test script when: on_failure
Обсуждают сегодня