Нравится рассказывать о интересных фичах и хотелось бы разобрать кучу всего интересного что добавилось, но большинство фич в платной версии конечно.
Рассмотрим функционал кастомизированные inputs для merge requests
Сделаем так, что-бы внутри MR можно было запустить пайплайн выбирая параметры а уже потом положительный результат выполнения требуется для слияния. Это можно использовать для сценариев когда пайплайн может работать в разных режимах и требуется такая вариативность
Вот один из вариантов применения, можно вставить и попробовать
spec:
inputs:
environment:
description: "Куда деплоим демо"
default: "test"
options:
- "test"
- "stagging"
test_suite:
description: "Какой набор тестов запускать"
default: "smoke"
options:
- "smoke"
- "full"
---
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- when: never
stages:
- info
- test
- deploy
show-inputs:
stage: info
script:
- echo "MR pipeline demo"
- echo "environment=$[[ inputs.environment ]]"
- echo "test_suite=$[[ inputs.test_suite ]]"
smoke-tests:
stage: test
rules:
- if: '"$[[ inputs.test_suite ]]" == "smoke"'
script:
- echo "Running SMOKE tests"
- echo "Quick checks only"
full-tests:
stage: test
rules:
- if: '"$[[ inputs.test_suite ]]" == "full"'
script:
- echo "Running FULL tests"
- echo "Long regression suite"
deploy:
stage: deploy
script:
- echo "Deploy to $[[ inputs.environment ]]"
- |
if [ "$[[ inputs.environment ]]" = "stagging" ]; then
echo "Stagging mode demo"
else
echo "Test mode demo"
fi
