23
23
container : espressif/idf:${{ matrix.idf_ver }}
24
24
steps :
25
25
- name : Checkout esp-protocols
26
- uses : actions/checkout@v3
26
+ uses : actions/checkout@master
27
27
with :
28
28
path : esp-protocols
29
29
- name : Build ${{ matrix.example }} with IDF-${{ matrix.idf_ver }} for ${{ matrix.idf_target }}
39
39
strategy :
40
40
matrix :
41
41
idf_ver : ["latest"]
42
- idf_target : ["esp32", "esp32s2", "esp32c3"]
42
+ idf_target : ["esp32", "esp32s2", "esp32c3"]
43
+ config : ["eth_custom_netif", "eth_def", "eth_no_ipv6", "eth_socket"]
43
44
44
45
runs-on : ubuntu-20.04
45
46
container : espressif/idf:${{ matrix.idf_ver }}
@@ -48,36 +49,41 @@ jobs:
48
49
uses : actions/checkout@v3
49
50
with :
50
51
submodules : recursive
51
- path : esp-protocols
52
- - name : Build ${{ matrix.example }} with IDF-${{ matrix.idf_ver }} for ${{ matrix.idf_target }}
52
+ - name : Build ${{ matrix.example }} with IDF-${{ matrix.idf_ver }} for ${{ matrix.idf_target }} for ${{ matrix.config }}
53
53
env :
54
54
IDF_TARGET : ${{ matrix.idf_target }}
55
55
shell : bash
56
+ working-directory : components/mdns/examples/
56
57
run : |
57
58
. ${IDF_PATH}/export.sh
58
- cd $GITHUB_WORKSPACE/esp-protocols/components/mdns/examples/
59
- idf.py set-target ${{ matrix.idf_target }}
60
- echo "Building for default configuration"
61
- idf.py build
62
- rm sdkconfig
63
- echo "Building for sdkconfig.ci.eth_def"
64
- cat sdkconfig.ci.eth_def >> sdkconfig.defaults
65
- idf.py build
66
- rm sdkconfig sdkconfig.defaults
67
- echo "Building for sdkconfig.ci.eth_custom_netif"
68
- cat sdkconfig.ci.eth_custom_netif >> sdkconfig.defaults
69
- idf.py build
70
- rm sdkconfig sdkconfig.defaults
71
- echo "Building for sdkconfig.ci.eth_socket"
72
- cat sdkconfig.ci.eth_socket >> sdkconfig.defaults
73
- idf.py build
74
- rm sdkconfig sdkconfig.defaults
75
- echo "Building for sdkconfig.ci.eth_no_ipv6"
76
- cat sdkconfig.ci.eth_no_ipv6 >> sdkconfig.defaults
77
- idf.py build
78
- cd $GITHUB_WORKSPACE/esp-protocols/components/mdns/tests/test_apps/
59
+ rm -rf sdkconfig sdkconfig.defaults build build_${{ matrix.config }}
60
+ cat sdkconfig.ci.${{ matrix.config }} >> sdkconfig.defaults
79
61
idf.py set-target ${{ matrix.idf_target }}
80
62
idf.py build
63
+ mv build build_${{ matrix.config }}
64
+ - name : Merge binaries with IDF-${{ matrix.idf_ver }} for ${{ matrix.config }}
65
+ working-directory : components/mdns/examples
66
+ env :
67
+ IDF_TARGET : ${{ matrix.idf_target }}
68
+ shell : bash
69
+ run : |
70
+ . ${IDF_PATH}/export.sh
71
+ cd build_${{ matrix.config }}
72
+ esptool.py --chip ${{ matrix.idf_target }} merge_bin --fill-flash-size 4MB -o flash_image.bin @flash_args
73
+ cd ../
74
+ cat build_${{ matrix.config }}/config/sdkconfig.json
75
+ - uses : actions/upload-artifact@v2
76
+ with :
77
+ name : examples_app_bin_${{ matrix.idf_target }}_${{ matrix.idf_ver }}_${{ matrix.config }}
78
+ path : |
79
+ components/mdns/examples/build_${{ matrix.config }}/bootloader/bootloader.bin
80
+ components/mdns/examples/build_${{ matrix.config }}/partition_table/partition-table.bin
81
+ components/mdns/examples/build_${{ matrix.config }}/*.bin
82
+ components/mdns/examples/build_${{ matrix.config }}/*.elf
83
+ components/mdns/examples/build_${{ matrix.config }}/flasher_args.json
84
+ components/mdns/examples/build_${{ matrix.config }}/config/sdkconfig.h
85
+ components/mdns/examples/build_${{ matrix.config }}/config/sdkconfig.json
86
+ if-no-files-found : error
81
87
82
88
build_asio :
83
89
strategy :
@@ -109,7 +115,6 @@ jobs:
109
115
matrix :
110
116
idf_ver : ["latest"]
111
117
idf_target : ["esp32"]
112
-
113
118
runs-on : ubuntu-20.04
114
119
container : espressif/idf:${{ matrix.idf_ver }}
115
120
steps :
@@ -137,7 +142,14 @@ jobs:
137
142
- uses : actions/upload-artifact@v2
138
143
with :
139
144
name : examples_app_bin_${{ matrix.idf_target }}_${{ matrix.idf_ver }}
140
- path : components/esp_websocket_client/examples/build/
145
+ path : |
146
+ components/esp_websocket_client/examples/build/bootloader/bootloader.bin
147
+ components/esp_websocket_client/examples/build/partition_table/partition-table.bin
148
+ components/esp_websocket_client/examples/build/*.bin
149
+ components/esp_websocket_client/examples/build/*.elf
150
+ components/esp_websocket_client/examples/build/flasher_args.json
151
+ components/esp_websocket_client/examples/build/config/sdkconfig.h
152
+ components/esp_websocket_client/examples/build/config/sdkconfig.json
141
153
if-no-files-found : error
142
154
143
155
run-target :
@@ -151,6 +163,8 @@ jobs:
151
163
runs-on :
152
164
- self-hosted
153
165
- ESP32-ETHERNET-KIT
166
+ # Skip running on forks since it won't have access to secrets
167
+ if : github.repository == 'espressif/esp-protocols'
154
168
container :
155
169
image : python:3.7-buster
156
170
options : --privileged # Privileged mode has access to serial ports
@@ -161,6 +175,8 @@ jobs:
161
175
name : examples_app_bin_${{ matrix.idf_target }}_${{ matrix.idf_ver }}
162
176
path : components/esp_websocket_client/examples/build/
163
177
- name : Install Python packages
178
+ env :
179
+ PIP_EXTRA_INDEX_URL : " https://www.piwheels.org/simple"
164
180
run : |
165
181
pip install --only-binary cryptography --extra-index-url https://dl.espressif.com/pypi/ -r $GITHUB_WORKSPACE/components/esp_websocket_client/examples/requirements.txt
166
182
- name : Download Example Test to target
@@ -169,9 +185,52 @@ jobs:
169
185
working-directory : components/esp_websocket_client/examples
170
186
run : |
171
187
cp sdkconfig.ci sdkconfig.defaults
172
- pytest --log-cli-level DEBUG --junit-xml=./test_app_results_ ${{ matrix.idf_target }}_${{ matrix.idf_ver }}.xml --target=${{ matrix.idf_target }}
188
+ pytest --log-cli-level DEBUG --junit-xml=./examples_results_ ${{ matrix.idf_target }}_${{ matrix.idf_ver }}.xml --target=${{ matrix.idf_target }}
173
189
- uses : actions/upload-artifact@v2
174
190
if : always()
175
191
with :
176
192
name : examples_results_${{ matrix.idf_target }}_${{ matrix.idf_ver }}
177
- path : examples/*.xml
193
+ path : components/esp_websocket_client/examples/*.xml
194
+
195
+ run-target-mdns :
196
+ strategy :
197
+ matrix :
198
+ idf_ver : ["latest"]
199
+ idf_target : ["esp32"]
200
+ config : ["eth_custom_netif", "eth_def", "eth_no_ipv6", "eth_socket"]
201
+ name : Run mDNS Example Test on target
202
+ needs : build_mdns
203
+ runs-on :
204
+ - self-hosted
205
+ - ESP32-ETHERNET-KIT
206
+ # Skip running on forks since it won't have access to secrets
207
+ if : github.repository == 'espressif/esp-protocols'
208
+ steps :
209
+ - name : Clear repository
210
+ run : sudo rm -fr $GITHUB_WORKSPACE && mkdir $GITHUB_WORKSPACE
211
+ - uses : actions/checkout@v3
212
+ - uses : actions/download-artifact@v2
213
+ with :
214
+ name : examples_app_bin_${{ matrix.idf_target }}_${{ matrix.idf_ver }}_${{ matrix.config }}
215
+ path : components/mdns/examples/build_${{ matrix.config }}
216
+ - name : Install Python packages
217
+ env :
218
+ PIP_EXTRA_INDEX_URL : " https://www.piwheels.org/simple"
219
+ run : |
220
+ sudo apt-get install -y dnsutils
221
+ - name : Download Example Test to target ${{ matrix.config }}
222
+ run : |
223
+ python -m esptool --chip ${{ matrix.idf_target }} write_flash 0x0 components/mdns/examples/build_${{ matrix.config }}/flash_image.bin
224
+ - name : Run Example Test on target ${{ matrix.config }}
225
+ working-directory : components/mdns/examples
226
+ run : |
227
+ rm -rf build
228
+ mv build_${{ matrix.config }} build
229
+ cat sdkconfig.ci.${{ matrix.config }} >> sdkconfig.defaults
230
+ python -m pytest --log-cli-level DEBUG --junit-xml=./examples_results_${{ matrix.idf_target }}_${{ matrix.idf_ver }}_${{ matrix.config }}.xml --target=${{ matrix.idf_target }}
231
+ rm -rf build sdkconfig.defaults
232
+ - uses : actions/upload-artifact@v2
233
+ if : always()
234
+ with :
235
+ name : examples_results_${{ matrix.idf_target }}_${{ matrix.idf_ver }}_${{ matrix.config }}
236
+ path : components/mdns/examples/*.xml
0 commit comments