Skip to content

Commit 98212b9

Browse files
Change on-release to deal with subdir
1 parent 85893f0 commit 98212b9

File tree

1 file changed

+35
-85
lines changed

1 file changed

+35
-85
lines changed

.github/scripts/on-release.sh

Lines changed: 35 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash
22

3+
export BASE_DIR="$GITHUB_WORKSPACE/arduino-esp32-fork"
4+
35
if [ ! $GITHUB_EVENT_NAME == "release" ]; then
46
echo "Wrong event '$GITHUB_EVENT_NAME'!"
57
exit 1
@@ -25,14 +27,14 @@ RELEASE_BRANCH=`echo $EVENT_JSON | jq -r '.release.target_commitish'`
2527
RELEASE_ID=`echo $EVENT_JSON | jq -r '.release.id'`
2628
RELEASE_BODY=`echo $EVENT_JSON | jq -r '.release.body'`
2729

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"
3234
PACKAGE_JSON_DEV="package_fri3d_dev_index.json"
3335
PACKAGE_JSON_REL="package_fri3d_index.json"
3436

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"
3638
echo "Action: $action, Branch: $RELEASE_BRANCH, ID: $RELEASE_ID"
3739
echo "Tag: $RELEASE_TAG, Draft: $draft, Pre-Release: $RELEASE_PRE"
3840

@@ -80,57 +82,7 @@ function git_safe_upload_asset(){
8082
return $?
8183
}
8284

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}"
11185

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-
}
13486

13587
function merge_package_json(){
13688
local jsonLink=$1
@@ -171,42 +123,42 @@ PKG_DIR="$OUTPUT_DIR/$PACKAGE_NAME"
171123
PACKAGE_ZIP="$PACKAGE_NAME.zip"
172124

173125
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
175127

176128
mkdir -p "$PKG_DIR/tools"
177129

178130
# Copy all core files to the package folder
179131
echo "Copying files for packaging ..."
180132
if [ -z "${BOARDS}" ]; then
181133
# 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/"
184136
else
185137
# 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"
187139
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"
189141
done
190142
# Copy only relevant variant files
191143
mkdir "$PKG_DIR/variants/"
192144
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/"
194146
done
195147
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/"
210162

211163
# Remove unnecessary files in the package folder
212164
echo "Cleaning up folders ..."
@@ -215,7 +167,7 @@ find "$PKG_DIR" -name '*.git*' -type f -delete
215167

216168
# Replace tools locations in platform.txt
217169
echo "Generating platform.txt..."
218-
cat "$GITHUB_WORKSPACE/platform.txt" | \
170+
cat "$BASE_DIR/platform.txt" | \
219171
sed "s/version=.*/version=$RELEASE_TAG/g" | \
220172
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' | \
221173
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,9 +189,9 @@ fi
237189
# Add header with version information
238190
echo "Generating core_version.h ..."
239191
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`
241193
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"
243195
echo \#define ARDUINO_ESP32_RELEASE_$ver_define >> "$PKG_DIR/cores/esp32/core_version.h"
244196
echo \#define ARDUINO_ESP32_RELEASE \"$ver_define\" >> "$PKG_DIR/cores/esp32/core_version.h"
245197

@@ -331,12 +283,10 @@ fi
331283
# Upload package JSONs
332284
echo "Uploading $PACKAGE_JSON_DEV ..."
333285
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"`
335286
echo
336287
if [ "$RELEASE_PRE" == "false" ]; then
337288
echo "Uploading $PACKAGE_JSON_REL ..."
338289
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"`
340290
echo
341291
fi
342292

@@ -349,7 +299,7 @@ echo "Preparing release notes ..."
349299
releaseNotes=""
350300

351301
# 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`
353303
readarray -t msgArray <<<"$relNotesRaw"
354304
arrLen=${#msgArray[@]}
355305
if [ $arrLen > 3 ] && [ "${msgArray[0]:0:3}" == "tag" ]; then
@@ -383,13 +333,13 @@ if [ "$RELEASE_PRE" == "false" ]; then
383333
fi
384334
if [ ! -z "$COMMITS_SINCE_RELEASE" ] && [ "$COMMITS_SINCE_RELEASE" != "null" ]; then
385335
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"
387337
elif [ "$RELEASE_BRANCH" != "master" ]; then
388338
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"
390340
else
391341
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"
393343
fi
394344
releaseNotes+=$'\r\n##### Commits\r\n'
395345
IFS=$'\n'
@@ -427,7 +377,7 @@ echo
427377

428378
# Upload submodules versions
429379
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"
431381
echo "Uploading submodules.txt ..."
432382
echo "Download URL: "`git_safe_upload_asset "$OUTPUT_DIR/submodules.txt"`
433383
echo ""

0 commit comments

Comments
 (0)