Skip to content
Snippets Groups Projects
Commit 42d96559 authored by Alena Petraki's avatar Alena Petraki :nail_care_tone1:
Browse files

Подготовка релиза

parent 891a7f23
No related branches found
No related tags found
1 merge request!41Подготовка МР с информацией о релизе
Pipeline #50809 passed with stage
in 31 seconds
stages: stages:
- pre-release
- release - release
# Инициация процесса релиза. Запускается вручную или из восходящего конвейера # Инициация процесса релиза. Запускается вручную или из восходящего конвейера
start_release: get_current_version:
image: alpine:latest image: alpine:latest
stage: release stage: pre-release
rules: rules:
- if: $CI_PIPELINE_SOURCE == "pipeline" - if: '$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE == "true"'
- if: $CI_PIPELINE_SOURCE == "web" - if: $CI_PIPELINE_SOURCE == "web"
when: manual when: manual
variables: variables:
...@@ -16,63 +17,59 @@ start_release: ...@@ -16,63 +17,59 @@ start_release:
- apk --no-cache add git - apk --no-cache add git
script: script:
- echo "Start release for perxis-proto" - echo "Start release for perxis-proto"
- echo LAST_VERSION=$(git describe --tags --abbrev=0) >> vars.env - echo CURRENT_VERSION=$(git describe --tags --abbrev=0) >> vars.env
artifacts: artifacts:
reports: reports:
dotenv: vars.env dotenv: vars.env
# Расчет новой версии и формирование Changelog # Расчет новой версии и формирование Changelog
get_release_info: get_release_info:
stage: release stage: pre-release
image: image:
name: orhunp/git-cliff:latest name: orhunp/git-cliff:latest
entrypoint: [ "" ] entrypoint: [ "" ]
rules: rules:
- if: $CI_PIPELINE_SOURCE == "pipeline" - if: '$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE == "true"'
- if: $CI_PIPELINE_SOURCE == "web" - if: $CI_PIPELINE_SOURCE == "web"
needs: needs:
- job: start_release - job: get_current_version
variables: variables:
GIT_STRATEGY: clone GIT_STRATEGY: clone
GIT_DEPTH: 0 GIT_DEPTH: 0
script: script:
- echo "VERSION=$(git-cliff --bumped-version)" >> vars.env - echo "RELEASE_VERSION=$(git-cliff --bumped-version)" >> vars.env
- echo "$(git-cliff --unreleased | sed '1,6d' | sed '$d')" > CHANGELOG.md - echo "$(git-cliff --unreleased | sed '1,6d' | sed '$d')" > current_changelog.md
artifacts: artifacts:
reports: reports:
dotenv: vars.env dotenv: vars.env
paths: paths:
- CHANGELOG.md - current_changelog.md
# Выпуск релиза и публикация артефактов с новой версией и списком изменений # Выпуск релиза и публикация артефактов с новой версией и списком изменений
release: prepare_release:
stage: release stage: pre-release
image: registry.gitlab.com/gitlab-org/release-cli:latest image: registry.gitlab.com/gitlab-org/release-cli:latest
rules: rules:
- if: $CI_PIPELINE_SOURCE == "pipeline" - if: '$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE == "true"'
- if: $CI_PIPELINE_SOURCE == "web" - if: $CI_PIPELINE_SOURCE == "web"
needs: needs:
- job: start_release - job: get_current_version
artifacts: true artifacts: true
- job: get_release_info - job: get_release_info
artifacts: true artifacts: true
script: script:
- echo "PERXIS_PROTO_RELEASE_VERSION=$VERSION" >> vars.env - echo "PERXIS_PROTO_CURRENT_VERSION=$CURRENT_VERSION" >> vars.env
- echo "PERXIS_PROTO_RELEASE_VERSION=$RELEASE_VERSION" >> vars.env
- | - |
if [ "$VERSION" == "$LAST_VERSION" ]; then # Если новая версия совпадает со старой, значит изменений не было, и выпускать новый релиз не нужно
exit 204 NEEDS_RELEASE=false
if [ "$RELEASE_VERSION" != "$CURRENT_VERSION" ]; then
NEEDS_RELEASE=true
fi fi
# # TODO Убрать при влитии feature-ветки в мастер - echo "PERXIS_PROTO_NEEDS_RELEASE=$NEEDS_RELEASE" >> vars.env
# release:
# name: "Release $VERSION"
# tag_name: "$VERSION"
# description: "$VERSION"
allow_failure:
exit_codes:
- 204
artifacts: artifacts:
when: always when: always
paths: paths:
- vars.env - vars.env
- CHANGELOG.md - current_changelog.md
expire_in: 1 week expire_in: 1 week
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment