78 lines
2.4 KiB
YAML
78 lines
2.4 KiB
YAML
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
|