mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-25 08:15:44 +00:00
Add CI for monorepo (#1145)
* Add CI for monorepo * fix frame tests * Format features Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * add note for skipping tests and disable test-linux-stable-all * Fix tests and compile issues (#1152) * Fix feature dependant import Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Bump test timeout Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Remove feature gate Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Add resolver 2 Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Remove old lockfile Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Format features Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> --------- Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fix check-dependency-rules Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * rm test-runtime Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Actually fix script Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * enable cargo-check-each-crate-macos * Run check-each-crate on 6 machines (#1163) --------- Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
committed by
GitHub
parent
1a38d6d6be
commit
e49493442a
@@ -0,0 +1,198 @@
|
||||
cargo-clippy:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .common-refs
|
||||
script:
|
||||
- SKIP_WASM_BUILD=1 env -u RUSTFLAGS cargo clippy --all-targets --locked --workspace
|
||||
# fixme!
|
||||
allow_failure: true
|
||||
|
||||
check-try-runtime:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .common-refs
|
||||
script:
|
||||
- time cargo check --locked --all --features try-runtime
|
||||
# this is taken from cumulus
|
||||
# Check that parachain-template will compile with `try-runtime` feature flag.
|
||||
- time cargo check --locked -p parachain-template-node --features try-runtime
|
||||
# add after https://github.com/paritytech/substrate/pull/14502 is merged
|
||||
# experimental code may rely on try-runtime and vice-versa
|
||||
# - time cargo check --locked --features try-runtime,experimental
|
||||
|
||||
cargo-fmt-manifest:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .common-refs
|
||||
script:
|
||||
- cargo install zepter --locked --version 0.10.0 -q -f --no-default-features && zepter --version
|
||||
- echo "👉 Hello developer! If you see this CI check failing then it means that one of the your changes in a Cargo.toml file introduced ill-formatted or unsorted features. Please take a look at 'docs/STYLE_GUIDE.md#manifest-formatting' to find out more."
|
||||
- zepter format features --check
|
||||
allow_failure: true # Experimental
|
||||
|
||||
cargo-deny-licenses:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .test-pr-refs
|
||||
variables:
|
||||
CARGO_DENY_CMD: "cargo deny --all-features check licenses -c ./substrate/scripts/ci/deny.toml"
|
||||
script:
|
||||
- $CARGO_DENY_CMD --hide-inclusion-graph
|
||||
after_script:
|
||||
# - !reference [.rusty-cachier, after_script]
|
||||
- echo "___The complete log is in the artifacts___"
|
||||
- $CARGO_DENY_CMD 2> deny.log
|
||||
- if [ $CI_JOB_STATUS != 'success' ]; then
|
||||
echo 'Please check license of your crate or add an exception to scripts/ci/deny.toml';
|
||||
fi
|
||||
allow_failure: true
|
||||
artifacts:
|
||||
name: $CI_COMMIT_SHORT_SHA
|
||||
expire_in: 3 days
|
||||
when: always
|
||||
paths:
|
||||
- deny.log
|
||||
|
||||
spellcheck:
|
||||
stage: check
|
||||
extends:
|
||||
- .kubernetes-env
|
||||
- .common-refs
|
||||
script:
|
||||
- cargo spellcheck --version
|
||||
# compare with the commit parent to the PR, given it's from a default branch
|
||||
- git fetch origin +${CI_DEFAULT_BRANCH}:${CI_DEFAULT_BRANCH}
|
||||
- echo "___Spellcheck is going to check your diff___"
|
||||
- cargo spellcheck list-files -vvv $(git diff --diff-filter=AM --name-only $(git merge-base ${CI_COMMIT_SHA} ${CI_DEFAULT_BRANCH} -- :^bridges))
|
||||
- time cargo spellcheck check -vvv --cfg=.gitlab/spellcheck.toml --checkers hunspell --code 1
|
||||
$(git diff --diff-filter=AM --name-only $(git merge-base ${CI_COMMIT_SHA} ${CI_DEFAULT_BRANCH} -- :^bridges))
|
||||
allow_failure: true
|
||||
|
||||
# from substrate
|
||||
# not sure if it's needed in monorepo
|
||||
check-dependency-rules:
|
||||
stage: check
|
||||
extends:
|
||||
- .kubernetes-env
|
||||
- .test-refs-no-trigger-prs-only
|
||||
variables:
|
||||
CI_IMAGE: "paritytech/tools:latest"
|
||||
allow_failure: true
|
||||
script:
|
||||
- cd substrate/
|
||||
- ../.gitlab/ensure-deps.sh
|
||||
|
||||
test-rust-features:
|
||||
stage: check
|
||||
extends:
|
||||
- .kubernetes-env
|
||||
- .test-refs-no-trigger-prs-only
|
||||
script:
|
||||
- git clone
|
||||
--depth=1
|
||||
--branch="master"
|
||||
https://github.com/paritytech/pipeline-scripts
|
||||
- bash ./pipeline-scripts/rust-features.sh .
|
||||
|
||||
job-starter:
|
||||
stage: check
|
||||
image: paritytech/tools:latest
|
||||
extends:
|
||||
- .kubernetes-env
|
||||
- .common-refs
|
||||
allow_failure: true
|
||||
script:
|
||||
- echo ok
|
||||
|
||||
test-rust-feature-propagation:
|
||||
stage: check
|
||||
extends:
|
||||
- .kubernetes-env
|
||||
- .test-pr-refs
|
||||
script:
|
||||
- cargo install --locked --version 0.10.0 -q -f zepter && zepter --version
|
||||
- echo "👉 Hello developer! If you see this CI check failing then it means that one of the crates is missing a feature for one of its dependencies. The output below tells you which feature needs to be added for which dependency to which crate. You can do this by modifying the Cargo.toml file. For more context see the MR where this check was introduced https://github.com/paritytech/substrate/pull/14660"
|
||||
- zepter lint propagate-feature --feature try-runtime --left-side-feature-missing=ignore --workspace --feature-enables-dep="try-runtime:frame-try-runtime" --locked
|
||||
- zepter lint propagate-feature --feature runtime-benchmarks --left-side-feature-missing=ignore --workspace --feature-enables-dep="runtime-benchmarks:frame-benchmarking" --locked
|
||||
- zepter lint propagate-feature --feature std --left-side-feature-missing=ignore --workspace --locked
|
||||
allow_failure: true # Experimental
|
||||
|
||||
# More info can be found here: https://github.com/paritytech/polkadot/pull/5865
|
||||
.check-runtime-migration:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .test-pr-refs
|
||||
script:
|
||||
- |
|
||||
export RUST_LOG=remote-ext=debug,runtime=debug
|
||||
echo "---------- Running try-runtime for ${NETWORK} ----------"
|
||||
time cargo install --locked --git https://github.com/paritytech/try-runtime-cli --rev a93c9b5abe5d31a4cf1936204f7e5c489184b521
|
||||
time cargo build --release --locked -p "$NETWORK"-runtime --features try-runtime
|
||||
time try-runtime \
|
||||
--runtime ./target/release/wbuild/"$NETWORK"-runtime/target/wasm32-unknown-unknown/release/"$NETWORK"_runtime.wasm \
|
||||
on-runtime-upgrade --checks=pre-and-post live --uri wss://${NETWORK}-try-runtime-node.parity-chains.parity.io:443
|
||||
|
||||
check-runtime-migration-polkadot:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .test-pr-refs
|
||||
- .check-runtime-migration
|
||||
variables:
|
||||
NETWORK: "polkadot"
|
||||
allow_failure: true # FIXME https://github.com/paritytech/substrate/issues/13107
|
||||
|
||||
check-runtime-migration-kusama:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .test-pr-refs
|
||||
- .check-runtime-migration
|
||||
variables:
|
||||
NETWORK: "kusama"
|
||||
allow_failure: true # FIXME https://github.com/paritytech/substrate/issues/13107
|
||||
|
||||
check-runtime-migration-westend:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .test-pr-refs
|
||||
- .check-runtime-migration
|
||||
variables:
|
||||
NETWORK: "westend"
|
||||
allow_failure: true # FIXME https://github.com/paritytech/substrate/issues/13107
|
||||
|
||||
check-runtime-migration-rococo:
|
||||
stage: check
|
||||
extends:
|
||||
- .docker-env
|
||||
- .test-pr-refs
|
||||
- .check-runtime-migration
|
||||
variables:
|
||||
NETWORK: "rococo"
|
||||
allow_failure: true # FIXME https://github.com/paritytech/substrate/issues/13107
|
||||
|
||||
find-fail-ci-phrase:
|
||||
stage: check
|
||||
variables:
|
||||
CI_IMAGE: "paritytech/tools:latest"
|
||||
ASSERT_REGEX: "FAIL-CI"
|
||||
GIT_DEPTH: 1
|
||||
extends:
|
||||
- .kubernetes-env
|
||||
- .test-pr-refs
|
||||
script:
|
||||
- set +e
|
||||
- rg --line-number --hidden --type rust --glob '!{.git,target}' "$ASSERT_REGEX" .; exit_status=$?
|
||||
- if [ $exit_status -eq 0 ]; then
|
||||
echo "$ASSERT_REGEX was found, exiting with 1";
|
||||
exit 1;
|
||||
else
|
||||
echo "No $ASSERT_REGEX was found, exiting with 0";
|
||||
exit 0;
|
||||
fi
|
||||
Reference in New Issue
Block a user