Как правильно написать конфиг для следующего поведения:
При любом коммите или PR запускаются тесты
npm run tests
Если в ветку мастер пушится что-то с тегом Выполнить тесты, выполнить сборку, выболнить деплой в продакшн командой
npm run deploy
и выполнить деплой в GitHub Releases
И при этом все описанные выше шаги должны запускаться дважды с одной отличающейся переменной окружения
BROWSER
Т.е как я это вижу:
Я делаю коммит в любую ветку — запускается два парралельных теста
BROWSER=chrome npm run tests
BROWSER=firefox npm run tests
Кто-то делает PR в какою-либо ветку — запускается два парралельных теста
BROWSER=chrome npm run tests
BROWSER=firefox npm run tests
Я делаю коммит в мастер с тегом — запускается два парралельных теста
BROWSER=chrome npm run tests
BROWSER=firefox npm run tests
Если оба теста успешно проходят, запускается две команды на деплой
BROWSER=chrome npm run deploy
BROWSER=firefox npm run deploy
И третья команда на создание релиза на GitHub
Я с этим инструментом не знаком вообще. Написал вот такой конфиг
language: node_js
node_js:
- "10"
env:
- BROWSER=chrome
- BROWSER=firefox
script: npm run build
deploy:
skip_cleanup: true
provider: script
script: npm run deploy
on:
branch: master
Но не понятно:
Как сюда добавить предварительную стадию тестирования?
Как сделать так чтобы deploy запускался только если есть тег?
Как таск будет реагировать на PR в ветку мастер?
Как добавить ещё одну задачу на деплой в GitHub?