llvm-plugin-inkwell 0.3.0

Inkwell aims to help you pen your own programming languages by safely wrapping llvm-sys.
Documentation
name: Test Suite and Doc

on: [push, pull_request]

env:
  CARGO_TERM_COLOR: always
  DOC_LLVM_FEATURE: llvm16-0
  DOC_LLVM_VERSION: '16.0'
  DOC_PATH: target/doc

jobs:
  tests:
    name: "LLVM ${{ matrix.llvm-version[0] }}: ${{ matrix.os }}"
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-20.04]
        llvm-version:
          - ["4.0", "4-0"]
          - ["5.0", "5-0"]
          - ["6.0", "6-0"]
          - ["7.0", "7-0"]
          - ["8.0", "8-0"]
          - ["9.0", "9-0"]
          - ["10.0", "10-0"]
          - ["11.0", "11-0"]
          - ["12.0", "12-0"]
          - ["13.0", "13-0"]
          - ["14.0", "14-0"]
          - ["15.0", "15-0"]
          - ["16.0", "16-0"]
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v3
      - name: Install LLVM and Clang
        uses: KyleMayes/install-llvm-action@v1
        with:
          version: ${{ matrix.llvm-version[0] }}
      - name: Build
        run: cargo build --release --features llvm${{ matrix.llvm-version[1] }} --verbose
      - name: Run tests
        run: cargo test --release --features llvm${{ matrix.llvm-version[1] }} --verbose
  doc:
    name: Documentation
    runs-on: ubuntu-latest
    needs: tests
    if: github.event_name == 'push' && github.ref == 'refs/heads/master'
    steps:
    - uses: actions/checkout@v3
    - uses: KyleMayes/install-llvm-action@v1
      with:
        version: ${{ env.DOC_LLVM_VERSION }}
    - name: Install Rust Nightly
      run: rustup toolchain install nightly
    - name: Build Documentation
      run: cargo +nightly doc --features ${{ env.DOC_LLVM_FEATURE }},nightly --verbose
    - name: Doc Index Page Redirection
      run: echo '<meta http-equiv="refresh" content="1; url=inkwell/index.html">' > ${{ env.DOC_PATH }}/index.html
    - name: Deploy Documentation
      uses: peaceiris/actions-gh-pages@v3
      with:
        github_token: ${{ secrets.GITHUB_TOKEN }}
        publish_dir: ${{ env.DOC_PATH }}
        force_orphan: true