summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
blob: fd52d7c8729949443a534f3a41ffbf7036b8f8a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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