@@ -9,12 +9,13 @@ stages:
9
9
- build
10
10
- generate_release_tag
11
11
- upload
12
+ - generate_release_note
12
13
- release
13
14
14
15
build :
15
16
stage : build
16
17
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
18
19
script :
19
20
- docker build -t release-${PACKAGE_NAME}:${version}-${architecture} ./${version}/${architecture}/ 1>${version}-${architecture}.log 2>&1
20
21
- docker save release-${PACKAGE_NAME}:${version}-${architecture} > release-${version}-${architecture}.tar
28
29
architecture : ["x86_64", "x86"]
29
30
tags : [shell]
30
31
rules :
31
- - if : $CI_COMMIT_TAG
32
+ - if : $CI_COMMIT_TAG != null
32
33
when : never
33
- - when : always
34
34
35
35
generate_release_tag :
36
36
stage : generate_release_tag
@@ -44,6 +44,9 @@ generate_release_tag:
44
44
artifacts :
45
45
paths : [".release_tag"]
46
46
tags : [shell]
47
+ rules :
48
+ - if : $CI_COMMIT_TAG != null
49
+ when : never
47
50
48
51
upload :
49
52
stage : upload
@@ -62,33 +65,56 @@ upload:
62
65
artifacts :
63
66
paths : ["*-result.txt"]
64
67
tags : [shell]
68
+ rules :
69
+ - if : $CI_COMMIT_TAG != null
70
+ when : never
65
71
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 :
70
75
- job : upload
71
76
artifacts : true
72
77
- job : generate_release_tag
73
78
artifacts : true
74
79
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
76
81
script :
77
82
- |
78
83
export TAG_NAME="$(cat .release_tag)"
79
84
echo "TAG_NAME=${TAG_NAME}"
80
85
cat *-result.txt
81
86
for res in $(ls *-result.txt); do
82
87
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");
85
90
file_id=$(echo "$url" | sed -n 's/.*\/files\/\([0-9]\+\)\/.*/\1/p');
86
91
echo "- [🐍 $filename](/../../package_files/${file_id}/download)" >> generated_release_notes.txt
87
92
done
88
93
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}"
89
113
- |
90
114
release-cli create --name "${PACKAGE_NAME}" \
91
115
--ref "${CI_COMMIT_REF_NAME}" \
92
116
--tag-name "${TAG_NAME}" \
93
117
--description generated_release_notes.txt
94
-
118
+ rules :
119
+ - if : $CI_COMMIT_TAG != null
120
+ when : never
0 commit comments