49 lines
1.6 KiB
YAML
49 lines
1.6 KiB
YAML
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 |