501953c636
Actions: checkout, setup-go, setup-node, setup-aws Dispatcher: Lambda → EC2 Spot (ephemeral, self-terminating) Images: base, go, node, docker, deploy, godot Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
60 lines
2.1 KiB
YAML
60 lines
2.1 KiB
YAML
# tinqs/ci/setup-aws — Tinqs Studio CI
|
|
# Installs AWS CLI and optionally logs into ECR.
|
|
# Detects Alpine (apk/pip), Debian (apt-get), and Amazon Linux/RHEL (dnf).
|
|
# Skips install if AWS CLI is already present (pre-baked AMI).
|
|
# Credentials come from the runner environment (IAM instance profile on EC2,
|
|
# task role on Fargate) — 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 dnf &>/dev/null || command -v apt-get &>/dev/null; then
|
|
# Amazon Linux / Debian — official installer (glibc available)
|
|
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
|