Some checks are pending
Go Benchmark / Performance Regression Check (push) Waiting to run
Cerberus Integration / Cerberus Security Stack Integration (push) Waiting to run
Upload Coverage to Codecov / Backend Codecov Upload (push) Waiting to run
Upload Coverage to Codecov / Frontend Codecov Upload (push) Waiting to run
CodeQL - Analyze / CodeQL analysis (go) (push) Waiting to run
CodeQL - Analyze / CodeQL analysis (javascript-typescript) (push) Waiting to run
CrowdSec Integration / CrowdSec Bouncer Integration (push) Waiting to run
Docker Build, Publish & Test / build-and-push (push) Waiting to run
Docker Build, Publish & Test / Security Scan PR Image (push) Blocked by required conditions
Quality Checks / Auth Route Protection Contract (push) Waiting to run
Quality Checks / Codecov Trigger/Comment Parity Guard (push) Waiting to run
Quality Checks / Backend (Go) (push) Waiting to run
Quality Checks / Frontend (React) (push) Waiting to run
Rate Limit integration / Rate Limiting Integration (push) Waiting to run
Security Scan (PR) / Trivy Binary Scan (push) Waiting to run
Supply Chain Verification (PR) / Verify Supply Chain (push) Waiting to run
WAF integration / Coraza WAF Integration (push) Waiting to run
62 lines
1.5 KiB
Bash
Executable File
62 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Script to install go 1.26.0 to /usr/local/go
|
|
# Usage: sudo ./scripts/install-go-1.26.0.sh
|
|
|
|
GO_VERSION="1.26.0"
|
|
ARCH="linux-amd64"
|
|
TARFILE="go${GO_VERSION}.${ARCH}.tar.gz"
|
|
TMPFILE="/tmp/${TARFILE}"
|
|
# Ensure GOPATH is set
|
|
: ${GOPATH:=$HOME/go}
|
|
: ${GOBIN:=${GOPATH}/bin}
|
|
|
|
# Download
|
|
if [ ! -f "$TMPFILE" ]; then
|
|
echo "Downloading go${GO_VERSION}..."
|
|
curl -sSfL -o "$TMPFILE" "https://go.dev/dl/${TARFILE}"
|
|
fi
|
|
|
|
# Remove existing installation
|
|
if [ -d "/usr/local/go" ]; then
|
|
echo "Removing existing /usr/local/go..."
|
|
sudo rm -rf /usr/local/go
|
|
fi
|
|
|
|
# Extract
|
|
echo "Extracting to /usr/local..."
|
|
sudo tar -C /usr/local -xzf "$TMPFILE"
|
|
|
|
# Setup system PATH via /etc/profile.d
|
|
echo "Creating /etc/profile.d/go.sh to export /usr/local/go/bin and GOPATH/bin"
|
|
sudo tee /etc/profile.d/go.sh > /dev/null <<'EOF'
|
|
export PATH=/usr/local/go/bin:$GOPATH/bin:$PATH
|
|
EOF
|
|
sudo chmod +x /etc/profile.d/go.sh
|
|
|
|
# Update current session PATH
|
|
export PATH=/usr/local/go/bin:$GOPATH/bin:$PATH
|
|
|
|
# Verify
|
|
echo "Installed go: $(go version)"
|
|
|
|
# Optionally install gopls
|
|
echo "Installing gopls..."
|
|
# renovate: datasource=go depName=golang.org/x/tools
|
|
go install golang.org/x/tools/gopls@v0.41.0
|
|
|
|
GOPLS_PATH="$GOPATH/bin/gopls"
|
|
if [ -f "$GOPLS_PATH" ]; then
|
|
echo "gopls installed at $GOPLS_PATH"
|
|
$GOPLS_PATH version || true
|
|
else
|
|
echo "gopls not installed in GOPATH/bin"
|
|
fi
|
|
|
|
cat <<'EOF'
|
|
Done. Please restart your shell or run:
|
|
source /etc/profile.d/go.sh
|
|
and restart your editor's Go language server (Go: Restart Language Server in VS Code)
|
|
EOF
|