ci: add Woodpecker CI workflow
All checks were successful
ci/woodpecker/push/deploy Pipeline was successful
All checks were successful
ci/woodpecker/push/deploy Pipeline was successful
This uses some trickery to make it DRY across 'dev' and 'prod' deployments, which only need to change a few lines. I'm surprised it even works!
This commit is contained in:
parent
f16929c288
commit
58eabe1745
66
.woodpecker/deploy.yml
Normal file
66
.woodpecker/deploy.yml
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
labels:
|
||||||
|
type: exec
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- TYPE: dev
|
||||||
|
MAKE_TARGET: build-dev
|
||||||
|
SSH_TARGET: ssh_target_dev
|
||||||
|
- TYPE: prod
|
||||||
|
MAKE_TARGET: build-prod
|
||||||
|
SSH_TARGET: ssh_target
|
||||||
|
|
||||||
|
# Run the correct matrix build on the correct branch
|
||||||
|
when:
|
||||||
|
evaluate: |
|
||||||
|
CI_PIPELINE_EVENT in ["push", "cron", "deployment", "manual"]
|
||||||
|
and ((CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH) == ("${TYPE}" == "prod"))
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
- name: check
|
||||||
|
image: bash
|
||||||
|
commands:
|
||||||
|
- nix flake check
|
||||||
|
|
||||||
|
- name: build (${TYPE})
|
||||||
|
image: bash
|
||||||
|
commands:
|
||||||
|
# If dev, include drafts and future articles, change base URL
|
||||||
|
- nix develop -c make ${MAKE_TARGET}
|
||||||
|
|
||||||
|
- name: deploy (${TYPE})
|
||||||
|
image: bash
|
||||||
|
environment:
|
||||||
|
# Trailing slash to synchronize the folder's *content* to the target
|
||||||
|
- SYNC_SOURCE=public/
|
||||||
|
secrets:
|
||||||
|
- source: ssh_key
|
||||||
|
target: sync_key
|
||||||
|
- source: ssh_port
|
||||||
|
target: sync_port
|
||||||
|
- source: ${SSH_TARGET}
|
||||||
|
target: sync_target
|
||||||
|
- source: ssh_user
|
||||||
|
target: sync_username
|
||||||
|
- source: ssh_host
|
||||||
|
target: sync_host
|
||||||
|
commands:
|
||||||
|
- "nix run github:ambroisie/nix-config#drone-rsync"
|
||||||
|
|
||||||
|
- name: notify
|
||||||
|
image: bash
|
||||||
|
secrets:
|
||||||
|
- source: matrix_homeserver
|
||||||
|
target: address
|
||||||
|
- source: matrix_password
|
||||||
|
target: pass
|
||||||
|
- source: matrix_roomid
|
||||||
|
target: room
|
||||||
|
- source: matrix_username
|
||||||
|
target: user
|
||||||
|
commands:
|
||||||
|
- nix run github:ambroisie/matrix-notifier
|
||||||
|
when:
|
||||||
|
status:
|
||||||
|
- failure
|
||||||
|
- success
|
Loading…
Reference in a new issue