name: Deploy Monorepo to Opt on: [push] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 with: fetch-depth: 1 - name: Sync and Launch Nextcloud run: | mkdir -p /opt/docker/nextcloud # Force overwrite the compose file cp -f ./ovh/nextcloud.yml /opt/docker/nextcloud/docker-compose.yml cd /opt/docker/nextcloud # Force recreation ensures changes in the .yml are applied docker compose up -d --force-recreate --remove-orphans - name: Sync and Launch Plex run: | mkdir -p /opt/docker/plex # Force overwrite the compose file cp -f ./ovh/plex.yml /opt/docker/plex/docker-compose.yml cd /opt/docker/plex # Recreate even if image hasn't changed to ensure config updates docker compose up -d --force-recreate --remove-orphans - name: Sync and Launch CV run: | # Clean old files to ensure the build context is fresh rm -rf /opt/docker/cv/* mkdir -p /opt/docker/cv # Sync entire folder (Dockerfile, index.html, etc) cp -r ./cv/. /opt/docker/cv/ cd /opt/docker/cv # Build forces Docker to re-read the synced files for the new image docker compose up -d --build --force-recreate --remove-orphans - name: Cleanup run: | # Remove dangling images left over from the CV rebuild docker image prune -f