Skip to content

Commit 3016ee8

Browse files
committed
add workflow
Signed-off-by: Karel Blavka <[email protected]>
1 parent 7ecaf6c commit 3016ee8

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed

.github/workflows/build.yaml

+153
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
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-1
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
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 ::set-output name=short-sha::${SHORT_SHA}
58+
- name: Generate Matrix
59+
id: generate-matrix
60+
run: |
61+
apt update
62+
apt install -y jq
63+
SAMPLES=$(ls chester-sdk/chester/samples | jq -R -s -c 'split("\n")[:-1]')
64+
echo ::set-output name=samples::${SAMPLES}
65+
APPLICATIONS=$(ls chester-sdk/chester/applications | jq -R -s -c 'split("\n")[:-1]')
66+
echo ::set-output name=applications::${APPLICATIONS}
67+
# ------------------------
68+
build-sample:
69+
runs-on: ubuntu-latest
70+
container:
71+
image: hardwario/nrf-connect-sdk-build:v2.5.0-1
72+
needs:
73+
- prepare
74+
continue-on-error: true
75+
strategy:
76+
max-parallel: 10
77+
matrix:
78+
sample: ${{ fromJSON(needs.prepare.outputs.samples) }}
79+
steps:
80+
- name: checkout
81+
uses: actions/checkout@v4
82+
with:
83+
path: 'chester-sdk/chester'
84+
- name: restore cache with chester-sdk
85+
id: cache-chester-sdk
86+
uses: actions/cache/restore@v4
87+
env:
88+
cache-name: cache-chester-sdk
89+
with:
90+
fail-on-cache-miss: true
91+
key: chester-sdk-${{ hashFiles('chester-sdk/chester/west.yml') }}
92+
path: |
93+
chester-sdk/.west
94+
chester-sdk/bootloader
95+
chester-sdk/doxygen-awesome-css
96+
chester-sdk/modules
97+
chester-sdk/nrf
98+
chester-sdk/nrfxlib
99+
chester-sdk/test
100+
chester-sdk/tools
101+
chester-sdk/zephyr
102+
- name: build
103+
run: |
104+
cd chester-sdk/chester/samples/${{ matrix.sample }}
105+
west build
106+
# ------------------------
107+
build-application:
108+
runs-on: ubuntu-latest
109+
container:
110+
image: hardwario/nrf-connect-sdk-build:v2.5.0-1
111+
needs:
112+
- prepare
113+
continue-on-error: true
114+
strategy:
115+
matrix:
116+
application: ${{ fromJSON(needs.prepare.outputs.applications) }}
117+
exclude:
118+
- application: _legacy
119+
steps:
120+
- name: checkout
121+
uses: actions/checkout@v4
122+
with:
123+
path: 'chester-sdk/chester'
124+
- name: restore cache with chester-sdk
125+
id: cache-chester-sdk
126+
uses: actions/cache/restore@v4
127+
env:
128+
cache-name: cache-chester-sdk
129+
with:
130+
fail-on-cache-miss: true
131+
key: chester-sdk-${{ hashFiles('chester-sdk/chester/west.yml') }}
132+
path: |
133+
chester-sdk/.west
134+
chester-sdk/bootloader
135+
chester-sdk/doxygen-awesome-css
136+
chester-sdk/modules
137+
chester-sdk/nrf
138+
chester-sdk/nrfxlib
139+
chester-sdk/test
140+
chester-sdk/tools
141+
chester-sdk/zephyr
142+
- name: build
143+
run: |
144+
cd chester-sdk/chester/applications/${{ matrix.application }}
145+
west build
146+
# ------------------------
147+
# debug-echo:
148+
# runs-on: ubuntu-latest
149+
# needs:
150+
# - prepare
151+
# steps:
152+
# - name: Echo previous outputs
153+
# run: echo "${{ toJSON(needs.prepare.outputs) }}"

0 commit comments

Comments
 (0)