Skip to content

Commit 55bb7e9

Browse files
committed
CI: separate release note to two jobs
1 parent 5c854a5 commit 55bb7e9

File tree

1 file changed

+37
-11
lines changed

1 file changed

+37
-11
lines changed

.gitlab-ci.yml

+37-11
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ stages:
99
- build
1010
- generate_release_tag
1111
- upload
12+
- generate_release_note
1213
- release
1314

1415
build:
1516
stage: build
1617
before_script:
17-
- (sudo apt-get update -y && apt-get install -y gzip) || true
18+
- (sudo apt-get update -y && sudo apt-get install -y gzip) || true
1819
script:
1920
- docker build -t release-${PACKAGE_NAME}:${version}-${architecture} ./${version}/${architecture}/ 1>${version}-${architecture}.log 2>&1
2021
- docker save release-${PACKAGE_NAME}:${version}-${architecture} > release-${version}-${architecture}.tar
@@ -28,9 +29,8 @@ build:
2829
architecture: ["x86_64", "x86"]
2930
tags: [shell]
3031
rules:
31-
- if: $CI_COMMIT_TAG
32+
- if: $CI_COMMIT_TAG != null
3233
when: never
33-
- when: always
3434

3535
generate_release_tag:
3636
stage: generate_release_tag
@@ -44,6 +44,9 @@ generate_release_tag:
4444
artifacts:
4545
paths: [".release_tag"]
4646
tags: [shell]
47+
rules:
48+
- if: $CI_COMMIT_TAG != null
49+
when: never
4750

4851
upload:
4952
stage: upload
@@ -62,33 +65,56 @@ upload:
6265
artifacts:
6366
paths: ["*-result.txt"]
6467
tags: [shell]
68+
rules:
69+
- if: $CI_COMMIT_TAG != null
70+
when: never
6571

66-
release:
67-
stage: release
68-
image: registry.gitlab.com/gitlab-org/release-cli:latest
69-
needs:
72+
generate_release_note:
73+
stage: generate_release_note
74+
needs:
7075
- job: upload
7176
artifacts: true
7277
- job: generate_release_tag
7378
artifacts: true
7479
before_script:
75-
- apt-get update -y && apt-get install jq -y
80+
- (sudo apt-get update -y && sudo apt-get install jq -y) || true
7681
script:
7782
- |
7883
export TAG_NAME="$(cat .release_tag)"
7984
echo "TAG_NAME=${TAG_NAME}"
8085
cat *-result.txt
8186
for res in $(ls *-result.txt); do
8287
url=$(cat $res | jq -r '.file.url')
83-
echo "url=${url}"
84-
filename=$(echo "$url" | sed "s/.*(release-.*\.tar\.gz)/\1/")
88+
echo && echo "url=${url}"
89+
filename=$(echo "$url" | sed -n "s|.*\(release.*\).tar.gz|\1|p");
8590
file_id=$(echo "$url" | sed -n 's/.*\/files\/\([0-9]\+\)\/.*/\1/p');
8691
echo "- [🐍 $filename](/../../package_files/${file_id}/download)" >> generated_release_notes.txt
8792
done
8893
echo >> generated_release_notes.txt
94+
artifacts:
95+
paths: ["generated_release_notes.txt"]
96+
tags: [shell]
97+
rules:
98+
- if: $CI_COMMIT_TAG != null
99+
when: never
100+
101+
release:
102+
stage: release
103+
needs:
104+
- job: generate_release_note
105+
artifacts: true
106+
- job: generate_release_tag
107+
artifacts: true
108+
image: registry.gitlab.com/gitlab-org/release-cli:latest
109+
script:
110+
- |
111+
export TAG_NAME="$(cat .release_tag)"
112+
echo "TAG_NAME=${TAG_NAME}"
89113
- |
90114
release-cli create --name "${PACKAGE_NAME}" \
91115
--ref "${CI_COMMIT_REF_NAME}" \
92116
--tag-name "${TAG_NAME}" \
93117
--description generated_release_notes.txt
94-
118+
rules:
119+
- if: $CI_COMMIT_TAG != null
120+
when: never

0 commit comments

Comments
 (0)