Skip to content

Commit e50391c

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

File tree

1 file changed

+151
-0
lines changed

1 file changed

+151
-0
lines changed

.github/workflows/build.yaml

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

0 commit comments

Comments
 (0)