name: Build on: push: paths: - ".github/workflows/build.yml" - "app/**" pull_request: paths: - ".github/workflows/build.yml" - "app/**" jobs: build: runs-on: ubuntu-latest container: image: zmkfirmware/zmk-build-arm:2.3 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 run: west init -l app - name: West update run: west update - name: West config Zephyr base run: west config --global zephyr.base-prefer configfile - name: West Zephyr export run: west 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 run: west 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 }}" path: | build/zephyr/zmk.hex build/zephyr/zmk.uf2