All checks were successful
Deploy / deploy (push) Successful in 1m25s
Podman was reusing the RUN npm run build layer from before the vite.define token injection was added, causing webmentions to be built without the token. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
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: Secret check
|
|
env:
|
|
WEBMENTION_TOKEN: ${{ secrets.WEBMENTION_TOKEN }}
|
|
WEBMENTION_APP_TOKEN: ${{ secrets.WEBMENTION_APP_TOKEN }}
|
|
run: |
|
|
echo "WEBMENTION_TOKEN length: ${#WEBMENTION_TOKEN}"
|
|
echo "WEBMENTION_APP_TOKEN length: ${#WEBMENTION_APP_TOKEN}"
|
|
|
|
- name: Build image
|
|
run: |
|
|
cd "${DEPLOY_DIR}"
|
|
sudo podman build \
|
|
--no-cache \
|
|
--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
|