53 lines
1.7 KiB
YAML
53 lines
1.7 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 and Launch Nextcloud
|
|
run: |
|
|
mkdir -p /opt/docker/nextcloud
|
|
# rsync -v (verbose) ensures the file is updated on the host
|
|
rsync -v ./ovh/nextcloud.yml /opt/docker/nextcloud/docker-compose.yml
|
|
|
|
cd /opt/docker/nextcloud
|
|
# --force-recreate ensures Docker actually picks up the new file
|
|
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 |