# https://github.com/raspberrypi/pico-examples/blob/master/.github/workflows/cmake.yml name: Firmware # build for each push and pull request on: [push, pull_request] env: BUILD_TYPE: Release jobs: build: runs-on: ubuntu-latest permissions: contents: write steps: - name: Install dependencies run: sudo apt-get install -y cxxtest build-essential gcc-arm-none-eabi mtools zip - name: Checkout repo uses: actions/checkout@v4 with: path: repo fetch-depth: 0 - name: Checkout repo submodules working-directory: ${{github.workspace}}/repo run: git submodule update --init - name: Checkout pico-sdk submodules working-directory: ${{github.workspace}}/repo/pico-sdk run: git submodule update --init - name: Create Build Environment working-directory: ${{github.workspace}}/repo run: cmake -E make_directory ${{github.workspace}}/repo/build - name: Configure CMake shell: bash working-directory: ${{github.workspace}}/repo/build run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE - name: Get core count id: core_count run : cat /proc/cpuinfo | grep processor | wc -l - name: Build working-directory: ${{github.workspace}}/repo/build shell: bash run: cmake --build . --config $BUILD_TYPE --parallel $(nproc) - name: Upload a Build Artifact uses: actions/upload-artifact@v4.0.0 with: name: firmware.uf2 path: ${{github.workspace}}/repo/build/drumkit.uf2 if-no-files-found: error - name: Upload a Build Artifact uses: actions/upload-artifact@v4.0.0 with: name: update.elf path: ${{github.workspace}}/repo/build/drumkit.elf if-no-files-found: error - name: Archive release files if: startsWith(github.ref, 'refs/tags/') run: | cd ${{github.workspace}}/repo/build zip -r firmware drumkit.uf2 drumkit.elf - name: Upload release files if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: files: ${{github.workspace}}/repo/build/firmware.zip