ci: switch to node:20-slim and fix YAML indentation
ci/woodpecker/push/woodpecker Pipeline failed

Fix CI failure caused by YAML indentation issues and missing SSH client.

Changes:
1. Fix YAML indentation for build-and-deploy step
2. Switch from node:20-alpine to node:20-slim
3. Update SSH installation commands for Debian-based system
4. Add SSH client availability check

Benefits:
- node:20-slim may already include SSH client
- If not, uses apt-get instead of apk for installation
- Better compatibility with deployment tools

This should resolve the 'No pipeline steps available!' error.
This commit is contained in:
张翔
2026-03-30 11:41:07 +08:00
parent a314b5c370
commit 4761850502
+25 -24
View File
@@ -1,5 +1,5 @@
variables:
- &node_image node:20-alpine
- &node_image node:20-slim
steps:
install-deps:
@@ -112,29 +112,30 @@ steps:
- dev
build-and-deploy:
image: node:20-alpine
environment:
NODE_ENV: production
NEXT_TELEMETRY_DISABLED: 1
SSH_PRIVATE_KEY:
from_secret: ssh_private_key
depends_on:
- install-deps
- lint
- type-check
commands:
- echo "Installing SSH client"
- apk add --no-cache openssh-client rsync
- echo "Building production artifacts"
- npm run build
- echo "Build completed"
- ls -la dist/
- echo "Deploying to production"
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- echo "Pre-deployment checks"
- ssh root@139.155.109.62 "echo 'Server connection OK'"
image: *node_image
environment:
NODE_ENV: production
NEXT_TELEMETRY_DISABLED: 1
SSH_PRIVATE_KEY:
from_secret: ssh_private_key
depends_on:
- install-deps
- lint
- type-check
commands:
- echo "Checking SSH client availability"
- which ssh && echo "SSH client found" || echo "Installing SSH client"
- apt-get update && apt-get install -y openssh-client rsync
- echo "Building production artifacts"
- npm run build
- echo "Build completed"
- ls -la dist/
- echo "Deploying to production"
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- echo "Pre-deployment checks"
- ssh root@139.155.109.62 "echo 'Server connection OK'"
- ssh root@139.155.109.62 "df -h | grep -E '/$|/home'"
- echo "Syncing build artifacts to production server"
- rsync -avz --delete dist/ root@139.155.109.62:/home/novalon/docker-app/novalon-website/dist/