Translations update from Hosted Weblate #131
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# GitHub Actions workflow for deploying MkDocs documentation to Cloudflare Pages | ||
Check failure on line 1 in .github/workflows/deploy-docs.yml
|
||
# This workflow builds and deploys your MkDocs site when changes are pushed to main | ||
name: Deploy MkDocs Documentation | ||
on: | ||
# Trigger on push to main branch | ||
push: | ||
branches: | ||
- main | ||
- master # Also support master branch | ||
# Only run when docs files change | ||
paths: | ||
- 'docs/**' | ||
- 'README.md' # README is synced to docs/index.md | ||
- 'mkdocs.yml' | ||
- 'requirements-docs.txt' | ||
- '.github/workflows/deploy-docs.yml' | ||
- 'scripts/fix-mkdocs-structure.ts' | ||
# Allow manual triggering from Actions tab | ||
workflow_dispatch: | ||
# Run on pull requests for preview deployments | ||
pull_request: | ||
branches: | ||
- main | ||
- master | ||
paths: | ||
- 'docs/**' | ||
- 'README.md' # README is synced to docs/index.md | ||
- 'mkdocs.yml' | ||
- 'requirements-docs.txt' | ||
- '.github/workflows/deploy-docs.yml' | ||
- 'scripts/fix-mkdocs-structure.ts' | ||
jobs: | ||
build-and-deploy: | ||
name: Build and Deploy MkDocs | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 10 | ||
# Required permissions for deployment | ||
permissions: | ||
contents: read | ||
deployments: write | ||
pull-requests: write # For PR preview comments | ||
id-token: write # For OIDC authentication (if needed) | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v5 | ||
with: | ||
fetch-depth: 0 # Fetch all history for git info and mkdocs-git-revision-date plugin | ||
- name: Setup Python | ||
uses: actions/setup-python@v6 | ||
with: | ||
python-version: '3.14' | ||
cache: 'pip' | ||
cache-dependency-path: 'requirements-docs.txt' | ||
- name: Install MkDocs and Dependencies | ||
run: | | ||
pip install --upgrade pip | ||
pip install -r requirements-docs.txt | ||
env: | ||
PIP_DISABLE_PIP_VERSION_CHECK: 1 | ||
# Setup pnpm before fixing docs structure | ||
- name: Setup pnpm | ||
uses: pnpm/action-setup@v4 | ||
# Setup Node.js with pnpm | ||
- name: Setup Node.js | ||
uses: actions/setup-node@v5 | ||
with: | ||
node-version: '22' | ||
cache: 'pnpm' | ||
# Install Node.js dependencies for the TypeScript script | ||
- name: Install Dependencies | ||
run: | | ||
pnpm install --frozen-lockfile | ||
- name: Fix Documentation Structure | ||
run: | | ||
# Fix duplicate navigation entries by moving overview pages to index.md | ||
pnpm run chore:fix-mkdocs-structure | ||
- name: Build MkDocs Site | ||
run: | | ||
# Build with strict mode but allow expected warnings | ||
mkdocs build --verbose || { | ||
EXIT_CODE=$? | ||
# Check if the only issue is expected warnings | ||
if mkdocs build 2>&1 | grep -E "WARNING.*(README|not found)" && \ | ||
[ $(mkdocs build 2>&1 | grep -c "ERROR") -eq 0 ]; then | ||
echo "✅ Build succeeded with expected warnings" | ||
mkdocs build --verbose | ||
else | ||
echo "❌ Build failed with unexpected errors" | ||
exit $EXIT_CODE | ||
fi | ||
} | ||
- name: Fix HTML Links | ||
run: | | ||
# Remove .md extensions from links in generated HTML | ||
pnpm tsx ./scripts/fix-html-links.ts site | ||
- name: Validate Built Site | ||
run: | | ||
# Basic validation that important files exist | ||
test -f site/index.html || (echo "ERROR: site/index.html not found" && exit 1) | ||
test -f site/sitemap.xml || (echo "ERROR: site/sitemap.xml not found" && exit 1) | ||
test -d site/assets || (echo "ERROR: site/assets directory not found" && exit 1) | ||
echo "✅ Site validation passed" | ||
- name: Deploy | ||
uses: ./.github/actions/deploy-to-cloudflare-pages | ||
if: github.repository == ${{ vars.REPO_MAIN }} && ${{secrets.CLOUDFLARE_API_TOKEN}} | ||
with: | ||
project_name: "trilium-docs" | ||
comment_body: "📚 Documentation preview is ready" | ||
production_url: "https://docs.triliumnotes.org" | ||
deploy_dir: "site" | ||
cloudflare_api_token: ${{ secrets.CLOUDFLARE_API_TOKEN }} | ||
cloudflare_account_id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | ||
github_token: ${{ secrets.GITHUB_TOKEN }} |