maren/more-ci-work (#4)
All checks were successful
ci/woodpecker/push/build-and-deploy Pipeline was successful
All checks were successful
ci/woodpecker/push/build-and-deploy Pipeline was successful
starting to establish a reusable pattern for ssh+deploy.sh from woodpecker for deployments to turtle after this PR is merged i'll document here: https://wiki.bunk.computer/hypha/ci_-_woodpecker Reviewed-on: oxaliq/sorrel.dev#4 Co-authored-by: maren <git@stillgreenmoss.net> Co-committed-by: maren <git@stillgreenmoss.net>
This commit is contained in:
parent
c4f84f3de9
commit
016b945815
3 changed files with 64 additions and 35 deletions
|
@ -1,35 +0,0 @@
|
||||||
when:
|
|
||||||
branch:
|
|
||||||
include: [ main ]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
|
|
||||||
build:
|
|
||||||
image: debian:bookworm-slim
|
|
||||||
commands:
|
|
||||||
- apt update
|
|
||||||
# - rm -rf data/
|
|
||||||
# - rm -rf in-progress
|
|
||||||
- apt -yq install racket ca-certificates
|
|
||||||
- yes Y | raco pkg install --no-docs csv-reading
|
|
||||||
- raco exe sorrel.dev.rkt
|
|
||||||
- raco distribute dist sorrel.dev
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
image: alpine:latest
|
|
||||||
secrets: [ deploy_ssh_key ]
|
|
||||||
commands:
|
|
||||||
- apk add openssh
|
|
||||||
- mkdir ~/.ssh
|
|
||||||
- printf '%s\n' "$${DEPLOY_SSH_KEY}" > ~/.ssh/deploy_ssh_key
|
|
||||||
- printf "Host turtle.hup.is\n\tIdentityFile ~/.ssh/deploy_ssh_key\n\tUserKnownHostsFile=/dev/null\n\tStrictHostKeyChecking=no\n" > ~/.ssh/config
|
|
||||||
- chmod -R u=rwX,go= ~/.ssh
|
|
||||||
- mkdir oxaliq
|
|
||||||
- mv dist oxaliq/.
|
|
||||||
- mv source oxaliq/.
|
|
||||||
- mv static oxaliq/.
|
|
||||||
- scp -r oxaliq deploy@turtle.hup.is:~/
|
|
||||||
- ssh deploy@turtle.hup.is 'sudo rm -rf /srv/oxaliq || true && sudo mv oxaliq /srv/. && sudo systemctl restart sorreldotdev.service'
|
|
||||||
when:
|
|
||||||
# Only try to deploy if previous step is successful
|
|
||||||
status: success
|
|
32
.woodpecker/build-and-deploy.yml
Normal file
32
.woodpecker/build-and-deploy.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
when:
|
||||||
|
branch:
|
||||||
|
include: [ main ]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
|
||||||
|
build:
|
||||||
|
image: debian:bookworm-slim
|
||||||
|
commands:
|
||||||
|
- apt update
|
||||||
|
- apt -yq install racket ca-certificates
|
||||||
|
- yes Y | raco pkg install --no-docs csv-reading
|
||||||
|
- raco exe sorrel.dev.rkt
|
||||||
|
- raco distribute dist sorrel.dev
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
image: alpine:latest
|
||||||
|
secrets:
|
||||||
|
- deploy_ssh_key
|
||||||
|
commands:
|
||||||
|
- echo "SETTING UP SSH"
|
||||||
|
- apk add openssh-client
|
||||||
|
- mkdir -p $HOME/.ssh
|
||||||
|
- ssh-keyscan -t ed25519 turtle.hup.is >> $HOME/.ssh/known_hosts
|
||||||
|
- echo "$DEPLOY_SSH_KEY" > $HOME/.ssh/id_ed25519
|
||||||
|
- chmod 0600 $HOME/.ssh/id_ed25519
|
||||||
|
- echo "SSH SETUP DONE"
|
||||||
|
- echo "RUNNING DEPLOY SCRIPT"
|
||||||
|
- ./.woodpecker/deploy.sh
|
||||||
|
when:
|
||||||
|
# Only try to deploy if previous step is successful
|
||||||
|
status: success
|
32
.woodpecker/deploy.sh
Executable file
32
.woodpecker/deploy.sh
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# hello variables
|
||||||
|
host=deploy@turtle.hup.is
|
||||||
|
|
||||||
|
# organize the files
|
||||||
|
echo "ORGANIZING THE FILES NICELY"
|
||||||
|
mkdir oxaliq
|
||||||
|
mv dist oxaliq/.
|
||||||
|
mv source oxaliq/.
|
||||||
|
mv static oxaliq/.
|
||||||
|
|
||||||
|
# put them on the deployment target
|
||||||
|
echo "COPYING FILES TO DEPLOYMENT TARGET"
|
||||||
|
scp -r oxaliq "$host":~/
|
||||||
|
|
||||||
|
# do everything on the server that's necessary to run the new thing
|
||||||
|
# TODO make this not remove the old-working version until
|
||||||
|
# the new version is confirmed working
|
||||||
|
echo "SETTING OWNERSHIP AND PERMISSIONS"
|
||||||
|
ssh $host 'sudo chown -R sorreldotdev:sorreldotdev oxaliq/'
|
||||||
|
ssh $host 'sudo chmod -R 755 oxaliq/'
|
||||||
|
|
||||||
|
echo "REPLACING PREVIOUS DEPLOYMENT"
|
||||||
|
ssh $host 'sudo rm -rf /srv/oxaliq || true'
|
||||||
|
ssh $host 'sudo mv oxaliq /srv/.'
|
||||||
|
|
||||||
|
echo "RESTARTING SERVICE"
|
||||||
|
ssh $host 'sudo systemctl restart sorreldotdev.service'
|
||||||
|
|
||||||
|
echo "SUCCESS!"
|
||||||
|
exit 0
|
Loading…
Reference in a new issue