This repository has been archived on 2023-05-02. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
neo/.github/workflows/update-server.yml
Didier 932103545d
All checks were successful
update neo with compose files / validate the new configuration (push) Successful in 29s
update neo with compose files / deploy the config on the server (push) Successful in 5s
second try
2023-04-30 21:14:00 +02:00

54 lines
1.7 KiB
YAML

name: update neo with compose files
run-name: update on ${{ github.sha }}
on: [push]
jobs:
validate:
name: validate the new configuration
runs-on: ubuntu-latest
steps:
- name: install packages
run: |
apt update -y
apt install -y docker-compose
- uses: actions/checkout@v3
- name: validate files
run: |
set -e
DC_ARGS=""
for file in docker-compose.*.yml; do
DC_ARGS="-f $file "
done
docker-compose $DC_ARGS config -q
deploy:
name: deploy the config on the server
needs: [validate]
runs-on: ubuntu-latest
steps:
- name: setup ssh
run: |
set -e
mkdir -p ~/.ssh/
echo "$SSH_KEY" > ~/.ssh/staging.key
chmod 600 ~/.ssh/staging.key
cat >>~/.ssh/config <<END
Host staging
HostName $SSH_HOST
Port $SSH_PORT
User $SSH_USER
IdentityFile ~/.ssh/staging.key
StrictHostKeyChecking no
END
env:
SSH_HOST: neo.ixvd.net
SSH_PORT: ${{ secrets.SSH_PORT }}
SSH_USER: automation
SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
- name: update git
run: ssh staging srvctl -fn neo mm u git
- name: clean docker compose
run: ssh staging srvctl -fn neo mm c
- name: enforce new config
run: ssh staging srvctl -fn neo mm e
- name: send ping to ntfy
if: always()
run: "curl -d '${{ job.status }}: ${{ github.sha }}\n https://git.ixvd.net/${{ github.repository }}/actions/runs/${{ github.run_number }}' https://push.ixvd.net/${{ secrets.NTFY_TOPIC }}"