51 lines
No EOL
1.6 KiB
YAML
51 lines
No EOL
1.6 KiB
YAML
name: update neo with compose files
|
|
run-name: update on ${{ github.sha }}
|
|
on: [push]
|
|
jobs:
|
|
validate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: install docker-compose
|
|
run: |
|
|
apt update -y
|
|
apt install -y \
|
|
docker-compose
|
|
- name: check docker-compose
|
|
run: |
|
|
cd ${{ github.workspace }}
|
|
DC_ARGS=""
|
|
for f in docker-compose.*.yml; do
|
|
DC_ARGS="-f $f"
|
|
done
|
|
docker-compose $DC_ARGS config
|
|
update:
|
|
needs: [validate]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: setup ssh
|
|
run: |
|
|
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 }}" |