From 6e1ee689ea8e44bcde65633cad63e80806ba27f6 Mon Sep 17 00:00:00 2001 From: Adrian Altner Date: Wed, 22 Apr 2026 00:13:18 +0200 Subject: [PATCH] Add deployment workflow and configure webmention token handling --- .forgejo/workflows/deploy.yml | 54 +++++++++++++++++++++++++++++++++++ Containerfile | 3 ++ 2 files changed, 57 insertions(+) create mode 100644 .forgejo/workflows/deploy.yml diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml new file mode 100644 index 0000000..b95dfa0 --- /dev/null +++ b/.forgejo/workflows/deploy.yml @@ -0,0 +1,54 @@ +name: Deploy + +on: + push: + branches: [main] + workflow_dispatch: + +jobs: + deploy: + runs-on: self-hosted + env: + DEPLOY_DIR: /opt/websites/adrian-altner.de + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Sync to deploy directory + run: | + sudo rsync -a --delete \ + --exclude='.env' \ + --exclude='.env.production' \ + --exclude='.git/' \ + --exclude='node_modules/' \ + ./ "${DEPLOY_DIR}/" + + - name: Build image + run: | + cd "${DEPLOY_DIR}" + sudo podman build \ + --build-arg WEBMENTION_TOKEN="${{ secrets.WEBMENTION_TOKEN }}" \ + -t localhost/adrian-altner.de:latest . + + - name: Restart service + run: sudo systemctl restart podman-compose@adrian-altner.de.service + + - name: Prune + run: | + sudo podman container prune -f 2>/dev/null || true + sudo podman image prune --external -f 2>/dev/null || true + sudo podman image prune -f 2>/dev/null || true + sudo podman builder prune -af 2>/dev/null || true + + - name: Send webmentions + env: + WEBMENTION_APP_TOKEN: ${{ secrets.WEBMENTION_APP_TOKEN }} + run: | + if [ -z "$WEBMENTION_APP_TOKEN" ]; then + echo "No WEBMENTION_APP_TOKEN — skipping." + exit 0 + fi + for feed in rss.xml en/rss.xml; do + curl -s -X POST "https://webmention.app/check?url=https://adrian-altner.de/${feed}&token=${WEBMENTION_APP_TOKEN}" \ + | grep -o '"status":"[^"]*"' || true + done diff --git a/Containerfile b/Containerfile index 0f3b060..06e85f9 100644 --- a/Containerfile +++ b/Containerfile @@ -1,5 +1,8 @@ FROM node:22-bookworm-slim AS build +ARG WEBMENTION_TOKEN="" +ENV WEBMENTION_TOKEN=$WEBMENTION_TOKEN + WORKDIR /app COPY package.json package-lock.json ./