@@ -9,12 +9,13 @@ stages:
99 - build
1010 - generate_release_tag
1111 - upload
12+ - generate_release_note
1213 - release
1314
1415build :
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
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
3535generate_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
4851upload :
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