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

wip

parent 7a3d790c
No related branches found
No related tags found
No related merge requests found
......@@ -29,52 +29,65 @@ lint:
paths:
- gl-code-quality-report.json
# Расчет тега и формирование Changelog
get_release_info:
# Получаем последнюю версию релиза
get_last_version:
stage: release
image:
name: orhunp/git-cliff:latest
entrypoint: [ "" ]
image: golang:1.22.0-alpine3.18
rules:
- if: $CI_PIPELINE_SOURCE == "pipeline" # Запуск при инициации из perxis
- if: $CI_PIPELINE_SOURCE == "pipeline"
- if: $CI_PIPELINE_SOURCE == "web"
when: manual # или при ручном запуске
variables:
GIT_STRATEGY: clone
GIT_DEPTH: 0
before_script:
- apk --no-cache add git
script:
- echo "VERSION=$(git-cliff --bumped-version)" >> vars.env # Расчет новой версии релиза через git-cliff
- echo "$(git-cliff --unreleased | sed '1,6d' | sed '$d')" > CHANGELOG.md # удалить "лишние" строки для Changelog
- echo "[DEBUG]"
- echo LAST_VERSION=$(git describe --tags --abbrev=0) >> vars.env
- echo [DEBUG]
- cat vars.env
- cat CHANGELOG.md
artifacts:
reports:
dotenv: vars.env # Use artifacts:reports:dotenv to expose the variables to other jobs
paths:
- CHANGELOG.md
dotenv: vars.env
# Получаем последнюю версию релиза
get_last_version:
# Расчет тега и формирование Changelog
get_release_info:
stage: release
image: golang:1.22.0-alpine3.18
image:
name: orhunp/git-cliff:latest
entrypoint: [ "" ]
rules:
- if: $CI_PIPELINE_SOURCE == "pipeline"
- if: $CI_PIPELINE_SOURCE == "pipeline" # Запуск при инициации из perxis
- if: $CI_PIPELINE_SOURCE == "web"
when: manual # или при ручном запуске
needs:
- job: get_release_info
- job: get_last_version
variables:
GIT_STRATEGY: clone
GIT_DEPTH: 0
before_script:
- apk --no-cache add git
script:
- echo LAST_VERSION=$(git describe --tags --abbrev=0) >> vars.env
- echo [DEBUG]
- cat vars.env
- echo "VERSION=$(git-cliff --bumped-version)" >> vars.env # Расчет новой версии релиза через git-cliff
- echo "$(git-cliff --unreleased | sed '1,6d' | sed '$d')" > CHANGELOG.md # удалить "лишние" строки для Changelog
- |
# Если новая версия совпадает со старой, значит изменений не было, и выпускать новый релиз не нужно
if [ "$VERSION" == "$LAST_VERSION" ]; then
export NEEDS_RELEASE=false
fi
# Собрать в файл информацию о релизе в формате:
# ---
# version: $VERSION
# needs_release: $NEEDS_RELEASE
# changelog: |
# $CHANGELOG
# ---
- echo "[DEBUG]"
- cat release.yaml
artifacts:
reports:
dotenv: vars.env
# reports:
# dotenv: vars.env # Use artifacts:reports:dotenv to expose the variables to other jobs
paths:
- release.yaml
# Релиз и запись тега в артефакт для использования в perxis
release:
......@@ -94,7 +107,7 @@ release:
- cat vars.env
- |
# Если новая версия совпадает со старой, значит изменений не было, и выпускать новый релиз не нужно
if [ "$VERSION" == "$LAST_VERSION" ]; then
if [ "$PREPARE_RELEASE" == "true" ] || [ "$NEEDS_RELEASE" == "false" ]; then
exit 204
fi
# TODO: Закомментировано в целях дальнейшего тестирования. Раскомментировать перед вливанием feature-ветки!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment