-
Notifications
You must be signed in to change notification settings - Fork 175
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* add badge to readme * first version of pipeline * Update .gitlab-ci.yml Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com> * add pre-cache script * fmt and clippy stable * add check and test * remove output text file from bench * Update scripts/ci/pre_cache.sh Co-authored-by: David <dvdplm@gmail.com> * Update .gitlab-ci.yml Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com> * small fix * fix test and schedule * CI: verbose is a surplus * CI: separately check rustdoc linx * fix refs * add bench to gh-pages * fix refs * fix benchmarks * added vault to ci * fix vars * comment bench * fix benches name * added script to push benchmark results to VM * make script executable * change bench psuh executor * changed benchmark task to run on a dedicated node pool * change prometheus metric name for benchmarks * send 2 metrics with benchmark results * disable non-schedule jobs from schedule run * empty commit for benchmark test * change metric name * empty commit for benchmark test * empty commit for benchmark test * add cirunner label to vm metric * split vm metric to 2 metrics * change runner description to runner tag in ci scripts * add pass runner tags from benchmark to publish job * change runner tag to runner description * add debug message * empty commit for test * empty commit for test * Update .scripts/ci/push_bench_results.sh Co-authored-by: Denis Pisarev <17856421+TriplEight@users.noreply.github.com> * add defaults, remove dups, change ci image for publish-bench * remove pre_cache.sh * move interruptible to defaults * add issue to fixme comment Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com> Co-authored-by: David <dvdplm@gmail.com> Co-authored-by: Denis P <denis.pisarev@parity.io> Co-authored-by: Denis Pisarev <17856421+TriplEight@users.noreply.github.com>
- Loading branch information
1 parent
be6f64a
commit 66aa6c4
Showing
4 changed files
with
182 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
default: | ||
interruptible: true | ||
retry: | ||
max: 2 | ||
when: | ||
- runner_system_failure | ||
- unknown_failure | ||
- api_failure | ||
|
||
stages: | ||
- lint | ||
- test | ||
- benchmark | ||
- publish | ||
|
||
variables: &default-vars | ||
GIT_STRATEGY: fetch | ||
GIT_DEPTH: 100 | ||
CARGO_INCREMENTAL: 0 | ||
CARGO_TARGET_DIR: "/ci-cache/${CI_PROJECT_NAME}/targets/${CI_COMMIT_REF_NAME}/${CI_JOB_NAME}" | ||
CI_IMAGE: "paritytech/ci-linux:production" | ||
VAULT_SERVER_URL: "https://vault.parity-mgmt-vault.parity.io" | ||
VAULT_AUTH_PATH: "gitlab-parity-io-jwt" | ||
VAULT_AUTH_ROLE: "cicd_gitlab_parity_${CI_PROJECT_NAME}" | ||
|
||
.vault-secrets: &vault-secrets | ||
secrets: | ||
GITHUB_TOKEN: | ||
vault: cicd/gitlab/parity/GITHUB_TOKEN@kv | ||
file: false | ||
GITHUB_USER: | ||
vault: cicd/gitlab/parity/GITHUB_USER@kv | ||
file: false | ||
|
||
.common-refs: &common-refs | ||
rules: | ||
- if: $CI_PIPELINE_SOURCE == "web" | ||
- if: $CI_COMMIT_REF_NAME == "main" | ||
- if: $CI_COMMIT_REF_NAME == "master" | ||
- if: $CI_PIPELINE_SOURCE == "schedule" | ||
when: never | ||
- if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs | ||
|
||
# run nightly by schedule | ||
.schedule-refs: &schedule-refs | ||
rules: | ||
- if: $CI_PIPELINE_SOURCE == "schedule" | ||
|
||
.rust-info-script: &rust-info-script | ||
- rustup show | ||
- cargo --version | ||
- rustup +nightly show | ||
- cargo +nightly --version | ||
- bash --version | ||
- sccache -s | ||
|
||
.docker-env: &docker-env | ||
image: "${CI_IMAGE}" | ||
before_script: | ||
- *rust-info-script | ||
- sccache -s | ||
tags: | ||
- linux-docker | ||
|
||
.kubernetes-env: &kubernetes-env | ||
image: "${CI_IMAGE}" | ||
tags: | ||
- kubernetes-parity-build | ||
|
||
.collect-artifacts: &collect-artifacts | ||
artifacts: | ||
name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" | ||
when: on_success | ||
expire_in: 28 days | ||
paths: | ||
- ./artifacts/ | ||
reports: | ||
dotenv: runner.env | ||
#### stage: lint | ||
|
||
fmt: | ||
stage: lint | ||
<<: *docker-env | ||
<<: *common-refs | ||
script: | ||
# FIXME: remove component add after https://github.com/paritytech/substrate/issues/10411 is fixed | ||
- rustup component add rustfmt | ||
- cargo fmt --all -- --check | ||
|
||
clippy: | ||
stage: lint | ||
<<: *docker-env | ||
<<: *common-refs | ||
script: | ||
# FIXME: remove component add after https://github.com/paritytech/substrate/issues/10411 is fixed | ||
- rustup component add clippy | ||
- cargo clippy --all-targets | ||
|
||
check-rustdoc-links: | ||
stage: lint | ||
<<: *docker-env | ||
<<: *common-refs | ||
script: | ||
- RUSTDOCFLAGS="--deny broken_intra_doc_links" cargo doc --workspace --no-deps --document-private-items | ||
|
||
#### stage: test | ||
|
||
check-code: | ||
stage: test | ||
<<: *docker-env | ||
<<: *common-refs | ||
script: | ||
- cargo install cargo-hack | ||
- cargo hack check --workspace --each-feature | ||
|
||
test: | ||
stage: test | ||
<<: *docker-env | ||
<<: *common-refs | ||
script: | ||
- cargo test | ||
|
||
benchmarks: | ||
stage: benchmark | ||
<<: *docker-env | ||
<<: *collect-artifacts | ||
<<: *schedule-refs | ||
script: | ||
- cargo bench -p jsonrpsee-benchmarks -- --output-format bencher | tee output.txt | ||
- mkdir artifacts | ||
- cp output.txt artifacts/ | ||
- echo ${CI_RUNNER_DESCRIPTION} | ||
- echo "RUNNER_NAME=${CI_RUNNER_DESCRIPTION}" > runner.env | ||
tags: | ||
- linux-docker-benches | ||
|
||
publish-bench: | ||
stage: publish | ||
variables: | ||
CI_IMAGE: "paritytech/tools:latest" | ||
<<: *kubernetes-env | ||
<<: *schedule-refs | ||
needs: | ||
- job: benchmarks | ||
artifacts: true | ||
script: | ||
- echo $RUNNER_NAME | ||
- .scripts/ci/push_bench_results.sh artifacts/output.txt | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
#!/bin/bash | ||
# The script takes output.txt, removes every line that doesn't have "test" | ||
# in it and pushes benchmark result to Victoria Metrics | ||
# Benchmark name should have underscores in the name instead of spaces (e.g. async/http_concurrent_round_trip/8) | ||
|
||
RESULT_FILE=$1 | ||
CURRENT_DIR=$(pwd) | ||
|
||
if [ -z "$RESULT_FILE" ] | ||
then | ||
RESULT_FILE="output.txt" | ||
fi | ||
|
||
cat $RESULT_FILE | grep test > $CURRENT_DIR/output_redacted.txt | ||
|
||
INPUT="output_redacted.txt" | ||
|
||
while IFS= read -r line | ||
do | ||
BENCH_NAME=$(echo $line | cut -f 2 -d ' ') | ||
BENCH_RESULT=$(echo $line | cut -f 5 -d ' ') | ||
# send metric with common results | ||
curl -d 'parity_benchmark_common_result_ns{project="'${CI_PROJECT_NAME}'",benchmark="'$BENCH_NAME'"} '$BENCH_RESULT'' \ | ||
-X POST 'http://vm-longterm.parity-build.parity.io/api/v1/import/prometheus' | ||
# send metric with detailed results | ||
curl -d 'parity_benchmark_specific_result_ns{project="'${CI_PROJECT_NAME}'",benchmark="'$BENCH_NAME'",commit="'${CI_COMMIT_SHORT_SHA}'",cirunner="'${RUNNER_NAME}'"} '$BENCH_RESULT'' \ | ||
-X POST 'http://vm-longterm.parity-build.parity.io/api/v1/import/prometheus' | ||
done < "$INPUT" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
66aa6c4
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold
2
.subscriptions/subscribe_response
22254
ns/iter (± 4188
)6199
ns/iter (± 1563
)3.59
This comment was automatically generated by workflow using github-action-benchmark.
CC: @niklasad1 @maciejhirsz
66aa6c4
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold
2
.subscriptions/subscribe_response
16911
ns/iter (± 1998
)6199
ns/iter (± 1563
)2.73
This comment was automatically generated by workflow using github-action-benchmark.
CC: @niklasad1 @maciejhirsz
66aa6c4
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold
2
.subscriptions/subscribe_response
15995
ns/iter (± 1129
)6199
ns/iter (± 1563
)2.58
This comment was automatically generated by workflow using github-action-benchmark.
CC: @niklasad1 @maciejhirsz