pyo3 0.14.5

Bindings to Python interpreter
Documentation
name: guide

on:
  push:
    branches:
      - main
  pull_request:
  release:
    types: [published]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: ubuntu-latest
    outputs:
      tag_name: ${{ steps.prepare_tag.outputs.tag_name }}
    steps:
      - uses: actions/checkout@v2

      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          profile: minimal

      - name: Setup mdBook
        uses: peaceiris/actions-mdbook@v1
        with:
          mdbook-version: "0.4.10"

      - name: Prepare tag
        id: prepare_tag
        run: |
          TAG_NAME="${GITHUB_REF##*/}"
          echo "::set-output name=tag_name::${TAG_NAME}"

      # This builds the book in gh-pages-build. See https://github.com/rust-lang-nursery/mdBook/issues/698
      - name: Build the guide
        run: mdbook build -d ../gh-pages-build guide
        env:
          PYO3_VERSION_TAG: ${{ steps.prepare_tag.outputs.tag_name }}

        # This adds the docs to gh-pages-build/doc
      - name: Build the doc
        run: |
          cargo +nightly rustdoc --lib --no-default-features --features="macros num-bigint num-complex hashbrown indexmap serde multiple-pymethods" -- --cfg docsrs
          cp -r target/doc gh-pages-build/doc
          echo "<meta http-equiv=refresh content=0;url=pyo3/index.html>" > gh-pages-build/doc/index.html

      - name: Deploy
        if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'release' }}
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./gh-pages-build/
          destination_dir: ${{ steps.prepare_tag.outputs.tag_name }}
          full_commit_message: "Upload documentation for ${{ steps.prepare_tag.outputs.tag_name }}"

  release:
    needs: build
    runs-on: ubuntu-latest
    if: ${{ github.event_name == 'release' }}
    steps:
      - name: Create latest tag redirects
        env:
          TAG_NAME: ${{ needs.build.outputs.tag_name }}
        run: |
          mkdir public
          echo "<meta http-equiv=refresh content=0;url='$TAG_NAME/'>" > public/index.html
          ln -sfT $TAG_NAME public/latest

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public/
          full_commit_message: "Release ${{ needs.build.outputs.tag_name }}"
          keep_files: true