-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathrefreshTools.sh
More file actions
executable file
·74 lines (53 loc) · 2.4 KB
/
Copy pathrefreshTools.sh
File metadata and controls
executable file
·74 lines (53 loc) · 2.4 KB
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
#!/bin/bash
set -e
echo "Upgrading the Runtime CLI extension"
gh extension upgrade runtime-cli
echo "Checking for updates to workbench-template from GitHub"
GITHUB_PAT="$RELEASE_PAT"
REPO="github/workbench-template"
MARKER_DIR="/var/lib/spark/.versions"
RELEASE_MARKER_FILE="$MARKER_DIR/release"
TOOLS_MARKER_FILE="$MARKER_DIR/tools"
sudo mkdir -p "$MARKER_DIR"
# Fetch the latest release information
LATEST_RELEASE=$(curl -s -H "Authorization: token $GITHUB_PAT" https://api.github.com/repos/$REPO/releases/latest)
# Extract the release ID to use as marker
RELEASE_ID=$(echo "$LATEST_RELEASE" | jq -r '.id')
# Check if marker file exists and has the same release ID
if [ -f "$RELEASE_MARKER_FILE" ] && [ "$(cat "$RELEASE_MARKER_FILE")" == "$RELEASE_ID" ]; then
echo "Already at the latest release. Skipping download."
exit 0
fi
echo "New version found. Downloading latest release."
# Extract the first browser_download_url from the assets
DOWNLOAD_URL=$(echo "$LATEST_RELEASE" | jq -r '.assets[0].url')
echo "Download URL: $DOWNLOAD_URL"
# Fetch the latest release information
curl -L -o dist.zip -H "Authorization: token $GITHUB_PAT" -H "Accept: application/octet-stream" "$DOWNLOAD_URL"
unzip -o dist.zip
rm dist.zip
sudo mv ./spark-sdk-dist/server.js /usr/local/bin/spark-server
sudo mv ./spark-sdk-dist/designer.js /usr/local/bin/spark-designer
sudo mv ./spark-sdk-dist/upload-to-remote.sh /usr/local/bin/upload-to-remote.sh
sudo mv ./spark-sdk-dist/file-syncer.js /usr/local/bin/spark-file-syncer
sudo mv ./spark-sdk-dist/spark-agent.js /usr/local/bin/spark-agent
sudo cp ./spark-sdk-dist/proxy.js /workspaces/proxy.js
sudo mv ./spark-sdk-dist/proxy.js /usr/local/bin/proxy.js
if [ -f "$TOOLS_MARKER_FILE" ] && [ "$(cat "$TOOLS_MARKER_FILE")" == "$(cat ./spark-sdk-dist/spark-tools-version)" ]; then
echo "Already at the latest tools version. Skipping extraction."
else
tar -xzf ./spark-sdk-dist/spark-tools.tgz
rm -rf /workspaces/spark-tools
mkdir -p /workspaces/spark-tools
sudo mv ./package/* /workspaces/spark-tools
sudo rmdir ./package
cd /workspaces/spark-tools
npm i
cd /workspaces/spark-template
npm i -f /workspaces/spark-tools
sudo cp ./spark-sdk-dist/spark-tools-version "$TOOLS_MARKER_FILE"
fi
rm -rf ./spark-sdk-dist
# Update marker file with latest release ID
echo "$RELEASE_ID" | sudo tee "$RELEASE_MARKER_FILE" > /dev/null
echo "Tools installed successfully."