1
1
#! /bin/bash
2
2
3
+ export BASE_DIR=" $GITHUB_WORKSPACE /arduino-esp32-fork"
4
+
3
5
if [ ! $GITHUB_EVENT_NAME == " release" ]; then
4
6
echo " Wrong event '$GITHUB_EVENT_NAME '!"
5
7
exit 1
@@ -25,14 +27,14 @@ RELEASE_BRANCH=`echo $EVENT_JSON | jq -r '.release.target_commitish'`
25
27
RELEASE_ID=` echo $EVENT_JSON | jq -r ' .release.id' `
26
28
RELEASE_BODY=` echo $EVENT_JSON | jq -r ' .release.body' `
27
29
28
- OUTPUT_DIR=" $GITHUB_WORKSPACE /build"
29
- PACKAGE_NAME=" esp32-$RELEASE_TAG "
30
- PACKAGE_JSON_MERGE=" $GITHUB_WORKSPACE / .github/scripts/merge_packages.py"
31
- PACKAGE_JSON_TEMPLATE=" $GITHUB_WORKSPACE /package/package_fri3d_index.template.json"
30
+ OUTPUT_DIR=" $BASE_DIR /build"
31
+ PACKAGE_NAME=" esp32-fri3d- $RELEASE_TAG "
32
+ PACKAGE_JSON_MERGE=" .github/scripts/merge_packages.py"
33
+ PACKAGE_JSON_TEMPLATE=" $BASE_DIR /package/package_fri3d_index.template.json"
32
34
PACKAGE_JSON_DEV=" package_fri3d_dev_index.json"
33
35
PACKAGE_JSON_REL=" package_fri3d_index.json"
34
36
35
- echo " Event: $GITHUB_EVENT_NAME , Repo: $GITHUB_REPOSITORY , Path: $GITHUB_WORKSPACE , Ref: $GITHUB_REF "
37
+ echo " Event: $GITHUB_EVENT_NAME , Repo: $GITHUB_REPOSITORY , Path: $BASE_DIR , Ref: $GITHUB_REF "
36
38
echo " Action: $action , Branch: $RELEASE_BRANCH , ID: $RELEASE_ID "
37
39
echo " Tag: $RELEASE_TAG , Draft: $draft , Pre-Release: $RELEASE_PRE "
38
40
@@ -80,57 +82,7 @@ function git_safe_upload_asset(){
80
82
return $?
81
83
}
82
84
83
- function git_upload_to_pages(){
84
- local path=$1
85
- local src=$2
86
-
87
- if [ ! -f " $src " ]; then
88
- >&2 echo " Input is not a file! Aborting..."
89
- return 1
90
- fi
91
-
92
- local info=` curl -s -k -H " Authorization: token $GITHUB_TOKEN " -H " Accept: application/vnd.github.v3.object+json" -X GET " https://api.github.com/repos/$GITHUB_REPOSITORY /contents/$path ?ref=gh-pages" `
93
- local type=` echo " $info " | jq -r ' .type' `
94
- local message=$( basename $path )
95
- local sha=" "
96
- local content=" "
97
-
98
- if [ $type == " file" ]; then
99
- sha=` echo " $info " | jq -r ' .sha' `
100
- sha=" ,\" sha\" :\" $sha \" "
101
- message=" Updating $message "
102
- elif [ ! $type == " null" ]; then
103
- >&2 echo " Wrong type '$type '"
104
- return 1
105
- else
106
- message=" Creating $message "
107
- fi
108
-
109
- content=` base64 -i " $src " `
110
- data=" {\" branch\" :\" gh-pages\" ,\" message\" :\" $message \" ,\" content\" :\" $content \" $sha }"
111
85
112
- echo " $data " | curl -s -k -H " Authorization: token $GITHUB_TOKEN " -H " Accept: application/vnd.github.v3.raw+json" -X PUT --data @- " https://api.github.com/repos/$GITHUB_REPOSITORY /contents/$path "
113
- }
114
-
115
- function git_safe_upload_to_pages(){
116
- local path=$1
117
- local file=" $2 "
118
- local name=$( basename " $file " )
119
- local size=` get_file_size " $file " `
120
- local upload_res=` git_upload_to_pages " $path " " $file " `
121
- if [ $? -ne 0 ]; then
122
- >&2 echo " ERROR: Failed to upload '$name ' ($? )"
123
- return 1
124
- fi
125
- up_size=` echo " $upload_res " | jq -r ' .content.size' `
126
- if [ $up_size -ne $size ]; then
127
- >&2 echo " ERROR: Uploaded size does not match! $up_size != $size "
128
- # git_delete_asset
129
- return 1
130
- fi
131
- echo " $upload_res " | jq -r ' .content.download_url'
132
- return $?
133
- }
134
86
135
87
function merge_package_json(){
136
88
local jsonLink=$1
@@ -171,42 +123,42 @@ PKG_DIR="$OUTPUT_DIR/$PACKAGE_NAME"
171
123
PACKAGE_ZIP=" $PACKAGE_NAME .zip"
172
124
173
125
echo " Updating submodules ..."
174
- git -C " $GITHUB_WORKSPACE " submodule update --init --recursive > /dev/null 2>&1
126
+ git -C " $BASE_DIR " submodule update --init --recursive > /dev/null 2>&1
175
127
176
128
mkdir -p " $PKG_DIR /tools"
177
129
178
130
# Copy all core files to the package folder
179
131
echo " Copying files for packaging ..."
180
132
if [ -z " ${BOARDS} " ]; then
181
133
# Copy all variants
182
- cp -f " $GITHUB_WORKSPACE /boards.txt" " $PKG_DIR /"
183
- cp -Rf " $GITHUB_WORKSPACE /variants" " $PKG_DIR /"
134
+ cp -f " $BASE_DIR /boards.txt" " $PKG_DIR /"
135
+ cp -Rf " $BASE_DIR /variants" " $PKG_DIR /"
184
136
else
185
137
# Remove all entries not starting with any board code or "menu." from boards.txt
186
- cat " $GITHUB_WORKSPACE /boards.txt" | grep " ^menu\." > " $PKG_DIR /boards.txt"
138
+ cat " $BASE_DIR /boards.txt" | grep " ^menu\." > " $PKG_DIR /boards.txt"
187
139
for board in ${BOARDS} ; do
188
- cat " $GITHUB_WORKSPACE /boards.txt" | grep " ^${board} \." >> " $PKG_DIR /boards.txt"
140
+ cat " $BASE_DIR /boards.txt" | grep " ^${board} \." >> " $PKG_DIR /boards.txt"
189
141
done
190
142
# Copy only relevant variant files
191
143
mkdir " $PKG_DIR /variants/"
192
144
for variant in ` cat ${PKG_DIR} /boards.txt | grep " \.variant=" | cut -d= -f2` ; do
193
- cp -Rf " $GITHUB_WORKSPACE /variants/${variant} " " $PKG_DIR /variants/"
145
+ cp -Rf " $BASE_DIR /variants/${variant} " " $PKG_DIR /variants/"
194
146
done
195
147
fi
196
- cp -f " $GITHUB_WORKSPACE /package.json" " $PKG_DIR /"
197
- cp -f " $GITHUB_WORKSPACE /programmers.txt" " $PKG_DIR /"
198
- cp -Rf " $GITHUB_WORKSPACE /cores" " $PKG_DIR /"
199
- cp -Rf " $GITHUB_WORKSPACE /libraries" " $PKG_DIR /"
200
- cp -f " $GITHUB_WORKSPACE /tools/espota.exe" " $PKG_DIR /tools/"
201
- cp -f " $GITHUB_WORKSPACE /tools/espota.py" " $PKG_DIR /tools/"
202
- cp -f " $GITHUB_WORKSPACE /tools/gen_esp32part.py" " $PKG_DIR /tools/"
203
- cp -f " $GITHUB_WORKSPACE /tools/gen_esp32part.exe" " $PKG_DIR /tools/"
204
- cp -f " $GITHUB_WORKSPACE /tools/gen_insights_package.py" " $PKG_DIR /tools/"
205
- cp -f " $GITHUB_WORKSPACE /tools/gen_insights_package.exe" " $PKG_DIR /tools/"
206
- cp -Rf " $GITHUB_WORKSPACE /tools/partitions" " $PKG_DIR /tools/"
207
- cp -Rf " $GITHUB_WORKSPACE /tools/ide-debug" " $PKG_DIR /tools/"
208
- cp -Rf " $GITHUB_WORKSPACE /tools/sdk" " $PKG_DIR /tools/"
209
- cp -f $GITHUB_WORKSPACE /tools/platformio-build* .py " $PKG_DIR /tools/"
148
+ cp -f " $BASE_DIR /package.json" " $PKG_DIR /"
149
+ cp -f " $BASE_DIR /programmers.txt" " $PKG_DIR /"
150
+ cp -Rf " $BASE_DIR /cores" " $PKG_DIR /"
151
+ cp -Rf " $BASE_DIR /libraries" " $PKG_DIR /"
152
+ cp -f " $BASE_DIR /tools/espota.exe" " $PKG_DIR /tools/"
153
+ cp -f " $BASE_DIR /tools/espota.py" " $PKG_DIR /tools/"
154
+ cp -f " $BASE_DIR /tools/gen_esp32part.py" " $PKG_DIR /tools/"
155
+ cp -f " $BASE_DIR /tools/gen_esp32part.exe" " $PKG_DIR /tools/"
156
+ cp -f " $BASE_DIR /tools/gen_insights_package.py" " $PKG_DIR /tools/"
157
+ cp -f " $BASE_DIR /tools/gen_insights_package.exe" " $PKG_DIR /tools/"
158
+ cp -Rf " $BASE_DIR /tools/partitions" " $PKG_DIR /tools/"
159
+ cp -Rf " $BASE_DIR /tools/ide-debug" " $PKG_DIR /tools/"
160
+ cp -Rf " $BASE_DIR /tools/sdk" " $PKG_DIR /tools/"
161
+ cp -f $BASE_DIR /tools/platformio-build* .py " $PKG_DIR /tools/"
210
162
211
163
# Remove unnecessary files in the package folder
212
164
echo " Cleaning up folders ..."
@@ -215,7 +167,7 @@ find "$PKG_DIR" -name '*.git*' -type f -delete
215
167
216
168
# Replace tools locations in platform.txt
217
169
echo " Generating platform.txt..."
218
- cat " $GITHUB_WORKSPACE /platform.txt" | \
170
+ cat " $BASE_DIR /platform.txt" | \
219
171
sed " s/version=.*/version=$RELEASE_TAG /g" | \
220
172
sed ' s/tools.xtensa-esp32-elf-gcc.path={runtime.platform.path}\/tools\/xtensa-esp32-elf/tools.xtensa-esp32-elf-gcc.path=\{runtime.tools.xtensa-esp32-elf-gcc.path\}/g' | \
221
173
sed ' s/tools.xtensa-esp32s2-elf-gcc.path={runtime.platform.path}\/tools\/xtensa-esp32s2-elf/tools.xtensa-esp32s2-elf-gcc.path=\{runtime.tools.xtensa-esp32s2-elf-gcc.path\}/g' | \
237
189
# Add header with version information
238
190
echo " Generating core_version.h ..."
239
191
ver_define=` echo $RELEASE_TAG | tr " [:lower:].\055" " [:upper:]_" `
240
- ver_hex=` git -C " $GITHUB_WORKSPACE " rev-parse --short=8 HEAD 2> /dev/null`
192
+ ver_hex=` git -C " $BASE_DIR " rev-parse --short=8 HEAD 2> /dev/null`
241
193
echo \# define ARDUINO_ESP32_GIT_VER 0x$ver_hex > " $PKG_DIR /cores/esp32/core_version.h"
242
- echo \# define ARDUINO_ESP32_GIT_DESC ` git -C " $GITHUB_WORKSPACE " describe --tags 2> /dev/null` >> " $PKG_DIR /cores/esp32/core_version.h"
194
+ echo \# define ARDUINO_ESP32_GIT_DESC ` git -C " $BASE_DIR " describe --tags 2> /dev/null` >> " $PKG_DIR /cores/esp32/core_version.h"
243
195
echo \# define ARDUINO_ESP32_RELEASE_$ver_define >> " $PKG_DIR /cores/esp32/core_version.h"
244
196
echo \# define ARDUINO_ESP32_RELEASE \" $ver_define \" >> " $PKG_DIR /cores/esp32/core_version.h"
245
197
331
283
# Upload package JSONs
332
284
echo " Uploading $PACKAGE_JSON_DEV ..."
333
285
echo " Download URL: " ` git_safe_upload_asset " $OUTPUT_DIR /$PACKAGE_JSON_DEV " `
334
- echo " Pages URL: " ` git_safe_upload_to_pages " $PACKAGE_JSON_DEV " " $OUTPUT_DIR /$PACKAGE_JSON_DEV " `
335
286
echo
336
287
if [ " $RELEASE_PRE " == " false" ]; then
337
288
echo " Uploading $PACKAGE_JSON_REL ..."
338
289
echo " Download URL: " ` git_safe_upload_asset " $OUTPUT_DIR /$PACKAGE_JSON_REL " `
339
- echo " Pages URL: " ` git_safe_upload_to_pages " $PACKAGE_JSON_REL " " $OUTPUT_DIR /$PACKAGE_JSON_REL " `
340
290
echo
341
291
fi
342
292
@@ -349,7 +299,7 @@ echo "Preparing release notes ..."
349
299
releaseNotes=" "
350
300
351
301
# Process annotated tags
352
- relNotesRaw=` git -C " $GITHUB_WORKSPACE " show -s --format=%b $RELEASE_TAG `
302
+ relNotesRaw=` git -C " $BASE_DIR " show -s --format=%b $RELEASE_TAG `
353
303
readarray -t msgArray <<< " $relNotesRaw"
354
304
arrLen=${# msgArray[@]}
355
305
if [ $arrLen > 3 ] && [ " ${msgArray[0]: 0: 3} " == " tag" ]; then
@@ -383,13 +333,13 @@ if [ "$RELEASE_PRE" == "false" ]; then
383
333
fi
384
334
if [ ! -z " $COMMITS_SINCE_RELEASE " ] && [ " $COMMITS_SINCE_RELEASE " != " null" ]; then
385
335
echo " Getting commits since $COMMITS_SINCE_RELEASE ..."
386
- git -C " $GITHUB_WORKSPACE " log --oneline -n 500 " $COMMITS_SINCE_RELEASE ..HEAD" > " $commitFile "
336
+ git -C " $BASE_DIR " log --oneline -n 500 " $COMMITS_SINCE_RELEASE ..HEAD" > " $commitFile "
387
337
elif [ " $RELEASE_BRANCH " != " master" ]; then
388
338
echo " Getting all commits on branch '$RELEASE_BRANCH ' ..."
389
- git -C " $GITHUB_WORKSPACE " log --oneline -n 500 --cherry-pick --left-only --no-merges HEAD...origin/master > " $commitFile "
339
+ git -C " $BASE_DIR " log --oneline -n 500 --cherry-pick --left-only --no-merges HEAD...origin/master > " $commitFile "
390
340
else
391
341
echo " Getting all commits on master ..."
392
- git -C " $GITHUB_WORKSPACE " log --oneline -n 500 --no-merges > " $commitFile "
342
+ git -C " $BASE_DIR " log --oneline -n 500 --no-merges > " $commitFile "
393
343
fi
394
344
releaseNotes+=$' \r\n ##### Commits\r\n '
395
345
IFS=$' \n '
427
377
428
378
# Upload submodules versions
429
379
echo " Generating submodules.txt ..."
430
- git -C " $GITHUB_WORKSPACE " submodule status > " $OUTPUT_DIR /submodules.txt"
380
+ git -C " $BASE_DIR " submodule status > " $OUTPUT_DIR /submodules.txt"
431
381
echo " Uploading submodules.txt ..."
432
382
echo " Download URL: " ` git_safe_upload_asset " $OUTPUT_DIR /submodules.txt" `
433
383
echo " "
0 commit comments