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:
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user