Skip to content

Commit 6d9b649

Browse files
committed
Add CI build
Signed-off-by: Karel Blavka <[email protected]>
1 parent 7ecaf6c commit 6d9b649

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed

.github/workflows/build.yaml

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
name: Dispatch Listener
2+
3+
on:
4+
push:
5+
paths-ignore:
6+
- '**/README.md'
7+
- '.*'
8+
branches-ignore:
9+
- 'gh-pages'
10+
workflow_dispatch:
11+
12+
jobs:
13+
# ------------------------
14+
prepare:
15+
runs-on: ubuntu-latest
16+
container:
17+
image: hardwario/nrf-connect-sdk-build:v2.5.0-2
18+
outputs:
19+
short_sha: ${{ steps.short-sha.outputs.short-sha }}
20+
samples: ${{ steps.generate-matrix.outputs.samples }}
21+
applications: ${{ steps.generate-matrix.outputs.applications }}
22+
steps:
23+
- name: checkout
24+
uses: actions/checkout@v4
25+
with:
26+
path: 'chester-sdk/chester'
27+
- name: cache
28+
id: cache-chester-sdk
29+
uses: actions/cache@v4
30+
env:
31+
cache-name: cache-chester-sdk
32+
with:
33+
key: chester-sdk-${{ hashFiles('chester-sdk/chester/west.yml') }}
34+
restore-keys: chester-sdk-${{ hashFiles('chester-sdk/chester/west.yml') }}
35+
path: |
36+
chester-sdk/.west
37+
chester-sdk/bootloader
38+
chester-sdk/doxygen-awesome-css
39+
chester-sdk/modules
40+
chester-sdk/nrf
41+
chester-sdk/nrfxlib
42+
chester-sdk/test
43+
chester-sdk/tools
44+
chester-sdk/zephyr
45+
- name: west init and update
46+
if: steps.cache-chester-sdk.outputs.cache-hit != 'true'
47+
run: |
48+
cd chester-sdk
49+
west init -l --mf west.yml chester
50+
west update --narrow
51+
west config build.board chester_nrf52840
52+
- name: short_sha
53+
id: short-sha
54+
run: |
55+
SHORT_SHA=$(git -C chester-sdk/chester rev-parse --short HEAD)
56+
echo short-sha=${SHORT_SHA} >> $GITHUB_OUTPUT
57+
- name: Generate Matrix
58+
id: generate-matrix
59+
run: |
60+
SAMPLES=$(ls chester-sdk/chester/samples | jq -R -s -c 'split("\n")[:-1]')
61+
echo samples=${SAMPLES} >> $GITHUB_OUTPUT
62+
APPLICATIONS=$(ls chester-sdk/chester/applications | jq -R -s -c 'split("\n")[:-1]')
63+
echo applications=${APPLICATIONS} >> $GITHUB_OUTPUT
64+
65+
# ------------------------
66+
build-sample:
67+
runs-on: ubuntu-latest
68+
container:
69+
image: hardwario/nrf-connect-sdk-build:v2.5.0-2
70+
needs:
71+
- prepare
72+
continue-on-error: true
73+
strategy:
74+
matrix:
75+
sample: ${{ fromJSON(needs.prepare.outputs.samples) }}
76+
steps:
77+
- name: checkout
78+
uses: actions/checkout@v4
79+
with:
80+
path: 'chester-sdk/chester'
81+
- name: restore cache with chester-sdk
82+
id: cache-chester-sdk
83+
uses: actions/cache/restore@v4
84+
env:
85+
cache-name: cache-chester-sdk
86+
with:
87+
fail-on-cache-miss: true
88+
key: chester-sdk-${{ hashFiles('chester-sdk/chester/west.yml') }}
89+
path: |
90+
chester-sdk/.west
91+
chester-sdk/bootloader
92+
chester-sdk/doxygen-awesome-css
93+
chester-sdk/modules
94+
chester-sdk/nrf
95+
chester-sdk/nrfxlib
96+
chester-sdk/test
97+
chester-sdk/tools
98+
chester-sdk/zephyr
99+
- name: build
100+
run: |
101+
cd chester-sdk/chester/samples/${{ matrix.sample }}
102+
west build
103+
# ------------------------
104+
build-application:
105+
runs-on: ubuntu-latest
106+
container:
107+
image: hardwario/nrf-connect-sdk-build:v2.5.0-2
108+
needs:
109+
- prepare
110+
continue-on-error: true
111+
strategy:
112+
matrix:
113+
application: ${{ fromJSON(needs.prepare.outputs.applications) }}
114+
exclude:
115+
- application: _legacy
116+
steps:
117+
- name: checkout
118+
uses: actions/checkout@v4
119+
with:
120+
path: 'chester-sdk/chester'
121+
- name: restore cache with chester-sdk
122+
id: cache-chester-sdk
123+
uses: actions/cache/restore@v4
124+
env:
125+
cache-name: cache-chester-sdk
126+
with:
127+
fail-on-cache-miss: true
128+
key: chester-sdk-${{ hashFiles('chester-sdk/chester/west.yml') }}
129+
path: |
130+
chester-sdk/.west
131+
chester-sdk/bootloader
132+
chester-sdk/doxygen-awesome-css
133+
chester-sdk/modules
134+
chester-sdk/nrf
135+
chester-sdk/nrfxlib
136+
chester-sdk/test
137+
chester-sdk/tools
138+
chester-sdk/zephyr
139+
- name: build
140+
run: |
141+
cd chester-sdk/chester/applications/${{ matrix.application }}
142+
west build
143+
# ------------------------
144+
# debug-echo:
145+
# runs-on: ubuntu-latest
146+
# needs:
147+
# - prepare
148+
# steps:
149+
# - name: Echo previous outputs
150+
# run: echo "${{ toJSON(needs.prepare.outputs) }}"

0 commit comments

Comments
 (0)