diff --git a/action.yml b/action.yml index 1e1d58d..efc4bc5 100644 --- a/action.yml +++ b/action.yml @@ -196,7 +196,19 @@ runs: # Install Claude Code if no custom executable is provided if [ -z "${{ inputs.path_to_claude_code_executable }}" ]; then echo "Installing Claude Code..." - curl -fsSL https://claude.ai/install.sh | bash -s 2.0.50 + for attempt in 1 2 3; do + echo "Installation attempt $attempt..." + if timeout 120 bash -c 'curl -fsSL https://claude.ai/install.sh | bash -s -- 2.0.50'; then + echo "Claude Code installed successfully" + break + fi + 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" else echo "Using custom Claude Code executable: ${{ inputs.path_to_claude_code_executable }}" diff --git a/base-action/action.yml b/base-action/action.yml index 8949bdc..7ebfb64 100644 --- a/base-action/action.yml +++ b/base-action/action.yml @@ -118,7 +118,19 @@ runs: run: | if [ -z "${{ inputs.path_to_claude_code_executable }}" ]; then echo "Installing Claude Code..." - curl -fsSL https://claude.ai/install.sh | bash -s 2.0.50 + for attempt in 1 2 3; do + echo "Installation attempt $attempt..." + if timeout 120 bash -c 'curl -fsSL https://claude.ai/install.sh | bash -s -- 2.0.50'; then + echo "Claude Code installed successfully" + break + fi + 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 echo "Using custom Claude Code executable: ${{ inputs.path_to_claude_code_executable }}" # Add the directory containing the custom executable to PATH