1
- name : Cron Build
1
+ name : Cron Deploy
2
2
3
3
on :
4
4
schedule :
@@ -17,187 +17,18 @@ defaults:
17
17
run :
18
18
shell : bash
19
19
20
- env :
21
- LATEST_RELEASE_BRANCH : " release/v5.1" # Change this to the latest release branch so the checkouts are done correctly
22
-
23
20
jobs :
24
- gen-matrix :
25
- name : Generate matrix
26
- runs-on : ubuntu-latest
27
- outputs :
28
- matrix : ${{ steps.gen-matrix.outputs.matrix }}
29
- branches : ${{ steps.gen-matrix.outputs.branches }}
30
- steps :
31
- - uses : actions/checkout@v4
32
- with :
33
- fetch-depth : 0
34
-
35
- - name : Generate matrix
36
- id : gen-matrix
37
- env :
38
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
39
- run : |
40
- set -e
41
-
42
- # Change this based on the IDF branches we want to build. Don't forget to update env.LATEST_RELEASE_BRANCH
43
- all_branches=("release/v5.1")
44
-
45
- # Change this based on the COMMON targets for all branches we want to build.
46
- common_targets="[\"esp32\", \"esp32s2\", \"esp32s3\", \"esp32c2\", \"esp32c3\", \"esp32c6\", \"esp32h2\"]"
47
-
48
- # For additional targets per branch, add them here
49
- additional_targets="[{\"idf_branch\": \"release/v5.3\", \"target\": \"esp32p4\"}]"
50
-
51
- branches="["
52
- matrix="{"
53
-
54
- for branch in ${all_branches[@]}; do
55
- if [ "$branch" == "$LATEST_RELEASE_BRANCH" ]; then
56
- git checkout master
57
- else
58
- git checkout $branch
59
- fi
60
- export IDF_BRANCH=$branch
61
- source ./tools/check-deploy-needed.sh
62
- if [ "$DEPLOY_NEEDED" == "1" ]; then
63
- branches+="\"$branch\","
64
- fi
65
- done
66
-
67
- branches="${branches%,}]"
68
- matrix+="\"idf_branch\": $branches,"
69
- matrix+="\"target\": $common_targets,"
70
-
71
- matrix+="\"include\": "
72
- # Add all additional targets that are in the selected branches
73
- matrix+=$(echo $additional_targets | jq --argjson branches "$branches" '[.[] | select(.idf_branch as $branch | $branches | index($branch))]')
74
-
75
- matrix+="}"
76
-
77
- echo "Branches: $branches"
78
-
79
- echo "Matrix:"
80
- echo "$matrix" | jq .
81
-
82
- if [ ! -x $GITHUB_OUTPUT ]; then
83
- echo "matrix=$matrix" >> $GITHUB_OUTPUT
84
- echo "branches=$branches" >> $GITHUB_OUTPUT
85
- fi
86
-
87
21
build-libs :
88
- name : Build with IDF ${{ matrix.idf_branch }} for ${{ matrix.target }}
89
- runs-on : ubuntu-latest
90
- if : needs.gen-matrix.outputs.branches != '[]'
91
- needs : gen-matrix
92
- strategy :
93
- fail-fast : false
94
- matrix : ${{ fromJson(needs.gen-matrix.outputs.matrix) }}
95
- steps :
96
- - uses : actions/checkout@v4
97
- with :
98
- # Useful workaround for the checkout action to work with the matrix
99
- # https://github.com/actions/runner/issues/409#issuecomment-1013325196
100
- ref : ${{ matrix.idf_branch == env.LATEST_RELEASE_BRANCH && 'master' || matrix.idf_branch }}
101
-
102
- - name : Install dependencies
103
- run : bash ./tools/prepare-ci.sh
104
-
105
- - name : Build
106
- env :
107
- GITHUB_TOKEN : ${{ secrets.PUSH_TOKEN || secrets.GITHUB_TOKEN }}
108
- GIT_AUTHOR_EMAIL : ${{ secrets.PUSH_EMAIL }}
109
- GIT_COMMITTER_EMAIL : ${{ secrets.PUSH_EMAIL }}
110
- IDF_BRANCH : ${{ matrix.idf_branch }}
111
- TARGET : ${{ matrix.target }}
112
- run : |
113
- bash ./tools/cron.sh
114
-
115
- - name : Replace invalid characters in the artifact name
116
- run : |
117
- branch=${{ matrix.idf_branch }}
118
- echo "libs_branch=${branch//\//_}" >> $GITHUB_ENV
119
-
120
- - name : Upload build
121
- if : failure()
122
- uses : actions/upload-artifact@v4
123
- with :
124
- name : build-${{ env.libs_branch }}-${{ matrix.target }}
125
- path : build
126
-
127
- - name : Upload library files
128
- uses : actions/upload-artifact@v4
129
- with :
130
- name : libs-${{ env.libs_branch }}-${{ matrix.target }}
131
- path : dist
132
-
133
- combine-artifacts :
134
- name : Combine artifacts for IDF ${{ matrix.idf_branch }}
135
- runs-on : ubuntu-latest
136
- needs : [gen-matrix, build-libs]
137
- # Condition is evaluated before the job is run so it won't cause a failure
138
- if : needs.gen-matrix.outputs.branches != '[]'
22
+ name : Build with IDF ${{ matrix.idf_branch }}
23
+ uses : ./.github/workflows/cron_build.yml
24
+ with :
25
+ idf_branch : ${{ matrix.idf_branch }}
26
+ lib_builder_branch : ${{ matrix.lib_builder_branch }}
27
+ targets : ${{ matrix.targets }}
139
28
strategy :
140
29
fail-fast : false
141
30
matrix :
142
- idf_branch : ${{ fromJson(needs.gen-matrix.outputs.branches) }}
143
- steps :
144
- - uses : actions/checkout@v4
145
- with :
146
- # Useful workaround for the checkout action to work with the matrix
147
- # https://github.com/actions/runner/issues/409#issuecomment-1013325196
148
- ref : ${{ matrix.idf_branch == env.LATEST_RELEASE_BRANCH && 'master' || matrix.idf_branch }}
149
-
150
- - name : Replace invalid characters in the artifact name
151
- run : |
152
- branch=${{ matrix.idf_branch }}
153
- echo "libs_branch=${branch//\//_}" >> $GITHUB_ENV
154
-
155
- - name : Download artifacts
156
- uses : actions/download-artifact@v4
157
- with :
158
- path : dist
159
- pattern : libs-${{ env.libs_branch }}-*
160
- merge-multiple : true
161
-
162
- - name : Combine artifacts
163
- run : |
164
- set -e
165
- mkdir -p out
166
-
167
- libs_folder="out/tools/esp32-arduino-libs"
168
-
169
- files=$(find dist -name 'arduino-esp32-libs-esp*.tar.gz')
170
- for file in $files; do
171
- echo "Extracting $file"
172
- tar zxvf $file -C out
173
- cat $libs_folder/versions.txt >> $libs_folder/versions_full.txt
174
- done
175
-
176
- # Merge versions.txt files
177
- awk -i inplace '!seen[$0]++' $libs_folder/versions_full.txt
178
- mv -f $libs_folder/versions_full.txt $libs_folder/versions.txt
179
-
180
- cd $libs_folder && tar zcf ../../../dist/esp32-arduino-libs.tar.gz * && cd ../../..
181
- cp out/package_esp32_index.template.json dist/package_esp32_index.template.json
182
-
183
- - name : Upload full esp32-arduino-libs archive
184
- uses : actions/upload-artifact@v4
185
- with :
186
- name : esp32-arduino-libs
187
- path : dist/esp32-arduino-libs.tar.gz
188
-
189
- - name : Upload package_esp32_index.template.json
190
- uses : actions/upload-artifact@v4
191
- with :
192
- name : package-esp32-index-json
193
- path : dist/package_esp32_index.template.json
194
-
195
- - name : Push changes
196
- if : github.repository == 'espressif/esp32-arduino-lib-builder'
197
- env :
198
- GITHUB_TOKEN : ${{ secrets.PUSH_TOKEN }}
199
- GIT_AUTHOR_EMAIL : ${{ secrets.PUSH_EMAIL }}
200
- GIT_COMMITTER_EMAIL : ${{ secrets.PUSH_EMAIL }}
201
- IDF_BRANCH : ${{ matrix.idf_branch }}
202
- run : |
203
- bash ./tools/push-to-arduino.sh
31
+ include :
32
+ - idf_branch : " release/v5.1"
33
+ lib_builder_branch : " master"
34
+ targets : " esp32,esp32s2,esp32s3,esp32c3,esp32c6,esp32h2"
0 commit comments