when: - event: push branch: main - event: pull_request variables: - &node_image node:24-slim - &pnpm_setup | corepack enable corepack prepare pnpm@10.23.0 --activate steps: install: image: *node_image commands: - *pnpm_setup - pnpm install --frozen-lockfile build-backend: image: *node_image commands: - *pnpm_setup - cd backend && NODE_OPTIONS=--max-old-space-size=4096 pnpm build depends_on: [install] build-admin: image: *node_image commands: - *pnpm_setup - cd apps/admin && pnpm build depends_on: [install] debug-secret: image: alpine:3.21 secrets: [staging_deploy_key] commands: - echo "SECRET_LENGTH=$(echo -n \"$STAGING_DEPLOY_KEY\" | wc -c)" - echo "$STAGING_DEPLOY_KEY" | base64 -d > /tmp/key_test - wc -l /tmp/key_test - head -1 /tmp/key_test depends_on: [build-backend] deploy-backend: image: alpine:3.21 secrets: [staging_deploy_key] commands: - apk add --no-cache openssh-client - mkdir -p ~/.ssh - echo "$STAGING_DEPLOY_KEY" | base64 -d > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh-keygen -y -f ~/.ssh/id_ed25519 - ssh-keyscan -H staging.rebreak.org > ~/.ssh/known_hosts 2>/dev/null - tar czf backend-output.tar.gz -C backend/.output . - scp -i ~/.ssh/id_ed25519 backend-output.tar.gz root@staging.rebreak.org:/srv/rebreak/backend/.output-incoming.tar.gz - ssh -i ~/.ssh/id_ed25519 root@staging.rebreak.org 'bash /srv/rebreak/scripts/deploy-from-artifact.sh' depends_on: [build-backend] when: - event: push branch: main deploy-admin: image: alpine:3.21 secrets: [staging_deploy_key] commands: - apk add --no-cache openssh-client - mkdir -p ~/.ssh - echo "$STAGING_DEPLOY_KEY" | base64 -d > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - ssh-keyscan -H admin.staging.rebreak.org > ~/.ssh/known_hosts 2>/dev/null - tar czf admin-output.tar.gz -C apps/admin/.output . - scp -i ~/.ssh/id_ed25519 admin-output.tar.gz root@staging.rebreak.org:/srv/rebreak/apps/admin/.output-incoming.tar.gz - ssh -i ~/.ssh/id_ed25519 root@staging.rebreak.org 'bash /srv/rebreak/scripts/deploy-admin-from-artifact.sh' depends_on: [build-admin] when: - event: push branch: main # Woodpecker CI