name: Build on: push: paths: - ".github/workflows/build.yml" - "app/**" pull_request: paths: - ".github/workflows/build.yml" - "app/**" jobs: build: runs-on: ubuntu-latest strategy: matrix: board: - bluemicro840_v1 - nice_nano - nrfmicro_13 - proton_c shield: - boardsource3x4 - corne_left - corne_right - cradio_left - cradio_right - crbn - iris_left - iris_right - jian_left - jian_right - jorne_left - jorne_right - kyria_left - kyria_right - lily58_left - lily58_right - microdox_left - microdox_right - nibble - qaz - quefrency_left - quefrency_right - reviung41 - romac - romac_plus - settings_reset - sofle_left - sofle_right - splitreus62_left - splitreus62_right - tg4x include: - board: dz60rgb_rev1 - board: nrf52840_m2 shield: m60 - board: planck_rev6 - 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 uses: actions/cache@v2 env: cache-name: cache-zephyr-modules with: path: | modules/ tools/ zephyr/ bootloader/ key: 3-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }} restore-keys: | 3-${{ runner.os }}-build-${{ env.cache-name }}- 3-${{ runner.os }}-build- 3-${{ runner.os }}- timeout-minutes: 2 continue-on-error: true - 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: Prepare variables id: variables run: | SHIELD_ARG= ARTIFACT_NAME="${{ matrix.board }}" if [ -n "${{ matrix.shield }}" ]; then SHIELD_ARG="-DSHIELD=${{ matrix.shield }}" ARTIFACT_NAME="${ARTIFACT_NAME}-${{ matrix.shield }}" fi ARTIFACT_NAME="${ARTIFACT_NAME}-zmk" echo ::set-output name=shield-arg::${SHIELD_ARG} echo ::set-output name=artifact-name::${ARTIFACT_NAME} - name: West build uses: "docker://zmkfirmware/zephyr-west-action-arm:latest" id: west-build with: args: 'build "-s app -b ${{ matrix.board }} -- ${{ steps.variables.outputs.shield-arg }}' - name: Archive build uses: actions/upload-artifact@v2 with: name: "${{ steps.variables.outputs.artifact-name }}-uf2" path: | build/zephyr/zmk.hex build/zephyr/zmk.uf2