| on: |
| push: # Run CI for all branches except GitHub merge queue tmp branches |
| branches-ignore: |
| - "gh-readonly-queue/**" |
| pull_request: # Run CI for PRs on any branch |
| merge_group: # Run CI for the GitHub merge queue |
| |
| name: Build |
| |
| env: |
| RUSTFLAGS: '--deny warnings' |
| |
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| rust: [stable] |
| TARGET: |
| - aarch64-unknown-linux-gnu |
| - aarch64-unknown-linux-musl |
| - arm-unknown-linux-gnueabi |
| - arm-unknown-linux-gnueabihf |
| - armv7-unknown-linux-gnueabihf |
| - i686-unknown-linux-gnu |
| - i686-unknown-linux-musl |
| # - loongarch64-unknown-linux-gnu |
| - powerpc-unknown-linux-gnu |
| # - powerpc64-unknown-linux-gnu |
| - powerpc64le-unknown-linux-gnu |
| - riscv64gc-unknown-linux-gnu |
| - s390x-unknown-linux-gnu |
| - x86_64-unknown-linux-gnu |
| - x86_64-unknown-linux-musl |
| |
| include: |
| # MSRV |
| - rust: 1.65.0 |
| TARGET: x86_64-unknown-linux-gnu |
| |
| # Test nightly but don't fail |
| - rust: nightly |
| TARGET: x86_64-unknown-linux-gnu |
| experimental: true |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ matrix.rust }} |
| target: ${{ matrix.TARGET }} |
| override: true |
| |
| - name: Build |
| uses: actions-rs/cargo@v1 |
| with: |
| command: build |
| args: --target=${{ matrix.TARGET }} |
| |
| - name: Build all features |
| uses: actions-rs/cargo@v1 |
| with: |
| command: build |
| args: --target=${{ matrix.TARGET }} --all-features |
| |
| - name: Test |
| uses: actions-rs/cargo@v1 |
| with: |
| use-cross: true |
| command: test |
| args: --target=${{ matrix.TARGET }} |
| |
| - name: Test all features |
| uses: actions-rs/cargo@v1 |
| with: |
| use-cross: true |
| command: test |
| args: --target=${{ matrix.TARGET }} --all-features |
| |
| checks: |
| runs-on: ubuntu-latest |
| |
| steps: |
| - uses: actions/checkout@v2 |
| - uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: stable |
| components: rustfmt |
| |
| - name: Doc |
| uses: actions-rs/cargo@v1 |
| with: |
| command: doc |
| |
| - name: Formatting |
| uses: actions-rs/cargo@v1 |
| with: |
| command: fmt |
| args: --all -- --check |
| |
| clippy: |
| runs-on: ubuntu-latest |
| env: |
| RUSTFLAGS: '--allow warnings' |
| steps: |
| - uses: actions/checkout@v2 |
| - uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: 1.65.0 |
| components: clippy |
| |
| - uses: actions-rs/clippy-check@v1 |
| with: |
| token: ${{ secrets.GITHUB_TOKEN }} |