Skip to content

Fix install script to match actual release asset filenames#104

Merged
robzolkos merged 1 commit intomasterfrom
rz/fix-install-script-103
Mar 17, 2026
Merged

Fix install script to match actual release asset filenames#104
robzolkos merged 1 commit intomasterfrom
rz/fix-install-script-103

Conversation

@robzolkos
Copy link
Collaborator

@robzolkos robzolkos commented Mar 17, 2026

Summary

This aligns install script with current binaries (3.0.3) - the install script will need to be redone once new binaries are created when v4 ships.

  • Fix binary filename pattern from fizzy_{version}_{os}_{arch}.tar.gz to fizzy-{os}-{arch} to match actual release assets
  • Fix checksum filename from checksums.txt to SHA256SUMS-{os}-{arch}.txt
  • Remove archive extraction step — assets are bare binaries, not archives
  • Reject unsupported Windows ARM64 early with a clear message instead of a cryptic curl 404

Fixes #103


Summary by cubic

Fix install script to match actual release asset names and per-platform checksum files, and remove archive handling. This prevents 404s and ensures checksum verification works.

  • Bug Fixes
    • Download fizzy-{os}-{arch} (or .exe on Windows) instead of archived filenames.
    • Verify with SHA256SUMS-{os}-{arch}.txt and compare the single hash.
    • Remove extraction; copy the binary directly and set execute permissions.
    • Fail fast on Windows ARM64 with a clear message and link to releases.

Written for commit 35d39b7. Summary will update on new commits.

The script constructed archive filenames like `fizzy_3.0.3_linux_amd64.tar.gz`
but actual release assets are bare binaries (`fizzy-linux-amd64`) with
per-platform checksum files (`SHA256SUMS-linux-amd64.txt`). Also rejects
unsupported Windows ARM64 with a clear message instead of a cryptic 404.

Fixes #103
Copilot AI review requested due to automatic review settings March 17, 2026 16:35
@robzolkos robzolkos requested a review from a team as a code owner March 17, 2026 16:35
@github-actions github-actions bot added the bug Something isn't working label Mar 17, 2026
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

@robzolkos robzolkos merged commit ab5910b into master Mar 17, 2026
21 checks passed
@robzolkos robzolkos deleted the rz/fix-install-script-103 branch March 17, 2026 16:38
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the scripts/install.sh curl-based installer to download the correct release artifact names and checksum files, and to handle unsupported platforms more clearly.

Changes:

  • Switches installer downloads from versioned archives to expected “bare binary” asset names.
  • Updates checksum download filename and simplifies checksum parsing.
  • Removes archive extraction and adds an early error for Windows ARM64.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +37 to 45
# Download binary
BINARY_NAME="fizzy-${OS}-${ARCH}"
if [ "$OS" = "windows" ]; then
EXT="zip"
BINARY_NAME="fizzy-${OS}-${ARCH}.exe"
fi

ARCHIVE="fizzy_${VERSION#v}_${OS}_${ARCH}.${EXT}"
DOWNLOAD_URL="https://github.com/$REPO/releases/download/${VERSION}/${ARCHIVE}"
CHECKSUMS_URL="https://github.com/$REPO/releases/download/${VERSION}/checksums.txt"
DOWNLOAD_URL="https://github.com/$REPO/releases/download/${VERSION}/${BINARY_NAME}"
CHECKSUMS_URL="https://github.com/$REPO/releases/download/${VERSION}/SHA256SUMS-${OS}-${ARCH}.txt"

echo "Verifying checksum..."
cd "$TMPDIR"
EXPECTED=$(awk -v f="$ARCHIVE" '$2 == f {print $1}' checksums.txt)
EXPECTED=$(awk '{print $1}' checksums.txt)
Comment on lines 69 to 72
echo "Checksum verified."

# Verify cosign signature (if cosign available)
if command -v cosign >/dev/null 2>&1; then
SIG_URL="https://github.com/$REPO/releases/download/${VERSION}/checksums.txt.sig"
CERT_URL="https://github.com/$REPO/releases/download/${VERSION}/checksums.txt.pem"
if curl -fsSL "$SIG_URL" -o checksums.txt.sig 2>/dev/null && \
curl -fsSL "$CERT_URL" -o checksums.txt.pem 2>/dev/null; then
echo "Verifying cosign signature..."
if cosign verify-blob \
--certificate checksums.txt.pem \
--signature checksums.txt.sig \
--certificate-identity-regexp="https://github.com/$REPO/.github/workflows/release.yml@refs/tags/" \
--certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
checksums.txt 2>/dev/null; then
echo "Signature verified."
else
echo "ERROR: Signature verification failed"
exit 1
fi
fi
fi

# Extract
echo "Extracting..."
if [ "$EXT" = "zip" ]; then
unzip -q "$ARCHIVE" -d extract
else
mkdir -p extract
tar -xzf "$ARCHIVE" -C extract
fi

# Install
mkdir -p "$INSTALL_DIR"
Comment on lines +23 to +27
if [ "$OS" = "windows" ] && [ "$ARCH" = "arm64" ]; then
echo "Windows ARM64 is not currently supported. See https://github.com/basecamp/fizzy-cli/releases for available builds."
exit 1
fi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Install script downloads wrong artifact filename (404 on Linux)

2 participants