name: Generate man pages on: push: branches: - '**' paths: - '**.ronn' - '**/ronn.yml' permissions: contents: read jobs: ronn: name: Ronn runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install ronn run: sudo apt-get update && sudo apt-get install -y ronn - name: Run ronn run: bash -O globstar -c 'ronn **/*.ronn' - name: Undo email mangling # rdiscount randomizes the output for no good reason, which causes # changes to always get committed. Sigh. # https://github.com/davidfstr/rdiscount/blob/6b1471ec3/ext/generate.c#L781-L795 run: |- for f in doc/*.html; do awk '/Filippo Valsorda/ { $0 = "
Filippo Valsorda age@filippo.io
" } { print }' "$f" > "$f.tmp" mv "$f.tmp" "$f" done - name: Upload generated files uses: actions/upload-artifact@v3 with: name: man-pages path: | doc/*.1 doc/*.html commit: name: Commit changes needs: ronn permissions: contents: write runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Download generated files uses: actions/download-artifact@v2 with: name: man-pages path: doc/ - name: Commit and push if changed run: |- git config user.name "GitHub Actions" git config user.email "actions@users.noreply.github.com" git add doc/ git commit -m "doc: regenerate groff and html man pages" || exit 0 git push