Skip to content

Commit 995a486

Browse files
author
Minh Hai Chu
authored
Add bump-version job to CI/CD workflow
1 parent f9fd582 commit 995a486

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

.github/workflows/cicd.yml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,3 +192,105 @@ jobs:
192192
path: |
193193
mlonmcu/workspace_kws/temp/sessions/latest/runs/latest/espidf/build/*.bin
194194
retention-days: 30
195+
196+
bump-version:
197+
runs-on: ubuntu-latest
198+
needs: simulate-kws
199+
outputs:
200+
version: ${{ steps.set-version.outputs.VERSION }}
201+
steps:
202+
- name: Checkout repository
203+
uses: actions/checkout@v4
204+
with:
205+
fetch-depth: 0
206+
207+
- name: Bump patch version
208+
id: set-version
209+
run: |
210+
sudo apt-get update && sudo apt-get install -y jq
211+
MAJOR=$(jq -r '.major' version.json)
212+
MINOR=$(jq -r '.minor' version.json)
213+
PATCH=$(jq -r '.patch' version.json)
214+
215+
PATCH=$((PATCH+1))
216+
217+
# Handle rollover: patch -> minor -> major
218+
if [ "$PATCH" -gt 10 ]; then
219+
PATCH=0
220+
MINOR=$((MINOR+1))
221+
fi
222+
223+
if [ "$MINOR" -gt 10 ]; then
224+
MINOR=0
225+
MAJOR=$((MAJOR+1))
226+
fi
227+
228+
# Write back into version.json
229+
jq \
230+
--argjson major $MAJOR \
231+
--argjson minor $MINOR \
232+
--argjson patch $PATCH \
233+
'{major:$major, minor:$minor, patch:$patch}' \
234+
version.json > version.tmp && mv version.tmp version.json
235+
236+
# Export version string
237+
VERSION="$MAJOR.$MINOR.$PATCH"
238+
echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT"
239+
240+
- name: Commit updated version.json
241+
run: |
242+
git config user.name "Hai Chu"
243+
git config user.email "[email protected]"
244+
git add version.json
245+
git commit -m "Bump version to ${{ steps.set-version.outputs.VERSION }} [skip ci]"
246+
git push
247+
248+
create-upload-deploy-artifact:
249+
runs-on: ubuntu-latest
250+
needs: bump-version
251+
container:
252+
image: mendersoftware/mender-ci-tools:master
253+
env:
254+
MENDER_SERVER_URL: https://eu.hosted.mender.io
255+
MENDER_API_TOKEN: ${{ secrets.MENDER_API_TOKEN }}
256+
VERSION: ${{ needs.bump-version.outputs.version }}
257+
APP_NAME: esp32c3-tumkws
258+
DEVICE: esp32
259+
DEVICE_TYPE: esp32c3-kws
260+
DEVICE_GROUP: cicd-kws
261+
steps:
262+
- name: Download firmware artifacts
263+
uses: actions/download-artifact@v4
264+
with:
265+
name: esp32-firmware
266+
path: build
267+
268+
- name: List downloaded files
269+
run: |
270+
echo "Files in build directory:"
271+
ls -laR build/
272+
273+
- name: Create Mender artifact
274+
run: |
275+
mender-artifact write module-image \
276+
--artifact-name "${{env.APP_NAME}}-v${{ env.VERSION }}" \
277+
--device-type "${{env.DEVICE_TYPE}}" \
278+
--type "${{env.DEVICE}}" \
279+
--file build/app.bin \
280+
--output-path build/${APP_NAME}-v${VERSION}.mender
281+
282+
- name: Upload Mender Artifact to Mender server
283+
uses: mendersoftware/[email protected]
284+
with:
285+
mender_pat: ${{ env.MENDER_API_TOKEN }}
286+
mender_artifact: build/${{env.APP_NAME}}-v${{env.VERSION}}.mender
287+
mender_uri: ${{ env.MENDER_SERVER_URL }}
288+
289+
- name: Create deployment
290+
uses: mendersoftware/[email protected]
291+
with:
292+
mender_pat: ${{ env.MENDER_API_TOKEN }}
293+
mender_deployment_name: "${{env.APP_NAME}}-v${{env.VERSION}}-deployment"
294+
mender_release_name: "${{env.APP_NAME}}-v${{env.VERSION}}"
295+
mender_devices_group: ${{ env.DEVICE_GROUP }}
296+
mender_uri: ${{ env.MENDER_SERVER_URL }}

0 commit comments

Comments
 (0)