diff --git a/.woodpecker.yml b/.woodpecker.yml index 7737b5f..22d9f94 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -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/