Skip to content

Release 4.3 (08.02.2025) #22

Release 4.3 (08.02.2025)

Release 4.3 (08.02.2025) #22

Workflow file for this run

name: 🚀 Release Firmware
on:
workflow_dispatch:
inputs:
release-version:
description: 'Release version'
required: true
type: string
release-title:
description: 'Release title'
required: true
type: string
run-name: Release ${{ inputs.release-version }} (${{ inputs.release-title }})
jobs:
build:
if: ${{ github.ref_name == 'master' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Replace version in firmware source
run: |
sed -i 's/VERSION = ".*";/VERSION = "${{ inputs.release-version }}";/' ${{ github.workspace }}/firmware/src/JaamFirmware.cpp
- name: Compile firmware
uses: ./.github/workflows/firmware-compile
- name: Copy bin to upload
run: |
cp -f ${{ github.workspace }}/firmware/.pio/build/firmware/firmware.bin ${{ github.workspace }}/JAAM_${{ inputs.release-version }}.bin
- name: Upload firmware
uses: actions/upload-artifact@v4
with:
name: JAAM_${{ inputs.release-version }}.bin
path: ${{ github.workspace }}/JAAM_${{ inputs.release-version }}.bin
build_lite:
if: ${{ github.ref_name == 'master' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Replace version and build type in firmware source
run: |
sed -i 's/VERSION = ".*";/VERSION = "${{ inputs.release-version }}";/' ${{ github.workspace }}/firmware/src/JaamFirmware.cpp
sed -i 's/#define LITE ./#define LITE 1/' ${{ github.workspace }}/firmware/src/Definitions.h
- name: Compile firmware
uses: ./.github/workflows/firmware-compile
- name: Copy bin to upload
run: |
cp -f ${{ github.workspace }}/firmware/.pio/build/firmware/firmware.bin ${{ github.workspace }}/JAAM_${{ inputs.release-version }}_lite.bin
- name: Upload firmware
uses: actions/upload-artifact@v4
with:
name: JAAM_${{ inputs.release-version }}_lite.bin
path: ${{ github.workspace }}/JAAM_${{ inputs.release-version }}_lite.bin
release_firmware:
needs: [build, build_lite]
runs-on: ubuntu-latest
environment:
name: github-pages
permissions:
contents: write
pages: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Replace version in firmware source
run: |
sed -i 's/VERSION = ".*";/VERSION = "${{ inputs.release-version }}";/' ${{ github.workspace }}/firmware/src/JaamFirmware.cpp
- name: Download firmware
uses: actions/download-artifact@v4
with:
name: JAAM_${{ inputs.release-version }}.bin
path: ${{ github.workspace }}/JAAM_${{ inputs.release-version }}.bin
- name: Download firmware lite
uses: actions/download-artifact@v4
with:
name: JAAM_${{ inputs.release-version }}_lite.bin
path: ${{ github.workspace }}/JAAM_${{ inputs.release-version }}_lite.bin
- name: Copy release files to bin folder
run: |
mkdir -p ${{ github.workspace }}/bin/
mkdir -p ${{ github.workspace }}/bin_beta/
cp -f ${{ github.workspace }}/JAAM_${{ inputs.release-version }}.bin/JAAM_${{ inputs.release-version }}.bin ${{ github.workspace }}/bin/${{ inputs.release-version }}.bin
cp -f ${{ github.workspace }}/JAAM_${{ inputs.release-version }}.bin/JAAM_${{ inputs.release-version }}.bin ${{ github.workspace }}/bin_beta/${{ inputs.release-version }}.bin
- name: Leave only 5 recent PROD builds and 10 recent BETA builds
run: |
bash ${{ github.workspace }}/deploy/remove_old_bins.sh ${{ github.workspace }}/bin/ 5
bash ${{ github.workspace }}/deploy/remove_old_bins.sh ${{ github.workspace }}/bin_beta/ 10
- name: Upload flasher to Github Pages
uses: ./.github/workflows/upload-pages
with:
binary_path: ${{ github.workspace }}/JAAM_${{ inputs.release-version }}.bin/JAAM_${{ inputs.release-version }}.bin
lite_binary_path: ${{ github.workspace }}/JAAM_${{ inputs.release-version }}_lite.bin/JAAM_${{ inputs.release-version }}_lite.bin
version: ${{ inputs.release-version }}
- name: Commit changes
id: commit_changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "Release ${{ inputs.release-version }}"
file_pattern: ${{ github.workspace }}/firmware/src/JaamFirmware.cpp ${{ github.workspace }}/bin/ ${{ github.workspace }}/bin_beta/ ${{ github.workspace }}/flasher/
- name: Create Release
uses: ncipollo/release-action@v1
with:
artifacts: "${{ github.workspace }}/JAAM_${{ inputs.release-version }}.bin/JAAM_${{ inputs.release-version }}.bin,${{ github.workspace }}/JAAM_${{ inputs.release-version }}_lite.bin/JAAM_${{ inputs.release-version }}_lite.bin"
name: "${{ inputs.release-version }}: ${{ inputs.release-title }}"
commit: ${{ steps.commit_changes.outputs.commit_hash }}
tag: ${{ inputs.release-version }}
generateReleaseNotes: true
allowUpdates: true
makeLatest: true
- name: Merge master -> develop
uses: devmasx/merge-branch@master
with:
type: now
target_branch: develop
head_to_merge: ${{ steps.commit_changes.outputs.commit_hash }}
message: Sync Release ${{ inputs.release-version }} to develop
github_token: ${{ secrets.GITHUB_TOKEN }}