将 crates 文档发布到 GitHub Pages

Posted on Feb 16, 2024
name: Deploy documentation
on:
  push:
    branches: [main]

env:
  CARGO_TERM_COLOR: always

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment:
      name: github-pages
      url: "https://ringsaturn.github.io/tzf-rs/tzf_rs"
    permissions:
      contents: read
      pages: write
      id-token: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: nightly
      - run: cargo +nightly doc --no-deps

      # https://github.com/actions/deploy-pages/issues/303
      - name: Fix permissions
        run: |
          chmod -c -R +rX "target/doc/" | while read line; do
            echo "::warning title=Invalid file permissions automatically fixed::$line"
          done          

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v2
        with:
          path: "./target/doc"

      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v3