55 lines
1.8 KiB
YAML
55 lines
1.8 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: Install dependencies
|
|
run: |
|
|
# If using Alpine-based runner (standard)
|
|
if command -v apk >/dev/null; then
|
|
apk add --no-cache rsync
|
|
# If using Ubuntu/Debian-based runner
|
|
elif command -v apt-get >/dev/null; then
|
|
apt-get update && apt-get install -y rsync
|
|
fi
|
|
- name: Sync Nextcloud
|
|
run: |
|
|
# 1. Kill the file first to ensure no permission 'append' issues
|
|
rm -f /opt/docker/nextcloud/docker-compose.yml
|
|
mkdir -p /opt/docker/nextcloud
|
|
|
|
# 2. Copy the fresh file from your repo
|
|
cp -f ./ovh/nextcloud.yml /opt/docker/nextcloud/docker-compose.yml
|
|
|
|
# 3. Deploy
|
|
cd /opt/docker/nextcloud
|
|
docker compose up -d --force-recreate --remove-orphans
|
|
- name: Sync and Launch Plex
|
|
run: |
|
|
mkdir -p /opt/docker/plex
|
|
rsync -v ./ovh/plex.yml /opt/docker/plex/docker-compose.yml
|
|
|
|
cd /opt/docker/plex
|
|
docker compose up -d --force-recreate --remove-orphans
|
|
|
|
- name: Sync and Launch CV
|
|
run: |
|
|
mkdir -p /opt/docker/cv
|
|
# -a (archive) preserves permissions; --delete removes old junk
|
|
rsync -av --delete ./cv/ /opt/docker/cv/
|
|
|
|
cd /opt/docker/cv
|
|
# --build is required to refresh your custom HTML/Dockerfile
|
|
docker compose up -d --build --force-recreate --remove-orphans
|
|
|
|
- name: Cleanup
|
|
run: |
|
|
# Removes old CV images so your Xeon disk doesn't fill up
|
|
docker image prune -f |