Skip to content

Commit c91ba59

Browse files
committed
ci: Attach firmware hex and bin to GitHub releases.
1 parent d3230d8 commit c91ba59

2 files changed

Lines changed: 46 additions & 1 deletion

File tree

.github/workflows/release.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ jobs:
1616
issues: write
1717
pull-requests: write
1818
id-token: write
19+
outputs:
20+
new-release-published: ${{ steps.semantic.outputs.new-release-published }}
21+
new-release-version: ${{ steps.semantic.outputs.new-release-version }}
1922
steps:
2023
- name: Generate token
2124
id: generate_token
@@ -37,7 +40,48 @@ jobs:
3740
- run: npm ci
3841

3942
- name: Run semantic-release
43+
id: semantic
4044
env:
4145
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
4246
HUSKY: "0"
4347
run: npx semantic-release
48+
49+
firmware:
50+
name: Build and attach firmware
51+
needs: release
52+
if: needs.release.outputs.new-release-published == 'true'
53+
runs-on: ubuntu-latest
54+
permissions:
55+
contents: write
56+
steps:
57+
- name: Generate token
58+
id: generate_token
59+
uses: tibdex/github-app-token@v2
60+
with:
61+
app_id: ${{ secrets.RELEASE_APP_ID }}
62+
private_key: ${{ secrets.RELEASE_APP_SECRET }}
63+
64+
- uses: actions/checkout@v4
65+
with:
66+
ref: v${{ needs.release.outputs.new-release-version }}
67+
68+
- name: Install ARM toolchain
69+
run: |
70+
sudo apt-get update
71+
sudo apt-get install -y --no-install-recommends gcc-arm-none-eabi libnewlib-arm-none-eabi
72+
73+
- name: Build firmware
74+
run: make firmware
75+
76+
- name: Attach firmware to release
77+
env:
78+
GH_TOKEN: ${{ steps.generate_token.outputs.token }}
79+
run: |
80+
VERSION="v${{ needs.release.outputs.new-release-version }}"
81+
BUILD_DIR=".build/micropython-steami/ports/stm32/build-STEAM32_WB55RG"
82+
cp "${BUILD_DIR}/firmware.hex" "steami-firmware-${VERSION}.hex"
83+
cp "${BUILD_DIR}/firmware.bin" "steami-firmware-${VERSION}.bin"
84+
gh release upload "$VERSION" \
85+
"steami-firmware-${VERSION}.hex" \
86+
"steami-firmware-${VERSION}.bin" \
87+
--clobber

.releaserc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"changelogTitle": "# Changelog\n\nAll notable changes to this project will be documented in this file.\nSee [Conventional Commits](https://conventionalcommits.org) for commit guidelines."
2525
}],
2626
["@semantic-release/exec", {
27-
"prepareCmd": "sed -i 's/^version = \".*\"/version = \"${nextRelease.version}\"/' pyproject.toml"
27+
"prepareCmd": "sed -i 's/^version = \".*\"/version = \"${nextRelease.version}\"/' pyproject.toml",
28+
"publishCmd": "echo new-release-published=true >> $GITHUB_OUTPUT && echo new-release-version=${nextRelease.version} >> $GITHUB_OUTPUT"
2829
}],
2930
["@semantic-release/git", {
3031
"assets": ["CHANGELOG.md", "pyproject.toml"],

0 commit comments

Comments
 (0)