Skip to content

ci: add installer.sh test automation#30

Merged
miguelsanchez-upsun merged 6 commits intomainfrom
test-installer-sh
Apr 10, 2026
Merged

ci: add installer.sh test automation#30
miguelsanchez-upsun merged 6 commits intomainfrom
test-installer-sh

Conversation

@pjcdawkins
Copy link
Copy Markdown
Contributor

@pjcdawkins pjcdawkins commented Mar 15, 2026

Summary

  • Add a GitHub Actions workflow to test installer.sh on each supported OS/distro
  • Default flow tests (no INSTALL_METHOD): the installer auto-detects the package manager (apt on Debian/Ubuntu, yum on Fedora, apk on Alpine, homebrew on macOS)
  • Raw download tests: VERSION triggers the raw method on Linux; INSTALL_METHOD=raw for macOS
  • CI is overridden to empty in the default flow jobs so the installer doesn't auto-select raw in GitHub Actions
  • workflow_dispatch accepts a VERSION input for testing prereleases
  • Add a local Docker-based test script (scripts/test/installer.sh) for quick iteration

Generated with Claude Code

Copilot AI review requested due to automatic review settings March 15, 2026 22:01
Copy link
Copy Markdown
Contributor

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

Adds CI and local automation to validate installer.sh across multiple platforms/methods, improving confidence that install paths work across common distros and macOS.

Changes:

  • Introduces a local Docker-based test runner (scripts/test/installer.sh) for Linux installer methods.
  • Adds a GitHub Actions workflow (.github/workflows/test-installer.yml) to test installer.sh across a Linux container matrix and macOS methods.
  • Adds support for passing a specific VERSION via workflow dispatch input to test pre-releases.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
scripts/test/installer.sh Local Docker test harness to exercise installer.sh across several Linux distros/methods.
.github/workflows/test-installer.yml CI workflow to run installer.sh in a Linux container matrix plus macOS (homebrew/raw).

💡 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.

pjcdawkins and others added 5 commits April 10, 2026 11:47
Add a GitHub Actions workflow that tests installer.sh across distros:
- Linux: Debian (apt), Ubuntu (apt), Fedora (yum), Alpine (apk), Debian (raw)
- macOS: homebrew and raw methods

Also add a local Docker-based test script (scripts/test/installer.sh) for
quick iteration without pushing to CI.

Tests run against published packages/releases. The installer script itself
comes from the current commit so changes to it are tested even though the
installed packages come from live repos.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Show all Docker output (installer progress and errors) instead of
suppressing it. Use -qq/-q flags on package managers to reduce noise
from prerequisite installs while keeping installer output visible.

Add a comment noting that macOS methods are CI-only.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The raw install method needs /releases/latest on GitHub, which only
returns non-prerelease versions. When only pre-releases exist, this
fails. Allow passing a specific version to work around this.

Local script: VERSION=5.0.4 scripts/test/installer.sh
Workflow: workflow_dispatch input field

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Set shell: sh for linux job (Alpine lacks bash)
- Quote VERSION env var properly in Docker script
- Only pass GITHUB_TOKEN for the raw install method

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Restructure tests to focus on the default (auto-detected) install method
for each distro, rather than forcing INSTALL_METHOD. This better reflects
what users actually experience.

- Linux default tests: override CI="" so the installer auto-detects the
  package manager (apt/yum/apk) instead of always selecting raw
- Separate linux-raw and macos-raw jobs for the raw download path
- Raw tests accept a VERSION input for testing prereleases
- Local test script: default tests have no INSTALL_METHOD; raw test runs
  only when VERSION is set

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resolves Node.js 20 deprecation warnings.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@miguelsanchez-upsun miguelsanchez-upsun merged commit ffb380d into main Apr 10, 2026
9 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants