mirror of https://github.com/tikv/client-rust.git
ci: upgrade action & use nextest instead of test for ut (#422)
* ci: upgrade action & use nextest instead of test Signed-off-by: ben1009 <liuhe1009@gmail.com> * fix DCO check Signed-off-by: ben1009 <liuhe1009@gmail.com> * back to use test in IT Signed-off-by: ben1009 <liuhe1009@gmail.com> * transaction: Support unsafe_destroy_range interface (#420) * add unsafe_destroy_range Signed-off-by: Ping Yu <yuping@pingcap.com> * polish Signed-off-by: Ping Yu <yuping@pingcap.com> * polish Signed-off-by: Ping Yu <yuping@pingcap.com> * fix compile error on lower version of rust Signed-off-by: Ping Yu <yuping@pingcap.com> --------- Signed-off-by: Ping Yu <yuping@pingcap.com> Signed-off-by: ben1009 <liuhe1009@gmail.com> * add install guid for nextest in readme Signed-off-by: ben1009 <liuhe1009@gmail.com> --------- Signed-off-by: ben1009 <liuhe1009@gmail.com> Signed-off-by: Ping Yu <yuping@pingcap.com> Co-authored-by: Ping Yu <yuping@pingcap.com>
This commit is contained in:
parent
d6560794f0
commit
788d6e211b
|
@ -3,6 +3,12 @@ on:
|
|||
push:
|
||||
branches:
|
||||
- master
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
name: CI
|
||||
|
||||
|
@ -11,14 +17,14 @@ jobs:
|
|||
name: check
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Protoc
|
||||
uses: arduino/setup-protoc@v1
|
||||
with:
|
||||
version: '3.x'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Rust Cache
|
||||
uses: Swatinem/rust-cache@v1.4.0
|
||||
uses: Swatinem/rust-cache@v2
|
||||
- name: make check
|
||||
run: make check
|
||||
- name: Catch unexpected changes in the generated code
|
||||
|
@ -31,14 +37,16 @@ jobs:
|
|||
CARGO_INCREMENTAL: 0
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Protoc
|
||||
uses: arduino/setup-protoc@v1
|
||||
with:
|
||||
version: '3.x'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Rust Cache
|
||||
uses: Swatinem/rust-cache@v1.4.0
|
||||
uses: Swatinem/rust-cache@v2
|
||||
- name: Install latest nextest release
|
||||
uses: taiki-e/install-action@nextest
|
||||
- name: unit test
|
||||
run: make unit-test
|
||||
|
||||
|
@ -48,14 +56,14 @@ jobs:
|
|||
CARGO_INCREMENTAL: 0
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install Protoc
|
||||
uses: arduino/setup-protoc@v1
|
||||
with:
|
||||
version: '3.x'
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Rust Cache
|
||||
uses: Swatinem/rust-cache@v1.4.0
|
||||
uses: Swatinem/rust-cache@v2
|
||||
- name: install tiup
|
||||
run: curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
|
||||
- name: start tiup playground
|
||||
|
@ -68,5 +76,7 @@ jobs:
|
|||
[[ "$(curl -I http://127.0.0.1:2379/pd/api/v1/regions 2>/dev/null | head -n 1 | cut -d$' ' -f2)" -ne "405" ]] || break
|
||||
sleep 1
|
||||
done
|
||||
- name: Install latest nextest release
|
||||
uses: taiki-e/install-action@nextest
|
||||
- name: integration test
|
||||
run: MULTI_REGION=1 make integration-test
|
||||
|
|
2
Makefile
2
Makefile
|
@ -20,7 +20,7 @@ check: generate
|
|||
cargo clippy --all-targets --features "${ALL_FEATURES}" -- -D clippy::all
|
||||
|
||||
unit-test: generate
|
||||
cargo test --all --no-default-features
|
||||
cargo nextest run --all --no-default-features
|
||||
|
||||
integration-test: generate
|
||||
cargo test txn_ --all ${INTEGRATION_TEST_ARGS} -- --nocapture
|
||||
|
|
|
@ -113,7 +113,11 @@ We welcome your contributions! Contributing code is great, we also appreciate fi
|
|||
|
||||
## Building and testing
|
||||
|
||||
We use the standard Cargo workflows, e.g., `cargo build` to build and `cargo test` to run unit tests. You will need to use a nightly Rust toolchain to build and run tests.
|
||||
We use the standard Cargo workflows, e.g., `cargo build` to build and `cargo test/nextest` to run unit tests. You will need to use a nightly Rust toolchain to build and run tests. Could use [nextest](https://nexte.st/index.html) to speed up ut, install nextest first.
|
||||
|
||||
```
|
||||
cargo install cargo-nextest --locked
|
||||
```
|
||||
|
||||
Running integration tests or manually testing the client with a TiKV cluster is a little bit more involved. The easiest way is to use [TiUp](https://github.com/pingcap/tiup) (>= 1.5) to initialise a cluster on your local machine:
|
||||
|
||||
|
@ -131,7 +135,7 @@ PD_ADDRS="127.0.0.1:2379" cargo test --package tikv-client --test integration_te
|
|||
|
||||
We use a standard GitHub PR workflow. We run CI on every PR and require all PRs to build without warnings (including clippy and Rustfmt warnings), pass tests, have a DCO sign-off (use `-s` when you commit, the DCO bot will guide you through completing the DCO agreement for your first PR), and have at least one review. If any of this is difficult for you, don't worry about it and ask on the PR.
|
||||
|
||||
To run CI-like tests locally, we recommend you run `cargo clippy`, `cargo test`, and `cargo fmt` before submitting your PR. See above for running integration tests, but you probably won't need to worry about this for your first few PRs.
|
||||
To run CI-like tests locally, we recommend you run `cargo clippy`, `cargo test/nextest run`, and `cargo fmt` before submitting your PR. See above for running integration tests, but you probably won't need to worry about this for your first few PRs.
|
||||
|
||||
Please follow PingCAP's [Rust style guide](https://pingcap.github.io/style-guide/rust/). All code PRs should include new tests or test cases.
|
||||
|
||||
|
|
Loading…
Reference in New Issue