From 9815409aa387898ee3b6e83704d0db3313fb14d2 Mon Sep 17 00:00:00 2001 From: Zaine Date: Tue, 2 Jun 2026 11:35:28 +0100 Subject: [PATCH] cicd --- .gitea/workflows/build.yml | 60 ++++++++++++++++++++++++++++++++++++ .obsidian/workspace.json | 2 ++ systemd/quartz-notes.service | 18 +++++++++++ 3 files changed, 80 insertions(+) create mode 100644 .gitea/workflows/build.yml create mode 100644 systemd/quartz-notes.service diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..9a54eb4 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,60 @@ +name: Build Quartz Notes + +on: + push: + branches: + - master + + schedule: + - cron: "0 0 * * *" + + workflow_dispatch: + +jobs: + build: + runs-on: site-build + env: + VAULT_HOME: /home/zaine/master-folder/vault-master + QUARTZ_HOME: /home/zaine/Documents/quartz + SERVICE_NAME: quartz-notes.service + SUDO_PASSWORD: ${{ secrets.SUDO_PASSWORD }} + + steps: + - uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Verify toolchain + run: | + node --version + npm --version + npx --version + + - name: Update vault content + run: | + set -euo pipefail + + git -C "$VAULT_HOME" fetch origin master + git -C "$VAULT_HOME" checkout master + git -C "$VAULT_HOME" pull --ff-only origin master + + - name: Build Quartz + run: | + set -euo pipefail + + test "$(readlink -f "$QUARTZ_HOME/content")" = "$(readlink -f "$VAULT_HOME")" + + cd "$QUARTZ_HOME" + npm exec -- quartz build + + - name: Install and restart Quartz service + run: | + set -euo pipefail + echo "$SUDO_PASSWORD" | sudo -S install -m 0644 "$VAULT_HOME/systemd/$SERVICE_NAME" "/etc/systemd/system/$SERVICE_NAME" + echo "$SUDO_PASSWORD" | sudo -S systemctl daemon-reload + echo "$SUDO_PASSWORD" | sudo -S systemctl enable "$SERVICE_NAME" + echo "$SUDO_PASSWORD" | sudo -S systemctl restart "$SERVICE_NAME" + systemctl is-active --quiet "$SERVICE_NAME" diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 9010c89..519dabb 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -182,6 +182,8 @@ }, "active": "2512d0b75322b268", "lastOpenFiles": [ + "systemd/quartz-notes.service", + "systemd", "Dailies/2026-06-02.md", "Untitled.canvas", "Index.md", diff --git a/systemd/quartz-notes.service b/systemd/quartz-notes.service new file mode 100644 index 0000000..e9bae08 --- /dev/null +++ b/systemd/quartz-notes.service @@ -0,0 +1,18 @@ +[Unit] +Description=Quartz notes server +After=network-online.target +Wants=network-online.target + +[Service] +Type=simple +User=zaine +Group=zaine +WorkingDirectory=/home/zaine/Documents/quartz +Environment=NODE_ENV=production +Environment=PATH=/usr/local/bin:/usr/bin:/bin +ExecStart=/usr/bin/node ./quartz/bootstrap-cli.mjs build --serve --port 8080 +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target