-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Check all crates #12709
Check all crates #12709
Changes from 1 commit
fe64411
5b99f73
c2096d4
17e932a
bc535e4
9f6a564
d94857d
53f28d5
066103e
3452d16
05c667f
56d2948
478c87a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| #!/usr/bin/env bash | ||
|
|
||
| ## A script that checks each workspace crate individually. | ||
| ## It's relevant to check workspace crates individually because otherwise their compilation problems | ||
| ## due to feature misconfigurations won't be caught, as exemplified by | ||
| ## https://github.com/paritytech/substrate/issues/12705 | ||
|
|
||
| set -Eeu -o pipefail | ||
| shopt -s inherit_errexit | ||
|
|
||
| set -x | ||
|
|
||
| target_group="$1" | ||
| groups_total="$2" | ||
|
|
||
| readarray -t workspace_crates < <(\ | ||
| cargo tree --workspace --depth 0 | \ | ||
| awk '{ if (length($1) == 0 || substr($1, 1, 1) == "[") { skip } else { print $1 } }' | ||
| ) | ||
|
|
||
| crates_total=${#workspace_crates[*]} | ||
| crates_per_group=$(( (crates_total / groups_total) + (crates_total % groups_total > 0) )) | ||
|
||
|
|
||
| group=1 | ||
| for ((i=0; i < crates_total; i += crates_per_group)); do | ||
| if [ $group -eq "$target_group" ]; then | ||
| for crate in "${workspace_crates[@]:$i:$crates_per_group}"; do | ||
| cargo check --locked --release -p "$crate" | ||
| done | ||
| break | ||
| fi | ||
| group=$(( group + 1 )) | ||
| done | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -133,24 +133,8 @@ node-bench-regression-guard: | |
| --compare-with artifacts/benches/$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA' | ||
| after_script: [""] | ||
|
|
||
| cargo-check-subkey: | ||
| stage: test | ||
| extends: | ||
| - .docker-env | ||
| - .test-refs | ||
| - .pipeline-stopper-artifacts | ||
| script: | ||
| - rusty-cachier snapshot create | ||
| - cd ./bin/utils/subkey | ||
| - SKIP_WASM_BUILD=1 time cargo check --locked --release | ||
| - rusty-cachier cache upload | ||
|
|
||
| cargo-check-try-runtime: | ||
| stage: test | ||
| # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs | ||
| needs: | ||
| - job: cargo-check-subkey | ||
| artifacts: false | ||
| extends: | ||
| - .docker-env | ||
| - .test-refs | ||
|
|
@@ -393,6 +377,9 @@ test-full-crypto-feature: | |
|
|
||
| test-wasmer-sandbox: | ||
| stage: test | ||
| needs: | ||
| - job: cargo-check-wasmer-sandbox | ||
| artifacts: false | ||
| extends: | ||
| - .docker-env | ||
| - .test-refs-wasmer-sandbox | ||
|
|
@@ -409,18 +396,6 @@ test-wasmer-sandbox: | |
| - time cargo nextest run --locked --release --features runtime-benchmarks,wasmer-sandbox,disable-ui-tests --partition count:${CI_NODE_INDEX}/${CI_NODE_TOTAL} | ||
| - if [ ${CI_NODE_INDEX} == 1 ]; then rusty-cachier cache upload; fi | ||
|
|
||
| cargo-check-macos: | ||
| stage: test | ||
| extends: .test-refs-no-trigger | ||
| before_script: | ||
| - !reference [.rust-info-script, script] | ||
| variables: | ||
| SKIP_WASM_BUILD: 1 | ||
| script: | ||
| - time cargo check --locked --release | ||
| tags: | ||
| - osx | ||
|
|
||
| check-rustdoc: | ||
| stage: test | ||
| variables: | ||
|
|
@@ -435,3 +410,32 @@ check-rustdoc: | |
| - rusty-cachier snapshot create | ||
| - time cargo +nightly doc --locked --workspace --all-features --verbose --no-deps | ||
| - rusty-cachier cache upload | ||
|
|
||
| .cargo-check-each-crate_template: &cargo-check-each-crate_template | ||
| stage: test | ||
| extends: | ||
| - .docker-env | ||
| - .test-refs | ||
| parallel: 2 | ||
|
||
|
|
||
| cargo-check-each-crate: | ||
| <<: *cargo-check-each-crate_template | ||
| variables: | ||
| # $CI_JOB_NAME is set manually so that rusty-cachier can share the cache for all | ||
| # "cargo-check-each-crate I/N" jobs | ||
| CI_JOB_NAME: cargo-check-each-crate | ||
| before_script: | ||
| - !reference [.rust-info-script, script] | ||
| - !reference [.rusty-cachier, before_script] | ||
| script: | ||
| - rusty-cachier snapshot create | ||
| - ./scripts/ci/gitlab/check-each-crate.sh "$CI_NODE_INDEX" "$CI_NODE_TOTAL" | ||
| # need to update cache only from one job | ||
| - if [ "$CI_NODE_INDEX" == 1 ]; then rusty-cachier cache upload; fi | ||
|
|
||
| cargo-check-each-crate-macos: | ||
| <<: *cargo-check-each-crate_template | ||
| script: | ||
| - ./scripts/ci/gitlab/check-each-crate.sh "$CI_NODE_INDEX" "$CI_NODE_TOTAL" | ||
| tags: | ||
| - osx | ||
Uh oh!
There was an error while loading. Please reload this page.