Skip to content

Conversation

@svarlamov
Copy link
Member

@svarlamov svarlamov commented Feb 8, 2026

Motivation

  • Ensure the installer scripts (install.sh / install.ps1) are exercised automatically across supported OSes and shells.
  • Validate that Claude Code hooks and shell PATH changes are installed correctly by the scripts.
  • Allow PRs to test against the repository's freshly built git-ai binary instead of the latest release to catch regressions in the local build + install script interaction.

Description

  • Add support for a local-binary override by honoring GIT_AI_LOCAL_BINARY in install.sh and install.ps1, copying the provided binary instead of downloading a release.
  • Add .github/workflows/install-scripts-local.yml which builds git-ai from source and runs install.sh/install.ps1 in CI (Ubuntu, macOS, Windows), prepares a fake HOME and a fake claude binary, and verifies shell config updates and Claude hooks.
  • Add .github/workflows/install-scripts-nightly.yml which runs the public install scripts nightly (and on-demand) across Ubuntu/macOS/Windows, prepares a fake environment for Claude detection, and verifies PATH and hook installation.
  • Ensure CI steps set HOME/USERPROFILE via GITHUB_ENV and add fake bin directories to GITHUB_PATH so the installer detects the fake claude binary and writes ~/.claude/settings.json.

Testing

  • No automated tests were executed in this change; the new GitHub Actions workflows are added and will run on PR/push (local-build workflow) and on schedule (nightly workflow).
  • The local workflow is configured to run cargo build --release --bin git-ai and then run the install scripts with GIT_AI_LOCAL_BINARY set, and the nightly workflow is configured to exercise the public install endpoints; both will report results when CI runs.

Codex Task


Open with Devin

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

View 5 additional findings in Devin Review.

Open in Devin Review

Copy link
Contributor

Choose a reason for hiding this comment

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

🟡 install.ps1 prints misleading "Downloading" message when using a local binary override

When GIT_AI_LOCAL_BINARY is set, the install.ps1 script unconditionally prints "Downloading git-ai (release: local)..." at line 299, even though no download occurs — the binary is copied locally. The install.sh script correctly handles this with a conditional message ("Using local git-ai binary" vs "Downloading git-ai" at lines 246/252).

Root Cause

The Write-Host at install.ps1:299 was not updated to be conditional when the local binary override was added. In install.sh, the message was properly split:

if [ -n "${GIT_AI_LOCAL_BINARY:-}" ]; then
    echo "Using local git-ai binary (release: ${RELEASE_TAG})..."
    ...
else
    echo "Downloading git-ai (release: ${RELEASE_TAG})..."
    ...
fi

But in install.ps1, the message at line 299 is always printed before the conditional logic at line 316:

Write-Host ("Downloading git-ai (release: {0})..." -f $releaseTag)  # line 299 - always says "Downloading"
...
if (-not [string]::IsNullOrWhiteSpace($env:GIT_AI_LOCAL_BINARY)) {  # line 316
    Copy-Item ...  # actually copies, not downloads
}

Impact: Users and CI logs will show a misleading "Downloading" message when the local binary override is in use, causing confusion during debugging.

(Refers to line 299)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Contributor

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 new potential issue.

View 10 additional findings in Devin Review.

Open in Devin Review

@svarlamov svarlamov enabled auto-merge February 8, 2026 19:24
@svarlamov svarlamov added this pull request to the merge queue Feb 8, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Feb 8, 2026
@svarlamov svarlamov merged commit e5455d5 into main Feb 8, 2026
11 checks passed
@svarlamov svarlamov deleted the codex/create-github-actions-for-install-scripts-testing branch February 8, 2026 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant