name: "CI" on: push: pull_request: env: CARGO_TERM_COLOR: always jobs: check: name: check runs-on: ubuntu-latest strategy: matrix: rust: - 1.60.0 - stable - beta # - nightly steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} override: true - uses: swatinem/rust-cache@v2 - name: cargo-check uses: actions-rs/cargo@v1 with: command: check deny: name: deny needs: check runs-on: ubuntu-latest strategy: matrix: checks: - advisories - bans licenses sources # Prevent sudden announcement of a new advisory from failing ci: continue-on-error: ${{ matrix.checks == 'advisories' }} steps: - uses: actions/checkout@v3 - name: cargo-deny uses: EmbarkStudios/cargo-deny-action@v1 with: command: check ${{ matrix.checks }} fmt: name: format needs: check runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: toolchain: 1.60.0 - run: rustup component add rustfmt - name: cargo-fmt uses: actions-rs/cargo@v1 with: command: fmt args: -- --check doc: name: doc runs-on: ubuntu-latest needs: check steps: - uses: actions/checkout@v3 - name: cargo-doc uses: actions-rs/cargo@v1 with: command: doc args: --workspace --no-deps --document-private-items test: needs: check name: test runs-on: ubuntu-latest strategy: matrix: rust: - 1.60.0 - stable - beta # - nightly steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} override: true - uses: swatinem/rust-cache@v2 - name: cargo-test uses: actions-rs/cargo@v1 with: command: test args: --all clippy: needs: check name: clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: toolchain: 1.60.0 override: true - uses: swatinem/rust-cache@v2 - run: rustup component add clippy - name: cargo-clippy run: cargo clippy --all --all-targets -- -D warnings dco-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@master with: fetch-depth: 0 - name: Setup Python uses: actions/setup-python@v4.7.0 with: python-version: '3.x' - name: Install gitlint run: pip install gitlint - run: gitlint --commits $(git merge-base origin/master HEAD).. license: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Check License Lines uses: kt3k/license_checker@v1.0.6 ci: name: CI if: ${{ success() }} needs: - check - clippy - dco-check - deny - doc - fmt - license - test runs-on: ubuntu-latest steps: - name: CI succeeded run: exit 0