@@ -2,8 +2,8 @@ name: Runtime Tests
2
2
3
3
on :
4
4
workflow_dispatch :
5
- pull_request_target :
6
- types : [opened, reopened, closed, synchronize, labeled, unlabeled]
5
+ pull_request :
6
+ types : [opened, reopened, synchronize, labeled, unlabeled]
7
7
paths :
8
8
- ' tests/**'
9
9
- ' cores/**'
@@ -19,14 +19,19 @@ concurrency:
19
19
group : tests-${{ github.event.pull_request.number || github.ref }}
20
20
cancel-in-progress : true
21
21
22
- # To avoid giving elevated permissions to the entire workflow, specify default permissions at the top level
23
- # and then override them for specific jobs.
24
- permissions : { contents: read }
25
-
26
22
jobs :
23
+ push-event-file :
24
+ name : Push event file
25
+ runs-on : ubuntu-latest
26
+ steps :
27
+ - name : Upload
28
+ uses : actions/upload-artifact@v4
29
+ with :
30
+ name : event_file
31
+ path : ${{ github.event_path }}
32
+
27
33
gen-matrix :
28
34
name : Generate matrix
29
- if : github.event.action != 'closed'
30
35
runs-on : ubuntu-latest
31
36
outputs :
32
37
build-types : ${{ steps.set-matrix.outputs.build-types }}
59
64
60
65
call-build-tests :
61
66
name : Build
62
- uses : espressif/arduino-esp32/ .github/workflows/build_tests.yml@master
67
+ uses : ./ .github/workflows/build_tests.yml
63
68
needs : gen-matrix
64
- if : github.event.action != 'closed'
65
69
strategy :
66
70
matrix :
67
71
type : ${{ fromJson(needs.gen-matrix.outputs.build-types) }}
@@ -72,11 +76,11 @@ jobs:
72
76
73
77
call-hardware-tests :
74
78
name : Hardware
75
- uses : espressif/arduino-esp32/ .github/workflows/hw.yml@master
79
+ uses : ./ .github/workflows/hw.yml
76
80
needs : [gen-matrix, call-build-tests]
77
81
if : |
78
82
github.repository == 'espressif/arduino-esp32' &&
79
- (github.event_name != 'pull_request_target ' ||
83
+ (github.event_name != 'pull_request ' ||
80
84
contains(github.event.pull_request.labels.*.name, 'hil_test'))
81
85
strategy :
82
86
fail-fast : false
@@ -87,26 +91,12 @@ jobs:
87
91
type : ${{ matrix.type }}
88
92
chip : ${{ matrix.chip }}
89
93
90
- call-wokwi-tests :
91
- name : Wokwi
92
- uses : espressif/arduino-esp32/.github/workflows/wokwi.yml@master
93
- needs : [gen-matrix, call-build-tests]
94
- if : github.event.action != 'closed'
95
- strategy :
96
- fail-fast : false
97
- matrix :
98
- type : ${{ fromJson(needs.gen-matrix.outputs.wokwi-types) }}
99
- chip : ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp32c6', 'esp32h2']
100
- secrets :
101
- WOKWI_CLI_TOKEN : ${{ secrets.WOKWI_CLI_TOKEN }}
102
- with :
103
- type : ${{ matrix.type }}
104
- chip : ${{ matrix.chip }}
94
+ # Wokwi tests are run after this workflow as it needs access to secrets
105
95
106
96
# This job is disabled for now
107
97
call-qemu-tests :
108
98
name : QEMU
109
- uses : espressif/arduino-esp32/ .github/workflows/qemu.yml@master
99
+ uses : ./ .github/workflows/qemu.yml
110
100
needs : [gen-matrix, call-build-tests]
111
101
if : false
112
102
strategy :
@@ -118,78 +108,39 @@ jobs:
118
108
type : ${{ matrix.type }}
119
109
chip : ${{ matrix.chip }}
120
110
121
- unit-test-results :
122
- name : Unit Test Results
123
- needs : [call-hardware-tests, call-wokwi-tests, call-qemu-tests]
124
- if : always() && github.event_name == 'pull_request_target'
125
- runs-on : ubuntu-latest
126
- permissions :
127
- checks : write
128
- pull-requests : write
129
- steps :
130
- - name : Download and Extract HW Artifacts
131
- uses : actions/download-artifact@v4
132
- continue-on-error : true
133
- with :
134
- merge-multiple : true
135
- pattern : tests-results-hw-*
136
- path : ./results/hw
137
-
138
- - name : Download and Extract Wokwi Artifacts
139
- uses : actions/download-artifact@v4
140
- continue-on-error : true
141
- with :
142
- merge-multiple : true
143
- pattern : tests-results-wokwi-*
144
- path : ./results/wokwi
145
-
146
- - name : Download and Extract QEMU Artifacts
147
- uses : actions/download-artifact@v4
148
- continue-on-error : true
149
- with :
150
- merge-multiple : true
151
- pattern : tests-results-qemu-*
152
- path : ./results/qemu
153
-
154
- - name : Publish Unit Test Results
155
- uses : EnricoMi/publish-unit-test-result-action@v2
156
- with :
157
- commit : ${{ github.event.pull_request.head.sha || github.sha }}
158
- files : ./results/**/*.xml
159
- clean :
160
- name : Clean objects
161
- needs : unit-test-results
162
- if : always()
163
- permissions :
164
- actions : write
165
- runs-on : ubuntu-latest
166
- steps :
167
- - name : Clean up caches
168
- uses : actions/github-script@v7
169
- with :
170
- script : |
171
- const ref = '${{ github.event.pull_request.number || github.ref }}';
172
- const key_prefix = 'tests-' + ref + '-';
173
-
174
- if ('${{ github.event_name }}' == 'pull_request_target' && '${{ github.event.action }}' != 'closed') {
175
- console.log('Skipping cache cleanup for open PR');
176
- return;
177
- }
178
-
179
- await github.paginate(github.rest.actions.getActionsCacheList, {
180
- owner: context.repo.owner,
181
- repo: context.repo.repo,
182
- per_page: 100,
183
- key: key_prefix
184
- }).then(caches => {
185
- if (caches) {
186
- for (const cache of caches) {
187
- console.log(`Deleting cache: ${cache.key}`);
188
- github.rest.actions.deleteActionsCacheById({
189
- owner: context.repo.owner,
190
- repo: context.repo.repo,
191
- cache_id: cache.id
192
- });
193
- }
194
- }
195
- });
111
+ # clean:
112
+ # name: Clean objects
113
+ # if: always()
114
+ # permissions:
115
+ # actions: write
116
+ # runs-on: ubuntu-latest
117
+ # steps:
118
+ # - name: Clean up caches
119
+ # uses: actions/github-script@v7
120
+ # with:
121
+ # script: |
122
+ # const ref = '${{ github.event.pull_request.number || github.ref }}';
123
+ # const key_prefix = 'tests-' + ref + '-';
124
+
125
+ # if ('${{ github.event_name }}' == 'pull_request_target' && '${{ github.event.action }}' != 'closed') {
126
+ # console.log('Skipping cache cleanup for open PR');
127
+ # return;
128
+ # }
129
+
130
+ # await github.paginate(github.rest.actions.getActionsCacheList, {
131
+ # owner: context.repo.owner,
132
+ # repo: context.repo.repo,
133
+ # per_page: 100,
134
+ # key: key_prefix
135
+ # }).then(caches => {
136
+ # if (caches) {
137
+ # for (const cache of caches) {
138
+ # console.log(`Deleting cache: ${cache.key}`);
139
+ # github.rest.actions.deleteActionsCacheById({
140
+ # owner: context.repo.owner,
141
+ # repo: context.repo.repo,
142
+ # cache_id: cache.id
143
+ # });
144
+ # }
145
+ # }
146
+ # });
0 commit comments