name: Badgemagic Firmware build on: push: pull_request: branches: [master] env: MRS_TOOLCHAIN: MRS_Toolchain_Linux_x64_V1.91 USBC_BUILD_DIR: usb-c MICROB_BUILD_DIR: micro-b BIN_TYPES: '{.bin,.elf}' jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Cache toolchain id: cache-toolchain uses: actions/cache@v4 with: path: ${{ env.MRS_TOOLCHAIN }} key: ${{ env.MRS_TOOLCHAIN }}-cache - if: ${{ steps.cache-toolchain.outputs.cache-hit != 'true' }} name: Download toolchain run: | wget http://file-oss.mounriver.com/tools/${{ env.MRS_TOOLCHAIN }}.tar.xz tar -xvf ${{ env.MRS_TOOLCHAIN }}.tar.xz - name: Build firmware run: | export PREFIX=${{ env.MRS_TOOLCHAIN }}/RISC-V_Embedded_GCC/bin/riscv-none-embed- BUILD_DIR=${{ env.USBC_BUILD_DIR }} USBC_VERSION=1 make -j$(nproc) BUILD_DIR=${{ env.MICROB_BUILD_DIR }} make -j$(nproc) - uses: actions/upload-artifact@v4 with: name: badgemagic-firmware path: | ${{ env.USBC_BUILD_DIR }}/badgemagic-* ${{ env.MICROB_BUILD_DIR }}/badgemagic-* # Skip upload APK for pull requests & only allow binaries build from master - if: ${{ github.event_name != 'pull_request' && github.ref_name == 'master' }} name: Upload firmware binaries to bin branch run: | git config --global user.name "${{ github.workflow }}" git config --global user.email "gh-actions@${{ github.repository_owner }}" git checkout --orphan bin git reset git add ${{ env.USBC_BUILD_DIR }}/badgemagic-*${{ env.BIN_TYPES }} git add ${{ env.MICROB_BUILD_DIR }}/badgemagic-*${{ env.BIN_TYPES }} git commit -am "[Auto] Update firmware binaries from ${{ github.ref_name }} ($(date +%Y-%m-%d.%H:%M:%S))" git push --force origin bin