forked from dfinity/ic
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gitlab-ci-config.yml
84 lines (79 loc) · 2.7 KB
/
gitlab-ci-config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Crates added to this file will be allowed to tests on GitLab but
# not cause the pipeline [or CI] to fail. This is useful for broken
# or flakey crate tests
#
# Precede every crate with a tracking bug.
crates_allowed_to_fail:
# Crates for which the tests should be built in release mode.
# The total job time is build + test execution time, and if a test runs
# in release mode, then build time is too long and the total job
# time becomes longer than if we build and run in debug mode.
# https://docs.google.com/spreadsheets/d/1Nwxp33kJ2YhkLOkDJDRrC6KN917Z2P9m8QjLZfFDy3Y/edit?usp=sharing
# That's why we selectively pick crates to run tests in release mode.
crates_tested_with_release_build:
- ic-crypto
# https://www.notion.so/SIGSEGV-when-running-NNS-integration-tests-in-debug-mode-88f57d5453f44d679774d682b70e529a
- ic-nns-integration-tests
- ic-nns-neurons
- ic-nns-proposals
- ic-replica
- registry-canister
- ic-rosetta-api
- rust-canisters-hooks
- ic-messaging
- ic-consensus
- ic-ingress-manager
# Crates that should their test target overridden.
# e.g. run `cargo test -p ic-types:0.8.0`
crate_test_name_override:
ic-types:
ic-types:0.8.0
# Crates with config override.
crates_config_override:
ic-nns-governance:
extends: .cargo-crate-test
variables:
CARGO_TEST_FLAGS_EXTRA: "--features test"
ic-nns-integration-tests:
extends: .cargo-crate-tests-process-per-test
variables:
TARGET_CRATE: ic-nns-integration-tests
retry: 1
artifacts:
paths:
- "logs/*"
ic-sns-integration-tests:
extends: .cargo-crate-tests-process-per-test
variables:
TARGET_CRATE: ic-sns-integration-tests
CARGO_TEST_TIMEOUT: 3600
artifacts:
paths:
- "logs/*"
ic-nns-handler-root:
extends: .cargo-crate-tests-process-per-test
ic-nns-handler-subnet:
extends: .cargo-crate-tests-process-per-test
registry-canister:
extends: .cargo-crate-tests-process-per-test
ic-transport:
extends: .cargo-crate-test
timeout: 15 minutes
retry: 1
ic-execution-environment:
extends: .cargo-crate-test
retry: 2
# Jobs which must be present in the CI config for the config to be accepted as valid.
# If a job from from this list isn't present in the CI config, the CI config validation will fail.
# Serves as the safety net, so that someone does not accidentally delete jobs from the CI config.
# The new job list can be generated with:
# nix-shell --run "python3 ../gitlab-ci/src/gitlab_config/main.py --job-list" ../gitlab-ci/src/shell.nix
ci_jobs_required:
- no-interrupt
- cargo-audit
- pre-commit
- gitlab-ci-config-validation
- python-gitlab-ci-tests
# finalize stage
- notify-gitlab-success
- notify-gitlab-failure