Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
perxis-go
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Package Registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
perxis
perxis-go
Commits
7bd11772
Commit
7bd11772
authored
9 months ago
by
Alena Petraki
Committed by
Pavel Antonov
9 months ago
Browse files
Options
Downloads
Patches
Plain Diff
Доработки Multirepo Release
parent
80761c5a
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
.gitlab-ci.yml
+51
-27
51 additions, 27 deletions
.gitlab-ci.yml
perxis-proto
+1
-1
1 addition, 1 deletion
perxis-proto
with
52 additions
and
28 deletions
.gitlab-ci.yml
+
51
−
27
View file @
7bd11772
...
@@ -33,7 +33,7 @@ lint:
...
@@ -33,7 +33,7 @@ lint:
# ----- prepare release -----
# ----- prepare release -----
# Расчет тега и формирование Changelog
# Расчет тега и формирование Changelog
get_
release_info
:
get_
changelog
:
stage
:
pre-release
stage
:
pre-release
image
:
image
:
name
:
orhunp/git-cliff:latest
name
:
orhunp/git-cliff:latest
...
@@ -46,7 +46,6 @@ get_release_info:
...
@@ -46,7 +46,6 @@ get_release_info:
GIT_STRATEGY
:
clone
GIT_STRATEGY
:
clone
GIT_DEPTH
:
0
GIT_DEPTH
:
0
script
:
script
:
-
echo "RELEASE_VERSION=$(git-cliff --bumped-version)" >> vars.env
# Расчет новой версии релиза через git-cliff
-
echo "$(git-cliff --unreleased | sed '1,6d' | sed '$d')" > current_changelog.md
# удалить "лишние" строки для Changelog
-
echo "$(git-cliff --unreleased | sed '1,6d' | sed '$d')" > current_changelog.md
# удалить "лишние" строки для Changelog
artifacts
:
artifacts
:
reports
:
reports
:
...
@@ -54,49 +53,51 @@ get_release_info:
...
@@ -54,49 +53,51 @@ get_release_info:
paths
:
paths
:
-
current_changelog.md
-
current_changelog.md
#
Получаем последнюю версию релиза
#
Релиз и запись тега в артефакт для использования в perxis
get_current_version
:
prepare_release
:
stage
:
pre-release
stage
:
pre-release
image
:
bitnami/git:latest
image
:
bitnami/git:latest
rules
:
-
if
:
'
$CI_PIPELINE_SOURCE
==
"pipeline"
&&
$PREPARE_RELEASE
==
"true"'
-
if
:
$CI_PIPELINE_SOURCE == "web"
needs
:
-
job
:
get_release_info
variables
:
variables
:
GIT_STRATEGY
:
clone
GIT_DEPTH
:
0
GIT_DEPTH
:
0
script
:
GIT_STRATEGY
:
clone
-
echo CURRENT_VERSION=$(git describe --tags --abbrev=0) >> vars.env
artifacts
:
reports
:
dotenv
:
vars.env
# Релиз и запись тега в артефакт для использования в perxis
prepare_release
:
stage
:
pre-release
image
:
registry.gitlab.com/gitlab-org/release-cli:latest
rules
:
rules
:
-
if
:
'
$CI_PIPELINE_SOURCE
==
"pipeline"
&&
$PREPARE_RELEASE
==
"true"'
-
if
:
'
$CI_PIPELINE_SOURCE
==
"pipeline"
&&
$PREPARE_RELEASE
==
"true"'
-
if
:
$CI_PIPELINE_SOURCE == "web"
-
if
:
$CI_PIPELINE_SOURCE == "web"
needs
:
needs
:
-
job
:
get_release_info
-
job
:
get_changelog
artifacts
:
true
-
job
:
get_current_version
artifacts
:
true
artifacts
:
true
script
:
script
:
-
echo "PERXIS_GO_RELEASE_VERSION=$RELEASE_VERSION" >> vars.env
-
echo "PERXIS_GO_CURRENT_VERSION=$CURRENT_VERSION" >> vars.env
-
|
-
|
CURRENT_VERSION=$(git describe --tags --abbrev=0)
RELEASE_VERSION=$CURRENT_VERSION
# Релиз выполняется только при наличии изменений
if [ $(git rev-list $CURRENT_VERSION..HEAD --count) -gt 0 ]; then
# Если релиз на мастере, то устанавливается версия равная версии в Perxis
RELEASE_VERSION=$PERXIS_RELEASE_VERSION
# Если релиз хотфиксовый, то увеличиваем патчевую версию
if [ $HOTFIX_RELEASE == "true" ]; then
RELEASE_VERSION=$(echo $CURRENT_VERSION | awk -F . '{print $1"."$2"."$3+1}')
fi
fi
# Если новая версия совпадает со старой, значит изменений не было, и выпускать новый релиз не нужно
# Если новая версия совпадает со старой, значит изменений не было, и выпускать новый релиз не нужно
NEEDS_RELEASE=false
NEEDS_RELEASE=false
if [ "$RELEASE_VERSION" != "$CURRENT_VERSION" ]; then
if [ "$RELEASE_VERSION" != "$CURRENT_VERSION" ]; then
NEEDS_RELEASE=true
NEEDS_RELEASE=true
fi
fi
echo "PERXIS_GO_CURRENT_VERSION=$CURRENT_VERSION" >> vars.env
echo "PERXIS_GO_RELEASE_VERSION=$RELEASE_VERSION" >> vars.env
echo "PERXIS_GO_NEEDS_RELEASE=$NEEDS_RELEASE" >> vars.env
echo "PERXIS_GO_NEEDS_RELEASE=$NEEDS_RELEASE" >> vars.env
cat current_changelog.md
printf '### Release perxis-go
PERXIS_RELEASE_VERSION: %s
HOTFIX_RELEASE: %s
CURRENT_VERSION: %s
RELEASE_VERSION: %s
NEEDS_RELEASE: %s' $PERXIS_RELEASE_VERSION $HOTFIX_RELEASE $CURRENT_VERSION $RELEASE_VERSION $NEEDS_RELEASE
artifacts
:
artifacts
:
when
:
always
when
:
always
paths
:
paths
:
...
@@ -106,6 +107,27 @@ prepare_release:
...
@@ -106,6 +107,27 @@ prepare_release:
# ----- release -----
# ----- release -----
create_release_branch
:
stage
:
release
image
:
bitnami/git:latest
variables
:
GIT_DEPTH
:
0
GIT_STRATEGY
:
clone
rules
:
-
if
:
$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE != "true"
-
if
:
$CI_PIPELINE_SOURCE == "web"
script
:
-
|
if [ $NEEDS_RELEASE == "true" ] && [ $CI_COMMIT_BRANCH == "master" ]; then
git config user.email "gitlab@ci-cd.pipeline"
git config user.name "gitlab-ci"
git remote remove gitlab_origin || true
git remote add gitlab_origin https://release_gitlab_ci:$PERXIS_GO_REPO_ACCESS_TOKEN@git.perx.ru/perxis/perxis-go.git
RELEASE_BRANCH=${VERSION::-2}
git branch release/$RELEASE_BRANCH || true
git push gitlab_origin release/$RELEASE_BRANCH
fi
release
:
release
:
stage
:
release
stage
:
release
image
:
registry.gitlab.com/gitlab-org/release-cli:latest
image
:
registry.gitlab.com/gitlab-org/release-cli:latest
...
@@ -113,6 +135,8 @@ release:
...
@@ -113,6 +135,8 @@ release:
-
if
:
$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE != "true"
-
if
:
$CI_PIPELINE_SOURCE == "pipeline" && $PREPARE_RELEASE != "true"
-
if
:
$CI_PIPELINE_SOURCE == "web"
-
if
:
$CI_PIPELINE_SOURCE == "web"
when
:
manual
when
:
manual
needs
:
-
create_release_branch
script
:
script
:
-
echo "Start release $VERSION"
-
echo "Start release $VERSION"
-
|
-
|
...
...
This diff is collapsed.
Click to expand it.
perxis-proto
@
fc23183a
Compare
e0a5fab4
...
fc23183a
Subproject commit
e0a5fab4b9acafc339c182afd64077640c88fecd
Subproject commit
fc23183a86463b2aa81e3b7570fad1f873c1e435
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment