Files
novoyuuparosk-auto-wiki/.gitea/workflows/publish-songs.yml
T
2026-06-11 04:07:09 +00:00

83 lines
2.9 KiB
YAML

on:
workflow_call:
inputs:
SOURCE_REF:
description: "Commit SHA that was pushed to ncmr-songs"
required: true
type: string
SOURCE_BASE_REF:
description: "Commit SHA before the push (all-zeros = first push)"
required: true
type: string
FULL_PUBLISH:
description: "Re-publish every file regardless of diff"
required: false
type: boolean
default: false
jobs:
publish:
runs-on: ubuntu-latest
container:
image: pi5-16.local:3005/mikkeli/novoyuuparosk-wiki-runner:b2714ab
steps:
- name: Checkout ncmr-songs
env:
FAPAT: ${{ secrets.FAPAT }}
URL_TO_GITEA: ${{ vars.URL_TO_GITEA }}
run: |
git clone "http://mikkeli:${FAPAT}@${URL_TO_GITEA#http://}/mikkeli/ncmr-songs" ncmr-songs
git -C ncmr-songs checkout ${{ inputs.SOURCE_REF }}
- name: Checkout auto-wiki
env:
FAPAT: ${{ secrets.FAPAT }}
URL_TO_GITEA: ${{ vars.URL_TO_GITEA }}
run: git clone "http://mikkeli:${FAPAT}@${URL_TO_GITEA#http://}/mikkeli/novoyuuparosk-auto-wiki" auto-wiki
- name: Detect changed files
id: diff
run: |
BASE="${{ inputs.SOURCE_BASE_REF }}"
HEAD="${{ inputs.SOURCE_REF }}"
# All-zeros base means first push — publish everything
if [ -z "$BASE" ] || echo "$BASE" | grep -qE '^0+$'; then
echo "mode=all" >> "$GITHUB_OUTPUT"
else
git -C ncmr-songs diff --name-only "$BASE" "$HEAD" -- '*.md' \
| grep -v '^wip/' \
| grep -v '^README\.md' \
> /tmp/changed.txt 2>/dev/null || true
echo "Changed files:"
cat /tmp/changed.txt
echo "mode=incremental" >> "$GITHUB_OUTPUT"
echo "files=$(tr '\n' ' ' < /tmp/changed.txt)" >> "$GITHUB_OUTPUT"
fi
- name: Publish
env:
WIKI_API_URL: ${{ vars.WIKI_API_URL }}
WIKI_BASE_URL: ${{ vars.WIKI_BASE_URL }}
WIKI_BOT_USER: ${{ secrets.WIKI_BOT_USER }}
WIKI_BOT_PASSWORD: ${{ secrets.WIKI_BOT_PASSWORD }}
SOURCE_REF: ${{ inputs.SOURCE_REF }}
GITEA_REPO_URL: ${{ vars.URL_TO_GITEA }}/mikkeli/ncmr-songs
run: |
MODE="${{ steps.diff.outputs.mode }}"
if [ "$MODE" = "all" ] || [ "${{ inputs.FULL_PUBLISH }}" = "true" ]; then
python auto-wiki/pipelines/songs/publish.py \
--source-dir ncmr-songs \
--all
else
FILES="${{ steps.diff.outputs.files }}"
if [ -z "$FILES" ]; then
echo "No changed .md files detected. Nothing to publish."
exit 0
fi
# shellcheck disable=SC2086
python auto-wiki/pipelines/songs/publish.py \
--source-dir ncmr-songs \
--files $FILES
fi