Add Woodpecker CI pipeline for staging deploys
This commit is contained in:
parent
709f8cb32e
commit
abeb1462f4
65
.woodpecker.yml
Normal file
65
.woodpecker.yml
Normal file
@ -0,0 +1,65 @@
|
||||
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]
|
||||
|
||||
deploy-backend:
|
||||
image: alpine
|
||||
secrets: [staging_deploy_key]
|
||||
commands:
|
||||
- apk add --no-cache openssh-client
|
||||
- mkdir -p ~/.ssh
|
||||
- printf '%s\n' "$STAGING_DEPLOY_KEY" > ~/.ssh/id_ed25519
|
||||
- chmod 600 ~/.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
|
||||
secrets: [staging_deploy_key]
|
||||
commands:
|
||||
- apk add --no-cache openssh-client
|
||||
- mkdir -p ~/.ssh
|
||||
- printf '%s\n' "$STAGING_DEPLOY_KEY" > ~/.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
|
||||
Loading…
x
Reference in New Issue
Block a user