5cc7c280a5
* Some runtimes (e.g. podman), require explicit registries in image URLs or will prompt for the user to select one, which breaks things like VSCode remote container rebuilds.
133 lines
3.6 KiB
YAML
133 lines
3.6 KiB
YAML
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: docker.io/zmkfirmware/zmk-build-arm:2.5
|
|
strategy:
|
|
matrix:
|
|
board:
|
|
- bluemicro840_v1
|
|
- nice_nano
|
|
- nice_nano_v2
|
|
- nrfmicro_13
|
|
- proton_c
|
|
shield:
|
|
- bfo9000_left
|
|
- bfo9000_right
|
|
- boardsource3x4
|
|
- corne_left
|
|
- corne_right
|
|
- cradio_left
|
|
- cradio_right
|
|
- crbn
|
|
- eek
|
|
- helix_left
|
|
- helix_right
|
|
- 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
|
|
- tidbit
|
|
cmake-args: [""]
|
|
include:
|
|
- board: bdn9_rev2
|
|
- board: dz60rgb_rev1
|
|
- board: nrf52840_m2
|
|
shield: m60
|
|
- board: planck_rev6
|
|
- board: proton_c
|
|
shield: clueboard_california
|
|
- board: nice_nano_v2
|
|
shield: kyria_left
|
|
cmake-args: -DCONFIG_ZMK_DISPLAY=y
|
|
skip-archive: true
|
|
- board: nice_nano_v2
|
|
shield: kyria_right
|
|
cmake-args: -DCONFIG_ZMK_DISPLAY=y
|
|
skip-archive: true
|
|
steps:
|
|
- 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: 4-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('app/west.yml') }}
|
|
restore-keys: |
|
|
4-${{ runner.os }}-build-${{ env.cache-name }}-
|
|
4-${{ runner.os }}-build-
|
|
4-${{ runner.os }}-
|
|
timeout-minutes: 2
|
|
continue-on-error: true
|
|
- name: Initialize workspace (west init)
|
|
run: west init -l app
|
|
- name: Update modules (west update)
|
|
run: west update
|
|
- name: Export Zephyr CMake package (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: Build (west build)
|
|
run: west build -s app -b ${{ matrix.board }} -- ${{ steps.variables.outputs.shield-arg }} ${{ matrix.cmake-args }}
|
|
- name: Archive artifacts
|
|
if: ${{ !matrix.skip-archive }}
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: "${{ steps.variables.outputs.artifact-name }}"
|
|
path: |
|
|
build/zephyr/zmk.hex
|
|
build/zephyr/zmk.uf2
|
|
continue-on-error: true
|