on: [push, pull_request] name: Build jobs: build: runs-on: ubuntu-latest name: Build Test strategy: matrix: board: [proton_c, nice_nano, bluemicro840_v1, nrfmicro_13] shield: - boardsource3x4 - corne_left - corne_right - kyria_left - kyria_right - lily58_left - lily58_right - iris_left - iris_right - romac - romac_plus - settings_reset - quefrency_left - quefrency_right include: - board: proton_c shield: clueboard_california steps: # To use this repository's private action, # you must check out the repository - name: Checkout uses: actions/checkout@v2 - name: Cache west modules timeout-minutes: 2 continue-on-error: true uses: actions/cache@v2 env: cache-name: cache-zephyr-modules with: path: | modules/ tools/ zephyr/ bootloader/ key: 2-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }} restore-keys: | 2-${{ runner.os }}-build-${{ env.cache-name }}- 2-${{ runner.os }}-build- 2-${{ runner.os }}- - name: West Init uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" id: west-init with: args: 'init "-l app"' - name: West Update uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" id: west-update with: args: "update" - name: West Config Zephyr Base uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" id: west-config with: args: 'config "--global zephyr.base-prefer configfile"' - name: West Zephyr Export uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" id: west-zephyr-export with: args: "zephyr-export" - name: West Build uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" id: west-build with: args: 'build "-s app -b ${{ matrix.board }} -- -DSHIELD=${{ matrix.shield }}"' - name: Archive Build uses: actions/upload-artifact@v2 if: ${{ matrix.board != 'proton_c' }} with: name: "${{ matrix.board }}-${{ matrix.shield }}-zmk-uf2" path: build/zephyr/zmk.uf2