docker restart does not re-read docker-compose.yml, so new bind mounts added to the compose file are ignored until containers are recreated. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.5 KiB
YAML
49 lines
1.5 KiB
YAML
name: Deploy Addons
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'addon/**'
|
|
- 'lobby-addon/**'
|
|
- 'hub-return-addon/**'
|
|
- 'easter-egg-addon/**'
|
|
- 'docker-compose.yml'
|
|
- 'scripts/**'
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Deploy via SSH
|
|
uses: appleboy/ssh-action@v1
|
|
with:
|
|
host: ${{ secrets.DEPLOY_HOST }}
|
|
username: ${{ secrets.DEPLOY_USER }}
|
|
password: ${{ secrets.DEPLOY_PASSWORD }}
|
|
port: 22
|
|
script: |
|
|
set -e
|
|
APP_DIR="$HOME/minecraft-multiworld"
|
|
|
|
# First run: clone. Subsequent: pull.
|
|
if [ ! -d "$APP_DIR/.git" ]; then
|
|
cd "$APP_DIR"
|
|
git init
|
|
git remote add origin https://git.silverlabs.uk/SilverLABS/minecraft-aiworld.git
|
|
git fetch origin main
|
|
git checkout -f origin/main -- addon/ lobby-addon/ hub-return-addon/ easter-egg-addon/ docker-compose.yml
|
|
else
|
|
cd "$APP_DIR"
|
|
git fetch origin main
|
|
git checkout -f origin/main -- addon/ lobby-addon/ hub-return-addon/ easter-egg-addon/ docker-compose.yml
|
|
fi
|
|
|
|
# Recreate containers so any new docker-compose volume mounts are applied,
|
|
# then restart remaining containers to pick up script changes
|
|
docker compose up -d --force-recreate
|
|
|
|
# Wait and verify
|
|
sleep 10
|
|
docker ps --filter "name=mc-" --format "{{.Names}}: {{.Status}}"
|