name: Rust on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: strategy: matrix: os: ["ubuntu-latest"] rust_channel: ["stable", "beta", "nightly"] include: - rust_channel: "stable" os: "macOS-latest" runs-on: ${{matrix.os}} steps: - uses: actions/checkout@v4 with: submodules: true - uses: dtolnay/rust-toolchain@master with: toolchain: ${{matrix.rust_channel}} - run: cargo xtask check - run: cargo xtask test - run: cargo xtask test-release features: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - uses: dtolnay/rust-toolchain@stable - run: cargo xtask features cross: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - uses: dtolnay/rust-toolchain@stable with: targets: i686-unknown-linux-gnu, powerpc64-unknown-linux-gnu - uses: taiki-e/install-action@v2 with: tool: cross - run: cargo xtask cross msrv: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - uses: dtolnay/rust-toolchain@1.65.0 - uses: dtolnay/rust-toolchain@1.76.0 - run: cargo xtask msrv rustfmt: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt - run: cargo xtask fmt doc: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - run: cargo xtask doc coverage: runs-on: ubuntu-latest container: image: xd009642/tarpaulin options: --security-opt seccomp=unconfined steps: - uses: actions/checkout@v4 with: submodules: true - uses: dtolnay/rust-toolchain@stable - run: cargo xtask coverage_lcov - name: Upload to Coveralls uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: './lcov.info'