Я устанавливаю конвейер gitlab с несколькими этапами и, по крайней мере, двумя сайтами на каждом этапе. Как iIconditional позволяют продолжить следующий этап, даже если один сайт на первом этапе вышел из строя (и весь этап, как он помечен как отказавший)? Например: я хочу подготовить, собрать и протестировать, и я хочу сделать это на Windows & Linux Runner. Так что, если мой Linux runner не прошел подготовку, но мой Windows runner был успешным, то следующий этап должен начинаться с без сборки пакета Linux, потому что это уже не удалось. Но сборка окон должна начаться.
Мое намерение состоит в том, что если одна система выходит из строя, по крайней мере, вторая может продолжить работу.
Я добавил зависимости и подумал, что это решит мою проблему. Потому что, если «сборка окон» сайта зависит от «подготовить окна», то не имеет значения, если «подготовить Linux» не удалось. Но это не так: /
image: node:10.6.0
stages:
- prepare
- build
- test
prepare windows:
stage: prepare
tags:
- windows
script:
- npm i
- git submodule foreach 'npm i'
prepare linux:
stage: prepare
tags:
- linux
script:
- npm i
- git submodule foreach 'npm i'
build windows:
stage: build
tags:
- windows
script:
- npm run build-PWA
dependencies:
- prepare windows
build linux:
stage: build
tags:
- linux
script:
- npm run build-PWA
dependencies:
- prepare linux
unit windows:
stage: test
tags:
- windows
script:
- npm run test
dependencies:
- build windows
artifacts:
paths:
- dist/
- package.json
expire_in: 5 days
unit linux:
stage: test
tags:
- linux
script:
- npm run test
dependencies:
- build linux
artifacts:
paths:
- dist/
- package.json
expire_in: 5 days