Skip to content

Commit 0549ae3

Browse files
committed
Update release.yml again.
1 parent 5563bca commit 0549ae3

File tree

1 file changed

+98
-57
lines changed

1 file changed

+98
-57
lines changed

.github/workflows/release.yml

Lines changed: 98 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,13 @@ env:
1919
repository_zip_name: ${{ github.event.repository.name }}-${{ github.event.inputs.version_number }}.zip
2020
# Source folder list for version number updates
2121
source_folder_list: "source test"
22-
repository_name: ${{ github.event.repository.name }}
23-
version_number: ${{ github.event.inputs.version_number }}
24-
actor: ${{ github.actor }}
25-
commit_id: ${{ github.event.inputs.commit_id }}
2622

2723
jobs:
2824
clean-existing-tag-and-release:
2925
if: ${{ github.event.inputs.delete_existing_tag_release == 'true' }}
3026
runs-on: ubuntu-latest
3127
env:
28+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
3229
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3330
steps:
3431
- name: Checkout code
@@ -37,10 +34,10 @@ jobs:
3734
- name: Check if tag exists
3835
run: |
3936
git fetch origin
40-
if git tag --list ${{ env.version_number }}
37+
if git tag --list $VERSION_NUMBER
4138
then
42-
echo "Deleting existing tag for ${{ env.version_number }}"
43-
git push origin --delete tags/${{ env.version_number }}
39+
echo "Deleting existing tag for $VERSION_NUMBER"
40+
git push origin --delete tags/$VERSION_NUMBER
4441
fi
4542
4643
- name: Check if release exists
@@ -49,10 +46,10 @@ jobs:
4946
sudo apt-add-repository https://cli.github.com/packages
5047
sudo apt update
5148
sudo apt-get install gh
52-
if gh release list | grep ${{ env.version_number }}
49+
if gh release list | grep $VERSION_NUMBER
5350
then
54-
echo "Deleting existing release for ${{ env.version_number }}
55-
gh release delete --yes ${{ env.version_number }}
51+
echo "Deleting existing release for $VERSION_NUMBER"
52+
gh release delete --yes $VERSION_NUMBER
5653
fi
5754
5855
add-sbom-and-tag-commit:
@@ -64,47 +61,61 @@ jobs:
6461
- name: Checkout code
6562
uses: actions/checkout@v4
6663
with:
67-
ref: ${{ env.commit_id }}
64+
ref: ${{ github.event.inputs.commit_id }}
6865

6966
- name: Configure git identity
67+
env:
68+
ACTOR: ${{ github.actor }}
7069
run: |
71-
git config --global user.name ${{ env.actor }}
72-
git config --global user.email ${{ env.actor }}@users.noreply.github.com
70+
git config --global user.name "$ACTOR"
71+
git config --global user.email "$ACTOR"@users.noreply.github.com
7372
7473
- name: create a new branch that references commit id
75-
run: git checkout -b ${{ env.version_number }} ${{ env.commit_id }}
74+
env:
75+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
76+
COMMIT_ID: ${{ github.event.inputs.version_number }}
77+
run: git checkout -b "$VERSION_NUMBER" "$COMMIT_ID"
7678

7779
- name: Update version number in source files
80+
env:
81+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
82+
REPO_NAME: ${{ github.event.repository.name }}
7883
run: |
7984
echo "${{ env.source_folder_list }}" | \
8085
xargs -n 1 sh -c \
8186
'find $1 -type f \( -name "*.c" -o -name "*.h" \) \
82-
-exec sed -i -b -E "0,/^ \* ${{ env.repository_name }}/s/^ \* ${{ env.repository_name }}.*/ \* ${{ env.repository_name }} ${{ env.version_number }}/g" {} +'
87+
-exec sed -i -b -E "0,/^ \* $REPO_NAME/s/^ \* $REPO_NAME.*/ \* $REPO_NAME $VERSION_NUMBER/g" {} +'
8388
git add .
8489
git commit -m '[AUTO][RELEASE]: Update version number in source files'
85-
git push -u origin ${{ env.version_number }}
90+
git push -u origin "$VERSION_NUMBER"
8691
8792
- name : Update version number in manifest.yml
93+
env:
94+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
8895
run: |
89-
sed -i -b '0,/^version/s/^version.*/version: "${{ env.version_number }}"/g' ./manifest.yml
96+
sed -i -b '0,/^version/s/^version.*/version: "$VERSION_NUMBER"/g' ./manifest.yml
9097
git add .
9198
git commit -m '[AUTO][RELEASE]: Update version number in manifest.yml'
92-
git push -u origin ${{ env.version_number }}
99+
git push -u origin "$VERSION_NUMBER"
93100
94101
- name : Update version number in doxygen
102+
env:
103+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
95104
run: |
96-
sed -i -b 's/PROJECT_NUMBER *=.*/PROJECT_NUMBER = ${{ env.version_number }}/g' ./docs/doxygen/config.doxyfile
105+
sed -i -b 's/PROJECT_NUMBER *=.*/PROJECT_NUMBER = $VERSION_NUMBER/g' ./docs/doxygen/config.doxyfile
97106
git add .
98107
git commit -m '[AUTO][RELEASE]: Update version number in doxygen'
99-
git push -u origin ${{ env.version_number }}
108+
git push -u origin "$VERSION_NUMBER"
100109
101110
- name : Update MQTT version number macro
102-
if: ${{ env.repository_name == 'coreMQTT' }}
111+
env:
112+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
113+
if: ${{ github.event.repository.name == 'coreMQTT' }}
103114
run: |
104-
sed -i -b 's/^\#define MQTT_LIBRARY_VERSION .*/\#define MQTT_LIBRARY_VERSION "${{ env.version_number }}"/g' source/include/core_mqtt.h
115+
sed -i -b 's/^\#define MQTT_LIBRARY_VERSION .*/\#define MQTT_LIBRARY_VERSION "$VERSION_NUMBER"/g' source/include/core_mqtt.h
105116
git add .
106117
git commit -m '[AUTO][RELEASE]: Update version number macro in source/include/core_mqtt.h'
107-
git push -u origin ${{ env.version_number }}
118+
git push -u origin "$VERSION_NUMBER"
108119
109120
- name: Generate SBOM
110121
uses: FreeRTOS/CI-CD-Github-Actions/sbom-generator@main
@@ -113,22 +124,30 @@ jobs:
113124
source_path: ./source
114125

115126
- name: commit SBOM file
127+
env:
128+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
116129
run: |
117130
git add .
118131
git commit -m 'Update SBOM'
119-
git push -u origin ${{ env.version_number }}
132+
git push -u origin "$VERSION_NUMBER"
120133
121134
- name: Tag Commit and Push to remote
135+
env:
136+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
137+
REPO_NAME: ${{ github.event.repository.name }}
122138
run: |
123-
git tag ${{ env.version_number }} -a -m "${{ env.repository_name }} Library ${{ env.version_number }}"
139+
git tag "$VERSION_NUMBER" -a -m "$REPO_NAME Library $VERSION_NUMBER"
124140
git push origin --tags
125141
126142
- name: Verify tag on remote
143+
env:
144+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
145+
COMMIT_ID: ${{ github.event.inputs.commit_id }}
127146
run: |
128-
git tag -d ${{ env.version_number }}
147+
git tag -d "$VERSION_NUMBER"
129148
git remote update
130-
git checkout tags/${{ env.version_number }}
131-
git diff ${{ env.commit_id }} tags/${{ env.version_number }}
149+
git checkout tags/"$VERSION_NUMBER"
150+
git diff "$COMMIT_ID" tags/"$VERSION_NUMBER"
132151
133152
create-zip:
134153
if: ${{ ( github.event.inputs.delete_existing_tag_release == 'true' && success() ) || ( github.event.inputs.delete_existing_tag_release == 'false' && always() ) }}
@@ -142,87 +161,107 @@ jobs:
142161
- name: Checkout code
143162
uses: actions/checkout@v4
144163
with:
145-
ref: ${{ env.version_number }}
146-
path: ${{ env.repository_name }}
164+
ref: ${{ github.event.inputs.version_number }}
165+
path: ${{ github.event.repository.name }}
147166
submodules: recursive
148167

149168
- name: Checkout disabled submodules
169+
env:
170+
REPO_NAME: ${{ github.event.repository.name }}
150171
run: |
151-
cd ${{ env.repository_name }}
172+
cd "$REPO_NAME"
152173
git submodule update --init --checkout --recursive
153174
154175
- name: Create ZIP
176+
env:
177+
REPO_NAME: ${{ github.event.repository.name }}
155178
run: |
156-
zip -r ${{ env.repository_zip_name }} ${{ env.repository_name }} -x "*.git*"
179+
zip -r ${{ env.repository_zip_name }} "$REPO_NAME" -x "*.git*"
157180
ls ./
158181
159182
- name: Validate created ZIP
183+
env:
184+
REPO_NAME: ${{ github.event.repository.name }}
160185
run: |
161186
mkdir zip-check
162187
mv ${{ env.repository_zip_name }} zip-check
163188
cd zip-check
164189
unzip ${{ env.repository_zip_name }} -d ${{ env.repository_compressed_name }}
165190
ls ${{ env.repository_compressed_name }}
166-
diff -r -x "*.git*" ${{ env.repository_compressed_name }}/${{ env.repository_name }}/ ../${{ env.repository_name }}/
191+
diff -r -x "*.git*" ${{ env.repository_compressed_name }}/"$REPO_NAME"/ ../"$REPO_NAME"/
167192
cd ../
168193
169194
- name: Check version number in source files
195+
env:
196+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
197+
REPO_NAME: ${{ github.event.repository.name }}
170198
run: |
171-
cd zip-check/${{ env.repository_compressed_name }}/${{ env.repository_name }}
199+
cd zip-check/${{ env.repository_compressed_name }}/"$REPO_NAME"
172200
173201
# List all the *.h *.c files in <source_folder_list>
174202
SOURCE_FILE_LIST=$( echo "${{ env.source_folder_list }}" | \
175203
xargs -n 1 sh -c 'find $1 -type f \( -name "*.c" -o -name "*.h" \)' )
176204
177205
# List all the files which contain " * <repository_name>.*" in SOURCE_FILE_LIST
178-
SOURCE_FILE_WITH_VERSION_LIST=$( grep -l " \* ${{ env.repository_name }}.*" $SOURCE_FILE_LIST )
206+
SOURCE_FILE_WITH_VERSION_LIST=$( grep -l " \* $REPO_NAME.*" $SOURCE_FILE_LIST )
179207
180208
# Compare the <version_number> with input version number in files in SOURCE_FILE_LIST
181209
echo $SOURCE_FILE_WITH_VERSION_LIST | xargs -I{} sh -c \
182-
'grep -x " \* ${{ env.repository_name }} ${{ env.version_number }}" {} && \
183-
echo {} : match ${{ env.repository_name }} ${{ env.version_number }} || \
184-
{ echo "{} : ${{ env.repository_name }} ${{ env.version_number }} not found"; exit 255; }'
210+
'grep -x " \* $REPO_NAME $VERSION_NUMBER" {} && \
211+
echo {} : match "$REPO_NAME" "$VERSION_NUMBER" || \
212+
{ echo "{} : $REPO_NAME $VERSION_NUMBER not found"; exit 255; }'
185213
186214
- name: Check version number in doxygen
215+
env:
216+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
217+
REPO_NAME: ${{ github.event.repository.name }}
187218
run: |
188-
cd zip-check/${{ env.repository_compressed_name }}/${{ env.repository_name }}
219+
cd zip-check/${{ env.repository_compressed_name }}/"$REPO_NAME"
189220
190221
# find "PROJECT_NUMBER = <version_number>"
191222
DOXYGEN_VERSION_NUMBER=$(grep -x "[ ]*PROJECT_NUMBER[ ]*=[ ]*[^ ]*[ ]*" docs/doxygen/config.doxyfile | awk -F= '{gsub(" ","",$2); print $2 }');
192223
193224
# compare the <version_number> with input version number
194-
[[ $DOXYGEN_VERSION_NUMBER == "${{ env.version_number }}" ]] \
195-
&& echo "config.doxyfile : match ${{ env.version_number }}" \
196-
|| { echo "config.doxyfile : $DOXYGEN_VERSION_NUMBER doesn't match ${{ env.version_number }}"; exit 255; }
225+
[[ $DOXYGEN_VERSION_NUMBER == "$VERSION_NUMBER" ]] \
226+
&& echo "config.doxyfile : match $VERSION_NUMBER" \
227+
|| { echo "config.doxyfile : $DOXYGEN_VERSION_NUMBER doesn't match $VERSION_NUMBER"; exit 255; }
197228
198229
- name: Check version number in manifest.yml
230+
env:
231+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
232+
REPO_NAME: ${{ github.event.repository.name }}
199233
run: |
200-
cd zip-check/${{ env.repository_compressed_name }}/${{ env.repository_name }}
234+
cd zip-check/${{ env.repository_compressed_name }}/"$REPO_NAME"
201235
202236
# find the first occurence of "version: <version_number>" and comare the <version_number> with input version number
203237
MANIFEST_VESION_NUMBER=$( grep -m 1 -E "^version:[ ]*\".*\"[ ]*" manifest.yml | awk -F: '{ gsub(" ","",$2); gsub("\"","",$2); print $2 }' );
204238
205239
# compare the <version_number> with input version number
206-
[[ $MANIFEST_VESION_NUMBER == "${{ env.version_number }}" ]] \
207-
&& echo "manifest.yml : match ${{ env.version_number }}" \
208-
|| { echo "manifest.yml : $MANIFEST_VESION_NUMBER doesn't match ${{ env.version_number }}"; exit 255; }
240+
[[ $MANIFEST_VESION_NUMBER == "$VERSION_NUMBER" ]] \
241+
&& echo "manifest.yml : match $VERSION_NUMBER" \
242+
|| { echo "manifest.yml : $MANIFEST_VESION_NUMBER doesn't match $VERSION_NUMBER"; exit 255; }
209243
210244
- name: Check MQTT version number macro in header file
211-
if: ${{ env.repository_name == 'coreMQTT' }}
245+
env:
246+
VERSION_NUMBER: ${{ github.event.inputs.version_number }}
247+
REPO_NAME: ${{ github.event.repository.name }}
248+
if: ${{ github.event.repository.name == 'coreMQTT' }}
212249
run: |
213-
cd zip-check/${{ env.repository_compressed_name }}/${{ env.repository_name }}
250+
cd zip-check/${{ env.repository_compressed_name }}/"$REPO_NAME"
214251
215252
# find "#define MQTT_LIBRARY_VERSION <version_number>" in core_mqtt.h
216253
MACRO_VERSION_NUMBER=$(grep -x "^\#define[ ]*MQTT_LIBRARY_VERSION[ ]*\".*\"[ ]*" source/include/core_mqtt.h | awk '{gsub("\"","",$3); print $3 }');
217254
218255
# compare the <version_number> with input version number
219-
[[ $MACRO_VERSION_NUMBER == "${{ env.version_number }}" ]] \
220-
&& echo "core_mqtt.h : match ${{ env.version_number }}" \
221-
|| { echo "core_mqtt.h : $MACRO_VERSION_NUMBER doesn't match ${{ env.version_number }}"; exit 255; }
256+
[[ $MACRO_VERSION_NUMBER == "$VERSION_NUMBER" ]] \
257+
&& echo "core_mqtt.h : match $VERSION_NUMBER" \
258+
|| { echo "core_mqtt.h : $MACRO_VERSION_NUMBER doesn't match $VERSION_NUMBER"; exit 255; }
222259
223260
- name: Build
261+
env:
262+
REPO_NAME: ${{ github.event.repository.name }}
224263
run: |
225-
cd zip-check/${{ env.repository_compressed_name }}/${{ env.repository_name }}
264+
cd zip-check/${{ env.repository_compressed_name }}/"$REPO_NAME"
226265
sudo apt-get install -y lcov
227266
cmake -S test -B build/ \
228267
-G "Unix Makefiles" \
@@ -232,8 +271,10 @@ jobs:
232271
make -C build/ all
233272
234273
- name: Test
274+
env:
275+
REPO_NAME: ${{ github.event.repository.name }}
235276
run: |
236-
cd zip-check/${{ env.repository_compressed_name }}/${{ env.repository_name }}/build/
277+
cd zip-check/${{ env.repository_compressed_name }}/"$REPO_NAME"/build/
237278
ctest -E system --output-on-failure
238279
cd ..
239280
@@ -252,7 +293,7 @@ jobs:
252293
- name: Doxygen generation
253294
uses: FreeRTOS/CI-CD-Github-Actions/doxygen-generation@main
254295
with:
255-
ref: ${{ env.version_number }}
296+
ref: ${{ github.event.inputs.version_number }}
256297
add_release: "true"
257298

258299
create-release:
@@ -269,9 +310,9 @@ jobs:
269310
env:
270311
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
271312
with:
272-
tag_name: ${{ env.version_number }}
273-
release_name: ${{ env.version_number }}
274-
body: Release ${{ env.version_number }} of the ${{ env.repository_name }} Library.
313+
tag_name: ${{ github.event.inputs.version_number }}
314+
release_name: ${{ github.event.inputs.version_number }}
315+
body: Release ${{ github.event.inputs.version_number }} of the ${{ github.event.repository.name }} Library.
275316
draft: false
276317
prerelease: false
277318

0 commit comments

Comments
 (0)