4
4
workflow_dispatch :
5
5
inputs :
6
6
commit_id :
7
- description : " Commit ID to tag and create a release for"
7
+ description : ' Commit ID to tag and create a release for'
8
8
required : true
9
9
version_number :
10
- description : " Release Version Number (Eg, v1.0.0)"
10
+ description : ' Release Version Number (Eg, v1.0.0)'
11
11
required : true
12
12
13
13
jobs :
@@ -16,35 +16,47 @@ jobs:
16
16
runs-on : ubuntu-latest
17
17
steps :
18
18
- name : Checkout code
19
- uses : actions/checkout@v2
19
+ uses : actions/checkout@v4
20
20
with :
21
21
ref : ${{ github.event.inputs.commit_id }}
22
22
- name : Configure git identity
23
+ env :
24
+ ACTOR : ${{ github.actor }}
23
25
run : |
24
- git config --global user.name ${{ github.actor }}
25
- git config --global user.email ${{ github.actor }} @users.noreply.github.com
26
+ git config --global user.name "$ACTOR"
27
+ git config --global user.email "$ACTOR" @users.noreply.github.com
26
28
- name : create a new branch that references commit id
27
- run : git checkout -b ${{ github.event.inputs.version_number }} ${{ github.event.inputs.commit_id }}
29
+ env :
30
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
31
+ COMMIT_ID : ${{ github.event.inputs.commit_id }}
32
+ run : git checkout -b "$VERSION_NUMBER" "$COMMIT_ID"
28
33
- name : Generate SBOM
29
34
uses : FreeRTOS/CI-CD-Github-Actions/sbom-generator@main
30
35
with :
31
36
repo_path : ./
32
37
source_path : ./source
33
38
- name : commit SBOM file
39
+ env :
40
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
34
41
run : |
35
42
git add .
36
43
git commit -m 'Update SBOM'
37
- git push -u origin ${{ github.event.inputs.version_number }}
44
+ git push -u origin "$VERSION_NUMBER"
38
45
- name : Tag Commit and Push to remote
46
+ env :
47
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
39
48
run : |
40
- git tag ${{ github.event.inputs.version_number }} -a -m "FreeRTOS-Plus-FAT Library ${{ github.event.inputs.version_number }} "
49
+ git tag "$VERSION_NUMBER" -a -m "FreeRTOS-Plus-FAT Library $VERSION_NUMBER "
41
50
git push origin --tags
42
51
- name : Verify tag on remote
52
+ env :
53
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
54
+ COMMIT_ID : ${{ github.event.inputs.commit_id }}
43
55
run : |
44
- git tag -d ${{ github.event.inputs.version_number }}
56
+ git tag -d "$VERSION_NUMBER"
45
57
git remote update
46
- git checkout tags/${{ github.event.inputs.version_number }}
47
- git diff ${{ github.event.inputs.commit_id }} tags/${{ github.event.inputs.version_number }}
58
+ git checkout tags/"$VERSION_NUMBER"
59
+ git diff "$COMMIT_ID" tags/"$VERSION_NUMBER"
48
60
create-zip :
49
61
needs : tag-commit
50
62
name : Create ZIP and verify package for release asset.
@@ -53,46 +65,54 @@ jobs:
53
65
- name : Install ZIP tools
54
66
run : sudo apt-get install zip unzip
55
67
- name : Checkout code
56
- uses : actions/checkout@v2
68
+ uses : actions/checkout@v4
57
69
with :
58
- ref : ${{ github.event.inputs.commit_id }}
70
+ ref : ${{ github.event.inputs.version_number }}
59
71
path : FreeRTOS-Plus-FAT
60
72
submodules : recursive
61
73
- name : Checkout disabled submodules
62
74
run : |
63
75
cd FreeRTOS-Plus-FAT
64
76
git submodule update --init --checkout --recursive
65
77
- name : Create ZIP
78
+ env :
79
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
66
80
run : |
67
- zip -r FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }} .zip FreeRTOS-Plus-FAT -x "*.git*"
81
+ zip -r FreeRTOS-Plus-FAT-"$VERSION_NUMBER" .zip FreeRTOS-Plus-FAT -x "*.git*"
68
82
ls ./
69
83
- name : Validate created ZIP
84
+ env :
85
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
70
86
run : |
71
87
mkdir zip-check
72
- mv FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }} .zip zip-check
88
+ mv FreeRTOS-Plus-FAT-"$VERSION_NUMBER" .zip zip-check
73
89
cd zip-check
74
- unzip FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }}. zip -d FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }}
75
- ls FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }}
76
- diff -r -x "*.git*" FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }} /FreeRTOS-Plus-FAT/ ../FreeRTOS-Plus-FAT/
90
+ unzip FreeRTOS-Plus-FAT-"$VERSION_NUMBER". zip -d FreeRTOS-Plus-FAT-"$VERSION_NUMBER"
91
+ ls FreeRTOS-Plus-FAT-"$VERSION_NUMBER"
92
+ diff -r -x "*.git*" FreeRTOS-Plus-FAT-"$VERSION_NUMBER" /FreeRTOS-Plus-FAT/ ../FreeRTOS-Plus-FAT/
77
93
cd ../
78
94
- name : Build
95
+ env :
96
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
79
97
run : |
80
- cd zip-check/FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }} /FreeRTOS-Plus-FAT
98
+ cd zip-check/FreeRTOS-Plus-FAT-"$VERSION_NUMBER" /FreeRTOS-Plus-FAT
81
99
sudo apt-get install -y lcov
82
100
sudo apt-get install unifdef
83
101
cmake -S test/unit-test -B test/unit-test/build/
84
102
make -C test/unit-test/build/ all
85
103
- name : Test
104
+ env :
105
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
86
106
run : |
87
- cd zip-check/FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }} /FreeRTOS-Plus-FAT
107
+ cd zip-check/FreeRTOS-Plus-FAT-"$VERSION_NUMBER" /FreeRTOS-Plus-FAT
88
108
pushd test/unit-test/build/
89
109
ctest -E system --output-on-failure
90
110
popd
91
111
make -C test/unit-test/build/ coverage
92
112
lcov --list --rc lcov_branch_coverage=1 test/unit-test/build/coverage.info
93
113
cd ..
94
114
- name : Create artifact of ZIP
95
- uses : actions/upload-artifact@v2
115
+ uses : actions/upload-artifact@v4
96
116
with :
97
117
name : FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }}.zip
98
118
path : zip-check/FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }}.zip
@@ -125,7 +145,7 @@ jobs:
125
145
draft : false
126
146
prerelease : false
127
147
- name : Download ZIP artifact
128
- uses : actions/download-artifact@v4.1.7
148
+ uses : actions/download-artifact@v4
129
149
with :
130
150
name : FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }}.zip
131
151
- name : Upload Release Asset
@@ -138,3 +158,17 @@ jobs:
138
158
asset_path : ./FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }}.zip
139
159
asset_name : FreeRTOS-Plus-FAT-${{ github.event.inputs.version_number }}.zip
140
160
asset_content_type : application/zip
161
+ cleanup :
162
+ needs :
163
+ - create-release
164
+ name : Cleanup
165
+ runs-on : ubuntu-latest
166
+ steps :
167
+ - name : Checkout code
168
+ uses : actions/checkout@v4
169
+ - name : Delete branch created for Tag by SBOM generator
170
+ env :
171
+ VERSION_NUMBER : ${{ github.event.inputs.version_number }}
172
+ run : |
173
+ # Delete the branch created for Tag by SBOM generator
174
+ git push -u origin --delete refs/heads/"$VERSION_NUMBER"
0 commit comments