name: Userspace Build on: push: paths-ignore: - '**.md' - '**.py' workflow_dispatch: jobs: build: name: build runs-on: ubuntu-latest container: qmkfm/qmk_cli strategy: fail-fast: false matrix: keyboard: [cradio, sweep] split: [left, right] steps: - name: Checkout QMK uses: actions/checkout@main with: repository: qmk/qmk_firmware ref: develop submodules: true - name: Checkout userspace uses: actions/checkout@main with: path: users/${{ github.actor }} persist-credentials: false - name: Setup safe directory run: git config --global --add safe.directory '*' - name: Compile working-directory: users/${{ github.actor }}/keymaps/ run: qmk compile -j $(nproc) ${{ matrix.keyboard }}.json -e SPLIT=${{ matrix.split }} - name: Calculate firmware size run: avr-size $(ls .build/*.tmp) | sed 's/\.build\/\(.*\)\.tmp/\1/' - name: Calculate memory usage working-directory: .build/ run: arm-none-eabi-size -A *.elf | sed 's/\(.*\)\.elf/\1/' - name: Archive firmware uses: actions/upload-artifact@main with: retention-days: 1 name: ${{ matrix.keyboard }}_${{ matrix.split }} path: | *.hex *.bin *.uf2 release: needs: build uses: filterpaper/scripts/.github/workflows/publish-artifact.yml@main with: release_name: Firmware release_tag: latest purge: uses: filterpaper/scripts/.github/workflows/purge-workflow.yml@main with: purge-age: 5 delete-all-completed: false delete-all-incomplete: false