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