39 lines
1.0 KiB
YAML
39 lines
1.0 KiB
YAML
name: Deploy Caddy
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
deploy:
|
|
if: github.event_name == 'push'
|
|
runs-on: vps-runner
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Backup current config
|
|
run: |
|
|
sudo cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.backup
|
|
sudo cp -r /etc/caddy/conf.d /etc/caddy/conf.d.backup
|
|
|
|
- name: Deploy configs
|
|
run: |
|
|
sudo cp Caddyfile /etc/caddy/
|
|
sudo cp -r conf.d/* /etc/caddy/conf.d/
|
|
sudo cp ssl/*.pem /etc/caddy/ssl/ || true
|
|
|
|
- name: Validate deployed config
|
|
run: sudo caddy validate --config /etc/caddy/Caddyfile
|
|
|
|
- name: Reload Caddy
|
|
run: |
|
|
sudo systemctl restart caddy || {
|
|
echo "Reload failed, checking status:"
|
|
sudo systemctl status caddy --no-pager
|
|
sudo journalctl -xeu caddy.service --no-pager -n 50
|
|
exit 1
|
|
}
|
|
|
|
- name: Check Caddy status
|
|
run: sudo systemctl status caddy --no-pager |