Compare commits

...

4 Commits

Author SHA1 Message Date
Ashwin Bhat
6626337d20 fix: suppress exit code from killed timeout watchdog process
When killing the timeout watchdog process after successful installation,
`wait` returns exit code 143 (SIGTERM). Add `|| true` to prevent this
from causing the step to fail.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 20:52:16 -05:00
Ashwin Bhat
ed4a4d26bc fix: use cross-platform timeout for Claude Code installation
The GNU `timeout` command is not available on macOS, which breaks
the action on macOS self-hosted runners. Replace with a portable
bash approach using background process management.

Also extracts the version into a CLAUDE_CODE_VERSION variable for
easier maintenance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-24 20:45:51 -05:00
Ashwin Bhat
798cf0988d chore: add retry loop to Claude Code installation (#694)
* chore: add --debug and retry loop to Claude Code installation

Adds 2-minute timeout with up to 3 retry attempts for installation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: remove unsupported --debug flag from install script

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-21 16:52:35 -08:00
GitHub Actions
8458f4399d chore: bump Claude Code version to 2.0.50 2025-11-21 23:16:27 +00:00
2 changed files with 48 additions and 4 deletions

View File

@@ -195,8 +195,30 @@ runs:
# Install Claude Code if no custom executable is provided # Install Claude Code if no custom executable is provided
if [ -z "${{ inputs.path_to_claude_code_executable }}" ]; then if [ -z "${{ inputs.path_to_claude_code_executable }}" ]; then
echo "Installing Claude Code..." CLAUDE_CODE_VERSION="2.0.50"
curl -fsSL https://claude.ai/install.sh | bash -s 2.0.49 echo "Installing Claude Code v${CLAUDE_CODE_VERSION}..."
for attempt in 1 2 3; do
echo "Installation attempt $attempt..."
# Cross-platform timeout (GNU timeout not available on macOS)
(curl -fsSL https://claude.ai/install.sh | bash -s -- "$CLAUDE_CODE_VERSION") &
install_pid=$!
( sleep 120; kill $install_pid 2>/dev/null ) &
timeout_pid=$!
if wait $install_pid 2>/dev/null; then
kill $timeout_pid 2>/dev/null || true
wait $timeout_pid 2>/dev/null || true
echo "Claude Code installed successfully"
break
fi
kill $timeout_pid 2>/dev/null || true
wait $timeout_pid 2>/dev/null || true
if [ $attempt -eq 3 ]; then
echo "Failed to install Claude Code after 3 attempts"
exit 1
fi
echo "Installation timed out or failed, retrying..."
sleep 5
done
echo "$HOME/.local/bin" >> "$GITHUB_PATH" echo "$HOME/.local/bin" >> "$GITHUB_PATH"
else else
echo "Using custom Claude Code executable: ${{ inputs.path_to_claude_code_executable }}" echo "Using custom Claude Code executable: ${{ inputs.path_to_claude_code_executable }}"

View File

@@ -117,8 +117,30 @@ runs:
shell: bash shell: bash
run: | run: |
if [ -z "${{ inputs.path_to_claude_code_executable }}" ]; then if [ -z "${{ inputs.path_to_claude_code_executable }}" ]; then
echo "Installing Claude Code..." CLAUDE_CODE_VERSION="2.0.50"
curl -fsSL https://claude.ai/install.sh | bash -s 2.0.49 echo "Installing Claude Code v${CLAUDE_CODE_VERSION}..."
for attempt in 1 2 3; do
echo "Installation attempt $attempt..."
# Cross-platform timeout (GNU timeout not available on macOS)
(curl -fsSL https://claude.ai/install.sh | bash -s -- "$CLAUDE_CODE_VERSION") &
install_pid=$!
( sleep 120; kill $install_pid 2>/dev/null ) &
timeout_pid=$!
if wait $install_pid 2>/dev/null; then
kill $timeout_pid 2>/dev/null || true
wait $timeout_pid 2>/dev/null || true
echo "Claude Code installed successfully"
break
fi
kill $timeout_pid 2>/dev/null || true
wait $timeout_pid 2>/dev/null || true
if [ $attempt -eq 3 ]; then
echo "Failed to install Claude Code after 3 attempts"
exit 1
fi
echo "Installation timed out or failed, retrying..."
sleep 5
done
else else
echo "Using custom Claude Code executable: ${{ inputs.path_to_claude_code_executable }}" echo "Using custom Claude Code executable: ${{ inputs.path_to_claude_code_executable }}"
# Add the directory containing the custom executable to PATH # Add the directory containing the custom executable to PATH