66name : Upload Release Assets
77
88env :
9- MAKEOPTS : -j2
9+ MAKEOPTS : -j
10+
11+ permissions :
12+ contents : write
1013
1114jobs :
1215 upload_release :
1316 name : Upload Release Assets
14- runs-on : ubuntu-20 .04
17+ runs-on : ubuntu-22 .04
1518 steps :
16- - name : Check cache
17- id : check-cache
18- uses : actions/cache@v2
19- with :
20- path : ${{ runner.tool_cache }}/gcc-arm-10-2020-q4
21- key : gcc-arm-10-2020-q4
22- - name : Download
23- if : steps.check-cache.outputs.cache-hit != 'true'
24- uses : dlech/arm-none-eabi-gcc@master
25- with :
26- release : ' 10-2020-q4'
27- directory : ${{ runner.tool_cache }}/gcc-arm-10-2020-q4
28- - name : Add cross-compiler to path
29- run : echo ${{ runner.tool_cache }}/gcc-arm-10-2020-q4/bin >> $GITHUB_PATH
19+ - name : Install cross-compiler
20+ run : sudo apt-get update && sudo apt-get install --yes gcc-arm-none-eabi
3021 - name : Checkout code
3122 uses : actions/checkout@v3
3223 with :
3324 submodules : true
25+ fetch-depth : 0
3426 - name : Build firmware
3527 run : |
3628 make $MAKEOPTS -C micropython/mpy-cross
@@ -41,63 +33,25 @@ jobs:
4133 make $MAKEOPTS -C bricks/essentialhub
4234 - name : Get tag
4335 run : echo "GITHUB_TAG=${GITHUB_REF#*refs/tags/}" >> $GITHUB_ENV
44- - name : Create Release
45- id : create_release
46- uses : actions/create-release@v1
47- env :
48- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
49- with :
50- tag_name : ${{ github.ref }}
51- release_name : Release ${{ github.ref }}
52- draft : false
53- prerelease : ${{ contains(env.GITHUB_TAG, 'a') || contains(env.GITHUB_TAG, 'b') || contains(env.GITHUB_TAG, 'c') }}
54- - name : Upload movehub firmware
55- id : upload-movehub
56- uses : actions/upload-release-asset@v1
57- env :
58- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
59- with :
60- upload_url : ${{ steps.create_release.outputs.upload_url }}
61- asset_path : ./bricks/movehub/build/firmware.zip
62- asset_name : pybricks-movehub-${{ env.GITHUB_TAG }}.zip
63- asset_content_type : application/zip
64- - name : Upload cityhub firmware
65- id : upload-cityhub
66- uses : actions/upload-release-asset@v1
67- env :
68- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
69- with :
70- upload_url : ${{ steps.create_release.outputs.upload_url }}
71- asset_path : ./bricks/cityhub/build/firmware.zip
72- asset_name : pybricks-cityhub-${{ env.GITHUB_TAG }}.zip
73- asset_content_type : application/zip
74- - name : Upload technichub firmware
75- id : upload-technichub
76- uses : actions/upload-release-asset@v1
77- env :
78- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
79- with :
80- upload_url : ${{ steps.create_release.outputs.upload_url }}
81- asset_path : ./bricks/technichub/build/firmware.zip
82- asset_name : pybricks-technichub-${{ env.GITHUB_TAG }}.zip
83- asset_content_type : application/zip
84- - name : Upload primehub firmware
85- id : upload-primehub
86- uses : actions/upload-release-asset@v1
36+ - name : Create Release and Upload Assets
8737 env :
8838 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
89- with :
90- upload_url : ${{ steps.create_release.outputs.upload_url }}
91- asset_path : ./bricks/primehub/build/firmware.zip
92- asset_name : pybricks-primehub-${{ env.GITHUB_TAG }}.zip
93- asset_content_type : application/zip
94- - name : Upload essentialhub firmware
95- id : upload-essentialhub
96- uses : actions/upload-release-asset@v1
97- env :
98- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
99- with :
100- upload_url : ${{ steps.create_release.outputs.upload_url }}
101- asset_path : ./bricks/essentialhub/build/firmware.zip
102- asset_name : pybricks-essentialhub-${{ env.GITHUB_TAG }}.zip
103- asset_content_type : application/zip
39+ tag : ${{ github.ref_name }}
40+ run : |
41+ if [[ "${{ contains(env.GITHUB_TAG, 'a') || contains(env.GITHUB_TAG, 'b') || contains(env.GITHUB_TAG, 'c') }}" == "true" ]]; then
42+ PRERELEASE_FLAG="--prerelease"
43+ else
44+ PRERELEASE_FLAG=""
45+ fi
46+ HUBS="movehub cityhub technichub primehub essentialhub"
47+ for HUB in $HUBS; do
48+ NEW_FILENAME="./bricks/$HUB/build/pybricks-$HUB-${{ env.GITHUB_TAG }}.zip"
49+ mv "./bricks/$HUB/build/firmware.zip" "$NEW_FILENAME"
50+ ASSETS="$ASSETS $NEW_FILENAME"
51+ done
52+ gh release create "$tag" \
53+ --repo="$GITHUB_REPOSITORY" \
54+ --title="${tag#v}" \
55+ -F CHANGELOG.md \
56+ $PRERELEASE_FLAG \
57+ $ASSETS
0 commit comments