Skip to content

Commit 0852ae6

Browse files
committed
Update script to get latest positron server version
1 parent 998fa91 commit 0852ae6

1 file changed

Lines changed: 28 additions & 8 deletions

File tree

ci/install-positron.sh

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,34 @@
11
#!/usr/bin/env bash
22
set -euo pipefail
33

4-
# Download Positron server to temporary directory
5-
# Note: this is the url for x64 architecture machines
6-
curl -L "https://cdn.posit.co/positron/releases/server/x86_64/positron-server-linux-x64-2026.05.0-179.tar.gz" -o /tmp/positron-server.tar.gz
4+
GITHUB_API="https://api.github.com/repos/posit-dev/positron/releases/latest"
5+
CDN_BASE="https://cdn.posit.co/positron/releases"
6+
DEST="/tmp/positron-server.tar.gz"
77

8-
# Create directory
9-
mkdir -p /opt/positron-server
8+
# Find latest Positron release
9+
release=$(wget -qO- "$GITHUB_API" | python3 -c "import json,sys; print(json.load(sys.stdin)['tag_name'])")
10+
11+
# Get the checksums for the latest release
12+
checksum_url="${CDN_BASE}/checksums/positron-${release}-checksums.json"
13+
checksums=$(wget -qO- "$checksum_url")
14+
15+
filename="positron-server-linux-x64-${release}.tar.gz"
16+
expected=$(echo "$checksums" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d['${filename}'])")
17+
18+
download_url="${CDN_BASE}/server/x86_64/${filename}"
1019

11-
# Unpack Positron Server into newly created directory
12-
tar -xzf /tmp/positron-server.tar.gz -C /opt/positron-server --strip-components=1
20+
wget -q "$download_url" -O "$DEST"
1321

14-
rm /tmp/positron-server.tar.gz
22+
# Verify SHA256 checksum
23+
actual=$(sha256sum "$DEST" | awk '{print $1}')
24+
25+
if [ "$actual" != "$expected" ]; then
26+
echo "Checksum MISMATCH: expected $expected, got $actual" >&2
27+
rm -f "$DEST"
28+
exit 1
29+
fi
30+
31+
# Install Positron Server
32+
mkdir -p /opt/positron-server
33+
tar -xzf "$DEST" -C /opt/positron-server --strip-components=1
34+
rm "$DEST"

0 commit comments

Comments
 (0)