fastobo-owl 0.3.3

OWL language mapping for ontologies in the OBO flat file format 1.4
Documentation
name: Test

on:
  - push
  - pull_request

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
    - name: Check code format
      run: cargo fmt --all -- --check
  test:
    name: Test (${{ matrix.rust-toolchain }})
    needs: lint
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust-toolchain:
          - stable
          - beta
          - nightly
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@master
      with:
        toolchain: ${{ matrix.rust-toolchain }}
    - name: Setup cache for cargo
      uses: actions/cache@v4
      with:
        path: target
        key: ${{ runner.os }}-cargo-${{ matrix.rust-toolchain }}
    - name: Test with ${{ matrix.feature }} feature
      run: cargo test
  cover:
    name: Coverage (${{ matrix.cpu }})
    runs-on: ubuntu-latest
    needs: test
    if: "!startsWith(github.ref, 'refs/tags/v')"
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
    - name: Setup Rust stable
      uses: dtolnay/rust-toolchain@stable
    - name: Setup cache for cargo
      uses: actions/cache@v3
      with:
        path: target
        key: ${{ runner.os }}-cargo-${{ matrix.rust-toolchain }}
    - name: Install cargo-tarpaulin
      run: cargo install cargo-tarpaulin
    - name: Measure code coverage on CPU ${{ matrix.cpu }}
      run: cargo tarpaulin -v --out Xml --ciserver github-actions
    - name: Upload to Codecov
      uses: codecov/codecov-action@v3
      with:
        env_vars: OS
        fail_ci_if_error: false
        token: ${{ secrets.CODECOV_TOKEN }}
        codecov_curl_args: "--globoff"
        verbose: true
  publish:
    needs: test
    runs-on: ubuntu-latest
    environment: Crates.io
    if: "startsWith(github.ref, 'refs/tags/v')"
    name: Publish
    steps:
    - name: Checkout code
      uses: actions/checkout@v1
    - uses: dtolnay/rust-toolchain@stable
    - name: Package and publish declaration crate
      run: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }}
  release:
    environment: GitHub Releases
    runs-on: ubuntu-latest
    if: "startsWith(github.ref, 'refs/tags/v')"
    name: Release
    needs: publish
    permissions: write-all
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
    - name: Release a Changelog
      uses: rasmus-saks/release-a-changelog-action@v1.2.0
      with:
        github-token: '${{ secrets.GITHUB_TOKEN }}'