15
15
16
16
jobs :
17
17
projects :
18
- name : " ${{ matrix.project.name }} | ${{ matrix.project.mcu }} | ${{ matrix.project.env }} | ${{ matrix.project. id }}"
18
+ name : " ${{ matrix.project.name }} | ${{ matrix.project.mcu }} | ${{ matrix.project.id }}"
19
19
runs-on : ubuntu-latest
20
20
strategy :
21
21
fail-fast : false
@@ -24,160 +24,106 @@ jobs:
24
24
# Templates
25
25
- name : template
26
26
id : " 341952531613614675"
27
- env : nostd
28
- mcu : esp32
29
- - name : template
30
- id : " 338154815612781140"
31
- env : std
32
27
mcu : esp32
28
+ target : " xtensa-esp32-none-elf"
33
29
- name : template
34
30
id : " 341956530834244180"
35
- env : nostd
36
- mcu : esp32c3
37
- - name : template
38
- id : " 338322025101656660"
39
- env : std
40
31
mcu : esp32c3
32
+ target : " riscv32imc-unknown-none-elf"
41
33
# # Rust Board
42
34
- name : template
43
35
id : " 341957109819114067"
44
- env : nostd
45
- mcu : esp32c3
46
- - name : template
47
- id : " 338322111264195156"
48
- env : std
49
36
mcu : esp32c3
37
+ target : " riscv32imc-unknown-none-elf"
50
38
- name : template
51
39
id : " 377857146822034433"
52
- env : nostd
53
- mcu : esp32c6
54
- - name : template
55
- id : " 377833187169638401"
56
- env : std
57
40
mcu : esp32c6
41
+ target : " riscv32imac-unknown-none-elf"
58
42
- name : template
59
43
id : " 379094104004151297"
60
- env : nostd
61
- mcu : esp32h2
62
- - name : template
63
- id : " 379361398729686017"
64
- env : std
65
44
mcu : esp32h2
45
+ target : " riscv32imac-unknown-none-elf"
66
46
- name : template
67
47
id : " 341955277702038100"
68
- env : nostd
69
- mcu : esp32s2
70
- - name : template
71
- id : " 338154940543271506"
72
- env : std
73
48
mcu : esp32s2
49
+ target : " xtensa-esp32s2-none-elf"
74
50
- name : template
75
51
id : " 349566517066596948"
76
- env : nostd
77
- mcu : esp32s3
78
- - name : template
79
- id : " 345144250522927698"
80
- env : std
81
52
mcu : esp32s3
53
+ target : " xtensa-esp32s3-none-elf"
82
54
# Examples
83
55
- name : blinky
84
56
id : " 341952826535051858"
85
- env : nostd
86
- mcu : esp32
87
- - name : blinky
88
- id : " 333363577816613460"
89
- env : std
90
57
mcu : esp32
58
+ target : " xtensa-esp32-none-elf"
91
59
- name : blinky
92
60
id : " 341956526159692371"
93
- env : nostd
94
- mcu : esp32c3
95
- - name : blinky
96
- id : " 332188235906155092"
97
- env : std
98
61
mcu : esp32c3
62
+ target : " riscv32imc-unknown-none-elf"
99
63
- name : blinky
100
64
id : " 378092585951093761"
101
- env : nostd
102
- mcu : esp32c6
103
- - name : blinky
104
- id : " 378092245692314625"
105
- env : std
106
65
mcu : esp32c6
66
+ target : " riscv32imac-unknown-none-elf"
107
67
- name : blinky
108
68
id : " 379361473820314625"
109
- env : nostd
110
- mcu : esp32h2
111
- - name : blinky
112
- id : " 379361684344001537"
113
- env : std
114
69
mcu : esp32h2
70
+ target : " riscv32imac-unknown-none-elf"
115
71
- name : blinky
116
72
id : " 341955297469792851"
117
- env : nostd
118
- mcu : esp32s2
119
- - name : blinky
120
- id : " 333363982163247699"
121
- env : std
122
73
mcu : esp32s2
74
+ target : " xtensa-esp32s2-none-elf"
123
75
- name : blinky
124
76
id : " 349568945405035090"
125
- env : nostd
126
- mcu : esp32s3
127
- - name : blinky
128
- id : " 361808947755817985"
129
- env : std
130
77
mcu : esp32s3
78
+ target : " xtensa-esp32s3-none-elf"
131
79
steps :
132
80
- name : Checkout the repository
133
81
uses : actions/checkout@v4
134
82
135
83
- name : Download project code
136
84
run : |
137
- wget -q -O ${{ matrix.project.mcu }}-${{ matrix.project.env }}_${{ matrix.project.id }}.zip https://wokwi.com/api/projects/${{ matrix.project.id }}/zip
138
- unzip ${{ matrix.project.mcu }}-${{ matrix.project.env }}_${{ matrix.project.id }}.zip -d ${{ matrix.project.mcu }}-${{ matrix.project.env }}_${{ matrix.project.id }}
139
- - name : Create wokwi.toml (nostd)
140
- if : matrix.project.env == 'nostd'
141
- run : echo -e "[wokwi]\nversion = 1\nfirmware = 'rust_project_${{ matrix.project.mcu }}'\nelf = 'rust_project_${{ matrix.project.mcu }}'" > ${{ matrix.project.mcu }}-${{ matrix.project.env }}_${{ matrix.project.id }}/wokwi.toml
142
- - name : Create wokwi.toml (std)
143
- if : matrix.project.env == 'std'
144
- run : echo -e "[wokwi]\nversion = 1\nfirmware = 'rust-project-${{ matrix.project.mcu }}'\nelf = 'rust-project-${{ matrix.project.mcu }}'" > ${{ matrix.project.mcu }}-${{ matrix.project.env }}_${{ matrix.project.id }}/wokwi.toml
85
+ wget -q -O ${{ matrix.project.mcu }}_${{ matrix.project.id }}.zip https://wokwi.com/api/projects/${{ matrix.project.id }}/zip
86
+ unzip ${{ matrix.project.mcu }}_${{ matrix.project.id }}.zip -d ${{ matrix.project.mcu }}_${{ matrix.project.id }}
87
+
88
+ - name : Create wokwi.toml
89
+ run : echo -e "[wokwi]\nversion = 1\nfirmware = 'rust_project_${{ matrix.project.mcu }}'\nelf = 'rust_project_${{ matrix.project.mcu }}'" > ${{ matrix.project.mcu }}_${{ matrix.project.id }}/wokwi.toml
145
90
146
91
- name : Update ownership
147
92
run : |
148
- sudo chown 1000:1000 -R ${{ matrix.project.mcu }}-${{ matrix.project.env }} _${{ matrix.project.id }}
93
+ sudo chown 1000:1000 -R ${{ matrix.project.mcu }}_${{ matrix.project.id }}
149
94
150
95
- name : Pull Docker image
151
- run : docker image pull wokwi/builder-rust-${{ matrix.project.env }} -esp
96
+ run : docker image pull wokwi/builder-rust-nostd -esp
152
97
153
98
- name : Test code example in Docker image
154
99
uses : addnab/docker-run-action@v3
155
100
with :
156
- image : wokwi/builder-rust-${{ matrix.project.env }} -esp
101
+ image : wokwi/builder-rust-nostd -esp
157
102
options : -u esp -v ${{ github.workspace }}:/home/esp/workspace
158
103
run : |
159
104
. /home/esp/export-esp.sh
160
- cp /home/esp/workspace/${{ matrix.project.mcu }}-${{ matrix.project.env }} _${{ matrix.project.id }}/*.rs rust-project-${{ matrix.project.mcu }}/src/
161
- cat /home/esp/workspace/${{ matrix.project.mcu }}-${{ matrix.project.env }} _${{ matrix.project.id }}/Cargo.toml > rust-project-${{ matrix.project.mcu }}/Cargo.toml
105
+ cp /home/esp/workspace/${{ matrix.project.mcu }}_${{ matrix.project.id }}/*.rs rust-project-${{ matrix.project.mcu }}/src/
106
+ cat /home/esp/workspace/${{ matrix.project.mcu }}_${{ matrix.project.id }}/Cargo.toml > rust-project-${{ matrix.project.mcu }}/Cargo.toml
162
107
cd rust-project-${{ matrix.project.mcu }}
163
- cargo build --release --out-dir /home/esp/workspace/${{ matrix.project.mcu }}-${{ matrix.project.env }}_${{ matrix.project.id }} -Z unstable-options
108
+ cargo build --release || exit 1
109
+ cp target/${{ matrix.project.target }}/release/rust_project_${{ matrix.project.mcu }} /home/esp/workspace/${{ matrix.project.mcu }}_${{ matrix.project.id }}
164
110
165
- - name : Wokwi CI check
111
+ - name : Wokwi CI check (template)
166
112
if : matrix.project.name == 'template'
167
113
uses : wokwi/wokwi-ci-action@v1
168
114
with :
169
115
token : ${{ secrets.WOKWI_CLI_TOKEN }}
170
- path : ${{ matrix.project.mcu }}-${{ matrix.project.env }} _${{ matrix.project.id }}
116
+ path : ${{ matrix.project.mcu }}_${{ matrix.project.id }}
171
117
timeout : 10000
172
118
expect_text : ' Hello world!'
173
119
fail_text : ' Error'
174
120
175
- - name : Wokwi CI check
121
+ - name : Wokwi CI check (blinky)
176
122
if : matrix.project.name == 'blinky'
177
123
uses : wokwi/wokwi-ci-action@v1
178
124
with :
179
125
token : ${{ secrets.WOKWI_CLI_TOKEN }}
180
- path : ${{ matrix.project.mcu }}-${{ matrix.project.env }} _${{ matrix.project.id }}
126
+ path : ${{ matrix.project.mcu }}_${{ matrix.project.id }}
181
127
timeout : 10000
182
128
scenario : ../blinky.test.yaml
183
129
fail_text : ' Error'
@@ -186,5 +132,5 @@ jobs:
186
132
if : success() || failure()
187
133
uses : actions/upload-artifact@v4
188
134
with :
189
- name : ${{ matrix.project.name }}- ${{ matrix.project.mcu }}-${{ matrix.project.env }}_${{ matrix.project.id }}
190
- path : ${{ matrix.project.mcu }}-${{ matrix.project.env }} _${{ matrix.project.id }}
135
+ name : ${{ matrix.project.name }}_ ${{ matrix.project.mcu }}_${{ matrix.project.id }}
136
+ path : ${{ matrix.project.mcu }}_${{ matrix.project.id }}
0 commit comments