32 lines
1,021 B
YAML
32 lines
1,021 B
YAML
name: Deploy
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Install rsync
|
|
run: apt-get update -qq && apt-get install -y -qq rsync
|
|
|
|
# The job container only sees its own checkout — the live app lives
|
|
# at /mnt/user/appdata/lunch-notifier on the host, bind-mounted into
|
|
# this container at the same path (see runner container.options) so
|
|
# `docker compose`'s relative volume paths resolve against the real
|
|
# host directory rather than an ephemeral one. `.env` and `data/`
|
|
# are server-only and must survive every deploy.
|
|
- name: Sync source to deploy path
|
|
run: |
|
|
rsync -a --delete \
|
|
--exclude='.git' \
|
|
--exclude='.env' \
|
|
--exclude='data' \
|
|
./ /mnt/user/appdata/lunch-notifier/
|
|
|
|
- name: Rebuild and restart
|
|
working-directory: /mnt/user/appdata/lunch-notifier
|
|
run: docker compose up -d --build
|