chemfiles 0.10.41

Modern library for chemistry trajectories reading and writing
Documentation
name: Test

on:
  push:
    branches: [master]
  pull_request:
    # Check all PR

jobs:
  tests:
    runs-on: ${{ matrix.os }}
    name: ${{ matrix.name }}
    strategy:
      matrix:
        include:
          - name: Linux
            os: ubuntu-20.04
            rust-version: stable
            rust-target: x86_64-unknown-linux-gnu
          - name: rustc 1.63
            os: ubuntu-20.04
            rust-version: "1.63"
            rust-target: x86_64-unknown-linux-gnu
          - name: Windows MSVC
            os: windows-2019
            rust-version: stable
            rust-target: x86_64-pc-windows-msvc
          # This is failing, it needs to be investigated
          # - name: 64-bit MinGW Windows
          #   os: windows-2019
          #   rust-version: stable
          #   rust-target: x86_64-pc-windows-gnu
          - name: macOS
            os: macos-11
            rust-version: stable
            rust-target: x86_64-apple-darwin
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true
      - name: setup rust
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.rust-version }}
          targets: ${{ matrix.rust-target }}
      - name: run tests in debug mode
        run: cargo test --all --target ${{ matrix.rust-target }} -- --test-threads=2
      - name: run tests in release mode
        run: cargo test --all --release --target ${{ matrix.rust-target }} -- --test-threads=2
      - name: run extra checks
        run: ./scripts/check-used-functions.py

  coverage:
    runs-on: ubuntu-20.04
    env:
      KCOV_VERSION: c18c77531f3fc00440571a9a04dd33ee4fcd4c39
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true

      - name: setup rust
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: stable

      - name: install cargo tarpaulin
        uses: taiki-e/install-action@v2
        with:
          tool: cargo-tarpaulin

      - name: collect coverage
        run: |
          cargo tarpaulin --out Xml

      - uses: codecov/codecov-action@v3
        with:
          fail_ci_if_error: true
          verbose: true


  # check that the code can still build the C++ library from sources
  build-from-source:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true
      - name: setup rust
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          target: x86_64-unknown-linux-gnu
      - name: run tests
        run: cargo test --all --all-features