forked from espressif/esp32-arduino-lib-builder
-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathpush-to-arduino.sh
executable file
·158 lines (136 loc) · 4.76 KB
/
push-to-arduino.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/bin/bash
source ./tools/config.sh
if [ -x $GITHUB_TOKEN ]; then
echo "ERROR: GITHUB_TOKEN was not defined"
exit 1
fi
if ! [ -d "$AR_COMPS/arduino" ]; then
echo "ERROR: Target arduino folder does not exist!"
exit 1
fi
# setup git for pushing
git config --global github.user "$GITHUB_ACTOR"
git config --global user.name "$GITHUB_ACTOR"
git config --global user.email "$GITHUB_ACTOR@github.com"
#
# UPDATE FILES
#
#
# esp32-arduino-libs
#
if [ $LIBS_HAS_COMMIT == "0" ] || [ $AR_HAS_COMMIT == "0" ]; then
cd "$AR_ROOT"
# create branch if necessary
if [ "$LIBS_HAS_BRANCH" == "1" ]; then
echo "Branch '$AR_NEW_BRANCH_NAME' Already Exists"
echo "Switching to esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..."
git -C "$IDF_LIBS_DIR" checkout $AR_NEW_BRANCH_NAME
else
echo "Creating esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..."
git -C "$IDF_LIBS_DIR" checkout -b $AR_NEW_BRANCH_NAME
fi
if [ $? -ne 0 ]; then
echo "ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME' failed"
exit 1
fi
# make changes to the files
echo "Patching files in esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..."
rm -rf $IDF_LIBS_DIR/* && cp -Rf $AR_TOOLS/esp32-arduino-libs/* $IDF_LIBS_DIR/
cd $IDF_LIBS_DIR
if [ -f "README.md" ]; then
rm -rf "README.md"
fi
# did any of the files change?
if [ -n "$(git status --porcelain)" ]; then
echo "Pushing changes to esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'..."
git add . && git commit --message "$AR_NEW_COMMIT_MESSAGE" && git push -u origin $AR_NEW_BRANCH_NAME
if [ $? -ne 0 ]; then
echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed"
exit 1
fi
IDF_LIBS_COMMIT=`git rev-parse --verify HEAD`
IDF_LIBS_DL_URL="https://codeload.github.com/espressif/esp32-arduino-libs/zip/$IDF_LIBS_COMMIT"
# ToDo: this URL needs to get into Arduino's package.json
# Download the file
filename="esp32-arduino-libs-$IDF_LIBS_COMMIT.zip"
curl -s -o "$filename" "$IDF_LIBS_DL_URL"
# Check if the download was successful
if [ $? -ne 0 ]; then
echo "Error downloading file from $IDF_LIBS_DL_URL"
exit 1
fi
# Calculate the size in bytes and SHA-256 sum
size=$(stat -c%s "$filename")
sha256sum=$(sha256sum "$filename" | awk '{print $1}')
# Clean up the downloaded file
rm "$filename"
# Print the results
echo "Tool: esp32-arduino-libs"
echo "Version: $LIBS_VERSION"
echo "URL: $IDF_LIBS_DL_URL"
echo "File: $filename"
echo "Size: $size bytes"
echo "SHA-256: $sha256sum"
echo "JSON: $AR_OUT/package_esp32_index.template.json"
cd "$AR_ROOT"
python3 tools/add_sdk_json.py -j "$AR_OUT/package_esp32_index.template.json" -n "esp32-arduino-libs" -v "$LIBS_VERSION" -u "$IDF_LIBS_DL_URL" -f "$filename" -s "$size" -c "$sha256sum"
if [ $? -ne 0 ]; then exit 1; fi
else
echo "No changes in esp32-arduino-libs branch '$AR_NEW_BRANCH_NAME'"
if [ $LIBS_HAS_BRANCH == "0" ]; then
echo "Delete created branch '$AR_NEW_BRANCH_NAME'"
git branch -d $AR_NEW_BRANCH_NAME
fi
exit 0
fi
fi
#
# esp32-arduino
#
if [ $AR_HAS_COMMIT == "0" ]; then
cd "$AR_ROOT"
# create or checkout the branch
if [ ! $AR_HAS_BRANCH == "0" ]; then
echo "Switching to arduino branch '$AR_NEW_BRANCH_NAME'..."
git -C "$AR_COMPS/arduino" checkout $AR_NEW_BRANCH_NAME
else
echo "Creating arduino branch '$AR_NEW_BRANCH_NAME'..."
git -C "$AR_COMPS/arduino" checkout -b $AR_NEW_BRANCH_NAME
fi
if [ $? -ne 0 ]; then
echo "ERROR: Checkout of branch '$AR_NEW_BRANCH_NAME' failed"
exit 1
fi
# make changes to the files
echo "Patching files in branch '$AR_NEW_BRANCH_NAME'..."
rm -rf "$AR_COMPS/arduino/package/package_esp32_index.template.json" && cp -f "$AR_OUT/package_esp32_index.template.json" "$AR_COMPS/arduino/package/package_esp32_index.template.json"
cd $AR_COMPS/arduino
# did any of the files change?
if [ -n "$(git status --porcelain)" ]; then
echo "Pushing changes to branch '$AR_NEW_BRANCH_NAME'..."
git add . && git commit --message "$AR_NEW_COMMIT_MESSAGE" && git push -u origin $AR_NEW_BRANCH_NAME
if [ $? -ne 0 ]; then
echo "ERROR: Pushing to branch '$AR_NEW_BRANCH_NAME' failed"
exit 1
fi
else
echo "No changes in branch '$AR_NEW_BRANCH_NAME'"
if [ $AR_HAS_BRANCH == "0" ]; then
echo "Delete created branch '$AR_NEW_BRANCH_NAME'"
git branch -d $AR_NEW_BRANCH_NAME
fi
exit 0
fi
# CREATE PULL REQUEST
if [ "$AR_HAS_PR" == "0" ]; then
echo "Creating PR '$AR_NEW_PR_TITLE'..."
pr_created=`git_create_pr "$AR_NEW_BRANCH_NAME" "$AR_NEW_PR_TITLE" "$AR_PR_TARGET_BRANCH"`
if [ $pr_created == "0" ]; then
echo "ERROR: Failed to create PR '$AR_NEW_PR_TITLE': "`echo "$git_create_pr_res" | jq -r '.message'`": "`echo "$git_create_pr_res" | jq -r '.errors[].message'`
exit 1
fi
else
echo "PR '$AR_NEW_PR_TITLE' Already Exists"
fi
fi
exit 0