Основная ветка разработки - develop
.
Когда мы готовы к релизу на ветке develop создаем тэг v<число>
(например, v12
).
Последний тэг необходимо проверить в https://github.com/shvkn/ci-unit-demo-cra/tags
(develop) git tag -a v* -m 'v*'
(develop) git push --follow-tags
При появдения пуша с тэгом v* запускается флоу релизного процесса
- отведение ветки release-v*
- build
- lint
- e2e / unit тестирование
- добавление записи в реестр релизов (issue)
- в случае отсутсвия ошибок происходит деплой на gh pages и автоматическое закрытие issue релиза
После успешного прохождения релизного процесса создаем pull-request
master << release-v*
Запускается флоу pull_request
- build
- linter
- e2e / unit тестирование
Мерджим pull request изменения в master и подобновляем от master'a ветку develop
git checkout develop
git rebase master
git push
# в ветке develop создается коммит с hot-fix
(develop) git commit -m 'fix: hot-fix'
(develop) git push
(develop) git checkout release-v*
# Переносим hot-fix и переставляем тэг
(release-v*) git cherry-pick develop
(release-v*) git tag -fa v*
(release-v*) git push
(release-v*) git push --tags --force
Релизный процесс перезапускается. После хотфиксов необходимо удалить неудавшиеся action run'ы, они не дадут провести pull-request.
Флоу release, pull_request можно запускать вручную (на случай ошибки гитхаба 429)
В этом репозитории находится пример приложения с тестами:
Для запуска примеров необходимо установить NodeJS 16 или выше.
Как запустить:
# установить зависимости
npm ci
# запустить приложение
npm start
Как запустить e2e тесты:
# скачать браузеры
npx playwright install
# запустить тесты
npm run e2e
Как запустить модульные тесты:
npm test