# tinqs/ci/setup-aws — Tinqs Studio CI
# Installs AWS CLI and optionally logs into ECR.
# Detects Alpine (musl) vs Debian (glibc) and uses the right install method.
# Credentials come from the runner environment (IAM task role on Fargate, instance
# profile on EC2/Lightsail) — no explicit key configuration needed.
# Composite action — runs directly on the host.
# Author: Ozan + Claude Code — 2026-05-22

name: 'Tinqs Setup AWS'
description: 'Install AWS CLI and optionally login to ECR'

inputs:
  region:
    description: 'AWS region'
    default: 'eu-west-1'
  ecr-login:
    description: 'Login to ECR (true/false)'
    default: 'false'
  ecr-repo:
    description: 'ECR repository URL (required if ecr-login is true)'
    default: ''

runs:
  using: 'composite'
  steps:
    - run: |
        REGION="${{ inputs.region }}"
        ECR_LOGIN="${{ inputs.ecr-login }}"
        ECR_REPO="${{ inputs.ecr-repo }}"

        # Install AWS CLI if missing
        if ! command -v aws &>/dev/null; then
          echo "Installing AWS CLI..."
          if command -v apk &>/dev/null; then
            # Alpine — use pip (AWS CLI v2 binary needs glibc)
            apk add --no-cache python3 py3-pip
            pip3 install --break-system-packages awscli 2>/dev/null || pip3 install awscli
          elif command -v apt-get &>/dev/null; then
            # Debian/Ubuntu — use official installer
            apt-get update && apt-get install -y unzip curl
            curl -fsSL https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o /tmp/awscli.zip
            unzip -q /tmp/awscli.zip -d /tmp/aws-install
            /tmp/aws-install/aws/install
            rm -rf /tmp/awscli.zip /tmp/aws-install
          else
            echo "ERROR: unsupported package manager" && exit 1
          fi
        fi

        aws --version

        # ECR login
        if [ "$ECR_LOGIN" = "true" ] && [ -n "$ECR_REPO" ]; then
          echo "Logging into ECR ($REGION)..."
          aws ecr get-login-password --region "$REGION" | \
            docker login --username AWS --password-stdin "$ECR_REPO"
          echo "ECR login OK"
        fi
      shell: bash
