name: Docs Preview on: pull_request: workflow_dispatch: inputs: pr_number: required: true type: string # ensure job runs sequentially so pushing to the preview branch doesn't conflict concurrency: group: ci-docs-preview env: IROH_FORCE_STAGING_RELAYS: "1" jobs: preview_docs: permissions: write-all timeout-minutes: 30 name: Docs preview if: ${{ (github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' ) && !github.event.pull_request.head.repo.fork }} runs-on: ubuntu-latest env: RUSTC_WRAPPER: "sccache" SCCACHE_GHA_ENABLED: "on" SCCACHE_CACHE_SIZE: "50G" PREVIEW_PATH: pr/${{ github.event.pull_request.number || inputs.pr_number }}/docs steps: - uses: actions/checkout@v5 - uses: dtolnay/rust-toolchain@master with: toolchain: nightly-2025-10-09 - name: Install sccache uses: mozilla-actions/sccache-action@v0.0.9 - name: Generate Docs run: cargo doc --workspace --all-features --no-deps env: RUSTDOCFLAGS: --cfg iroh_docsrs - name: Deploy Docs to Preview Branch uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./target/doc/ destination_dir: ${{ env.PREVIEW_PATH }} publish_branch: generated-docs-preview - name: Find Docs Comment uses: peter-evans/find-comment@v4 id: fc with: issue-number: ${{ github.event.pull_request.number || inputs.pr_number }} comment-author: 'github-actions[bot]' body-includes: Documentation for this PR has been generated - name: Get current timestamp id: get_timestamp run: echo "TIMESTAMP=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV - name: Create or Update Docs Comment uses: peter-evans/create-or-update-comment@v5 with: issue-number: ${{ github.event.pull_request.number || inputs.pr_number }} comment-id: ${{ steps.fc.outputs.comment-id }} body: | Documentation for this PR has been generated and is available at: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/${{ env.PREVIEW_PATH }}/iroh_gossip/ Last updated: ${{ env.TIMESTAMP }} edit-mode: replace