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
2723jobs :
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