Files
Retro_HA/.gitea/workflows/documentation.yml
Krzysztof Cieślik 9a9f9e518f
All checks were successful
Update Wiki Documentation / generate-docs (push) Successful in 2m12s
ci: fix gitea wiki 500 errors by stripping .md from links and using static router
2026-06-13 22:39:38 +02:00

82 lines
3.0 KiB
YAML

name: Update Wiki Documentation
on:
push:
branches:
- main
jobs:
generate-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Build Markdown Docs
run: |
chmod +x gradlew
./gradlew dokkaGfm
- name: Sync to Wiki
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_ACTOR: ${{ github.actor }}
run: |
git config --global user.name "Gitea Bot"
git config --global user.email "bot@gitea.io"
WIKI_URL="https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@gitea.archvium.eu/KrzysztofC/Retro_HA.wiki.git"
# Jeśli repozytorium jest puste, clone może zwrócić błąd, więc robimy fallback
git clone "$WIKI_URL" wiki_dir || (mkdir wiki_dir && cd wiki_dir && git init && git remote add origin "$WIKI_URL" && cd ..)
# Usuwamy stare pliki (oprócz .git)
find wiki_dir -mindepth 1 -maxdepth 1 ! -name '.git' -exec rm -rf {} +
# Kopiujemy nowe pliki ze standardowej lokalizacji Dokka MultiModule (jeśli istnieje)
# lub z pojedynczych modułów
if [ -d "build/dokka/gfm" ]; then
cp -r build/dokka/gfm/* wiki_dir/
else
# Fallback dla pojedynczych modułów
cp -r shared/build/dokka/gfm/* wiki_dir/ 2>/dev/null || true
cp -r app/build/dokka/gfm/* wiki_dir/ 2>/dev/null || true
fi
cd wiki_dir
# Gitea Wiki źle radzi sobie z linkami zawierającymi rozszerzenie .md w URL.
# Usuwamy .md z linków wewnętrznych za pomocą Perla (pomijamy linki http/https).
find . -type f -name "*.md" -exec perl -pi -e 's/\]\((?!http)(.*?)\.md(?:#(.*?))?\)/\]\($1#$2\)/g' {} +
# Sprzątanie pustych anchorów (jeśli #$2 było puste, zostaje '#' na końcu, usuwamy to)
find . -type f -name "*.md" -exec perl -pi -e 's/#\)/)/g' {} +
# Tworzymy statyczną stronę Home.md.
# Kopiowanie index.md psuło linki relatywne, więc tworzymy prosty router.
echo "# RetroHA Developer Wiki" > Home.md
echo "Welcome to the autogenerated API documentation." >> Home.md
echo "" >> Home.md
if [ -d "shared" ]; then
echo "- [Shared Module API Reference](shared/index)" >> Home.md
fi
if [ -d "app" ]; then
echo "- [App Module API Reference](app/index)" >> Home.md
fi
git add .
if ! git diff --cached --quiet; then
git commit -m "docs: auto-update wiki from CI/CD"
# Wypychamy na gałąź 'main', skoro Gitea ustawiła ją jako domyślną.
git branch -M main
git push -u origin main --force
else
echo "No changes to sync."
fi