fix: Alpine compatibility + READMEs + roadmap

- setup-node: detect Alpine/Debian, use apk or NodeSource
- setup-aws: use pip on Alpine (musl), binary on Debian (glibc)
- setup-go: fix version parsing for Alpine (no grep -P)
- README per action with usage examples and input docs
- PLAN.md: roadmap for runner images, labels, Lambda dispatch
This commit is contained in:
2026-05-22 18:06:11 +01:00
parent 4be33e33f1
commit 1564c61acc
8 changed files with 206 additions and 12 deletions
+27
View File
@@ -0,0 +1,27 @@
# tinqs/ci/setup-node
Installs Node.js and optionally pnpm.
Detects Alpine vs Debian and uses the right package manager (`apk` or NodeSource). Skips installation if the correct major version is already present in the runner image.
## Usage
```yaml
- uses: tinqs/ci/setup-node@v1
```
### Options
```yaml
- uses: tinqs/ci/setup-node@v1
with:
node-version: '22' # default: 22
pnpm: 'true' # default: true
```
## Inputs
| Input | Default | Description |
|-------|---------|-------------|
| `node-version` | `22` | Node.js major version |
| `pnpm` | `true` | Install pnpm globally |
+18 -6
View File
@@ -1,11 +1,12 @@
# tinqs/ci/setup-node — Tinqs Studio CI
# Installs Node.js via NodeSource and optionally pnpm.
# Installs Node.js and optionally pnpm.
# Detects Alpine vs Debian and uses the right package manager.
# Skips install if the correct major version is already present (pre-baked runner image).
# Composite action — runs directly on the host.
# Author: Ozan + Claude Code — 2026-05-22
name: 'Tinqs Setup Node'
description: 'Install Node.js and pnpm (replaces actions/setup-node)'
description: 'Install Node.js and pnpm'
inputs:
node-version:
@@ -24,17 +25,28 @@ runs:
# Skip if already installed at correct major version
if command -v node &>/dev/null; then
CURRENT=$(node --version | grep -oP '\d+' | head -1)
CURRENT=$(node --version | sed 's/v//' | cut -d. -f1)
if [ "$CURRENT" = "$NODE_VERSION" ]; then
echo "Node $NODE_VERSION already installed"
node --version
[ "$INSTALL_PNPM" = "true" ] && command -v pnpm &>/dev/null && pnpm --version && exit 0
if [ "$INSTALL_PNPM" = "true" ] && command -v pnpm &>/dev/null; then
pnpm --version
exit 0
fi
fi
fi
echo "Installing Node.js $NODE_VERSION..."
curl -fsSL "https://deb.nodesource.com/setup_${NODE_VERSION}.x" | bash -
apt-get install -y nodejs
if command -v apk &>/dev/null; then
# Alpine
apk add --no-cache nodejs npm
elif command -v apt-get &>/dev/null; then
# Debian/Ubuntu
curl -fsSL "https://deb.nodesource.com/setup_${NODE_VERSION}.x" | bash -
apt-get install -y nodejs
else
echo "ERROR: unsupported package manager" && exit 1
fi
if [ "$INSTALL_PNPM" = "true" ]; then
npm install -g pnpm