futtern/.forgejo/workflows/release.yml
lubiana 55d18fffd1
Some checks failed
/ ls (pull_request) Successful in 33s
/ ls (push) Successful in 33s
/ ls (release) Failing after 16s
#25
2024-06-30 10:18:24 +02:00

48 lines
1.8 KiB
YAML

on:
release
jobs:
ls:
runs-on: docker
container:
image: git.php.fail/lubiana/container/php:ci
steps:
- name: Manually checkout
env:
REPO: '${{ github.repository }}'
TOKEN: '${{ secrets.GITHUB_TOKEN }}'
BRANCH: '${{ env.GITHUB_REF_NAME }}'
GIT_SERVER: 'hannover.ccc.de/gitlab'
run: |
git clone --branch $GITHUB_REF_NAME https://${TOKEN}@${GIT_SERVER}/${REPO}.git .
git fetch
git checkout ${{ github.head_ref }}
- name: prepare deploy
run: sh ./deploy/prepare-deploy.sh
- name: deploy
env:
HOST: 'web.server.c3h'
USERNAME: 'c3h-futtern'
TARGETDIR: '/home/c3h-futtern/futtern'
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
run: |
mkdir -p ~/.ssh/
# Print the SSH key, replacing newline characters with actual new lines
echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
# Set appropriate permissions for the SSH key
chmod 600 ~/.ssh/id_rsa
# Add the remote host's key to the known_hosts file to avoid authenticity confirmation
ssh-keyscan -H $HOST >> ~/.ssh/known_hosts
# stop services
ssh ${USERNAME}@${HOST} systemctl --user stop pod-futtern
# backup database
ssh ${USERNAME}@${HOST} cp ${TARGETDIR}/app/var/data.db ${TARGETDIR}/backup/data.db-$(date +"%Y%m%d%H%M%S")
# only keep last 10 backupts
ssh ${USERNAME}@${HOST} ls -1tr ${TARGETDIR}/backup/ | head -n -10 | xargs -d '\n' rm -f --
# SCP files to the remote host
rsync -avz --delete deploy/ ${USERNAME}@${HOST}:${TARGETDIR} --exclude=var
# run update script
ssh ${USERNAME}@${HOST} /home/c3h-futtern/futtern/update.sh