diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index c67e630f8a22..000000000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Benchmark -on: - pull_request: - branches: [master] - types: [opened, reopened, synchronize] -concurrency: - group: benchmark-${{ github.ref }} - cancel-in-progress: true -jobs: - benchmark: - name: Benchmark - runs-on: ubuntu-latest - steps: - - name: Install rust - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - name: Checkout base - uses: actions/checkout@v2 - with: - ref: master - - name: Bench base - run: cargo bench -- --output-format bencher | tee output.txt - - name: Save base benchmark - uses: pksunkara/github-action-benchmark@v1 - with: - tool: cargo - output-file-path: output.txt - external-data-json-path: ./benchmark-data.json - read-commit-id: true - - name: Checkout pull request - uses: actions/checkout@v2 - with: - clean: false - - name: Bench pull request - run: cargo bench -- --output-format bencher | tee output.txt - - name: Compare benchmarks - uses: pksunkara/github-action-benchmark@v2 - with: - tool: cargo - output-file-path: output.txt - external-data-json-path: ./benchmark-data.json - github-token: ${{ github.token }} - annotate-always: true diff --git a/.github/workflows/ci-pr.yml b/.github/workflows/ci-pr.yml new file mode 100644 index 000000000000..496b66bb6a6c --- /dev/null +++ b/.github/workflows/ci-pr.yml @@ -0,0 +1,61 @@ +name: CI-PR +on: + pull_request: + branches: [master] +concurrency: + group: ci-pr-${{ github.ref }} + cancel-in-progress: true +jobs: + ci-pr: + name: CI-PR + needs: [test, msrv] + runs-on: ubuntu-latest + steps: + - name: Done + run: exit 0 + test: + name: Tests + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + rust: [stable] + flags: ["--no-default-features --features 'std cargo'", "--features 'wrap_help yaml regex'"] + runs-on: ${{ matrix.os }} + steps: + - name: Install rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: ${{ matrix.rust }} + override: true + - name: Cache Builds + uses: Swatinem/rust-cache@v1 + - name: Checkout + uses: actions/checkout@v2 + - name: Compile + run: cargo test --all-targets --no-run ${{ matrix.flags }} + - name: Test + run: cargo test --all-targets ${{ matrix.flags }} + msrv: + name: "Check MSRV: 1.54.0" + runs-on: ubuntu-latest + steps: + - name: Install rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: 1.54.0 # MSRV + override: true + - name: Cache Builds + uses: Swatinem/rust-cache@v1 + - name: Checkout + uses: actions/checkout@v2 + - name: Default features + run: cargo check --all-targets + - name: All features + Debug + run: cargo check --all-targets --features "wrap_help yaml regex debug" + - name: No features + run: cargo check --all-targets --no-default-features --features "std cargo" + - name: UI Tests + run: cargo test --package clap_derive -- ui diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 69b434e7f9e9..636f0b2f1ff7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,16 +2,13 @@ name: CI on: push: branches: [master, staging, trying] - pull_request: - branches: [master] - types: [opened, reopened, synchronize] concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: ci: name: CI - needs: [test, wasm, lint] + needs: [test, wasm] runs-on: ubuntu-latest steps: - name: Done @@ -179,60 +176,3 @@ jobs: with: command: check args: --target ${{ matrix.target }} --features "yaml regex" - lint: - name: Linting - runs-on: ubuntu-latest - steps: - - name: Install rust - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - components: rustfmt, clippy - - name: Checkout - uses: actions/checkout@v2 - - name: Clippy for almost no features - uses: actions-rs/cargo@v1 - with: - command: clippy - args: --no-default-features --features "std cargo" -p clap:3.0.0-beta.4 - - name: Clippy for all features - uses: actions-rs/cargo@v1 - with: - command: clippy - args: --features "wrap_help yaml regex" -- -D warnings - - name: Format check - uses: actions-rs/cargo@v1 - with: - command: fmt - args: -- --check - coverage: - name: Coverage - continue-on-error: true - runs-on: ubuntu-latest - steps: - - name: Install rust - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly - components: llvm-tools-preview - override: true - - name: Checkout - uses: actions/checkout@v2 - - name: Install llvm-cov - uses: actions-rs/install@v0.1 - with: - crate: cargo-llvm-cov - version: 0.1.0-alpha.4 - use-tool-cache: true - - name: Coverage - uses: actions-rs/cargo@v1 - with: - command: llvm-cov - args: --features "wrap_help yaml regex" --lcov --output-path lcov.info - - name: Coveralls - uses: coverallsapp/github-action@master - with: - path-to-lcov: lcov.info - github-token: ${{ secrets.github_token }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 000000000000..0de31903c881 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,39 @@ +name: Coverage +on: + pull_request: + branches: [master] + push: + branches: [master, staging, trying] +concurrency: + group: coverage-${{ github.ref }} + cancel-in-progress: true +jobs: + coverage: + name: Coverage + continue-on-error: true + runs-on: ubuntu-latest + steps: + - name: Install rust + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + components: llvm-tools-preview + override: true + - name: Checkout + uses: actions/checkout@v2 + - name: Install llvm-cov + uses: actions-rs/install@v0.1 + with: + crate: cargo-llvm-cov + version: 0.1.0-alpha.4 + use-tool-cache: true + - name: Coverage + uses: actions-rs/cargo@v1 + with: + command: llvm-cov + args: --features "wrap_help yaml regex" --lcov --output-path lcov.info + - name: Coveralls + uses: coverallsapp/github-action@master + with: + path-to-lcov: lcov.info + github-token: ${{ secrets.github_token }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000000..912ef1b04f7c --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,40 @@ +name: Lint +on: + pull_request: + branches: [master] + push: + branches: [master, staging, trying] +concurrency: + group: lint-${{ github.ref }} + cancel-in-progress: true +jobs: + lint: + name: Linting + runs-on: ubuntu-latest + steps: + - name: Install rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + components: rustfmt, clippy + - name: Cache Builds + uses: Swatinem/rust-cache@v1 + - name: Checkout + uses: actions/checkout@v2 + - name: Clippy for almost no features + uses: actions-rs/cargo@v1 + with: + command: clippy + args: --no-default-features --features "std cargo" + - name: Clippy for all features + uses: actions-rs/cargo@v1 + with: + command: clippy + args: --features "wrap_help yaml regex" -- -D warnings + - name: Format check + uses: actions-rs/cargo@v1 + with: + command: fmt + args: -- --check diff --git a/bors.toml b/bors.toml index 8491ef8c1b2b..6b67a4b046b7 100644 --- a/bors.toml +++ b/bors.toml @@ -2,7 +2,7 @@ status = [ "CI", ] pr_status = [ - "CI", + "CI-PR, Linting", ] timeout_sec = 7200 prerun_timeout_sec = 7200