.gitlab-ci.yml 18.4 KB
Newer Older
1
2
# .gitlab-ci.yml
#
3
4
# polkadot
#
5
6
# pipelines can be triggered manually in the web
# setting DEPLOY_TAG will only deploy the tagged image
7
8
#
# please do not add new jobs without "rules:" and "*-env". There are &rules-test for everything,
9
# &rules-pr-only preset. And "kubernetes-env" with "docker-env" to set a runner
10
# which executes the job.
11

gabriel klawitter's avatar
gabriel klawitter committed
12
13
14
stages:
  - test
  - build
15
16
17
  - publish
  - deploy

Denis_P's avatar
Denis_P committed
18
image:                             paritytech/ci-linux:production
gabriel klawitter's avatar
gabriel klawitter committed
19

20
21
22
23
24
workflow:
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH

gabriel klawitter's avatar
gabriel klawitter committed
25
variables:
Denis_P's avatar
Denis_P committed
26
  GIT_STRATEGY:                    fetch
27
  GIT_DEPTH:                       100
gabriel klawitter's avatar
gabriel klawitter committed
28
  CI_SERVER_NAME:                  "GitLab CI"
Denis_P's avatar
Denis_P committed
29
  DOCKER_OS:                       "debian:stretch"
30
  ARCH:                            "x86_64"
31

32
33
34
default:
  cache:                           {}

35
.collect-artifacts:                &collect-artifacts
gabriel klawitter's avatar
gabriel klawitter committed
36
37
38
  artifacts:
    name:                          "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}"
    when:                          on_success
39
    expire_in:                     28 days
gabriel klawitter's avatar
gabriel klawitter committed
40
    paths:
Denis_P's avatar
Denis_P committed
41
      - ./artifacts/
gabriel klawitter's avatar
gabriel klawitter committed
42

43
.kubernetes-env:                   &kubernetes-env
Denis_P's avatar
Denis_P committed
44
45
46
47
48
49
50
  retry:
    max: 2
    when:
      - runner_system_failure
      - unknown_failure
      - api_failure
  interruptible:                   true
51
52
  tags:
    - kubernetes-parity-build
gabriel klawitter's avatar
gabriel klawitter committed
53

54
.docker-env:                       &docker-env
55
56
  retry:
    max: 2
57
    when:
58
59
60
      - runner_system_failure
      - unknown_failure
      - api_failure
61
  interruptible:                   true
62
63
64
  tags:
    - linux-docker

65
.compiler-info:                    &compiler-info
Denis_P's avatar
Denis_P committed
66
67
68
69
  before_script:
    - rustup show
    - cargo --version
    - sccache -s
gabriel klawitter's avatar
gabriel klawitter committed
70

71
72
.rules-test:                       &rules-test
  # these jobs run always*
73
  rules:
74
    - if: $CI_COMMIT_REF_NAME == "rococo-v1"
75
76
77
78
79
80
      when: never
    - when: always

.pr-only:                          &rules-pr-only
  # these jobs run only on PRs
  rules:
81
    - if: $CI_COMMIT_REF_NAME == "rococo-v1"
82
      when: never
83
    - if: $CI_PIPELINE_SOURCE == "schedule"
84
      when: never
85
    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/                         # PRs
86

87
88
89
90
#### stage:                        test

check-runtime:
  stage:                           test
Denis_P's avatar
Denis_P committed
91
  image:                           paritytech/tools:latest
92
  <<:                              *kubernetes-env
93
  <<:                              *rules-pr-only
94
95
96
97
98
99
100
101
102
  variables:
    GITLAB_API:                    "https://gitlab.parity.io/api/v4"
    GITHUB_API_PROJECT:            "parity%2Finfrastructure%2Fgithub-api"
  script:
    - ./scripts/gitlab/check_runtime.sh
  allow_failure:                   true

check-line-width:
  stage:                           test
Denis_P's avatar
Denis_P committed
103
  image:                           paritytech/tools:latest
104
  <<:                              *kubernetes-env
105
  <<:                              *rules-pr-only
106
107
108
109
  script:
    - ./scripts/gitlab/check_line_width.sh
  allow_failure:                   true

Shawn Tabrizi's avatar
Shawn Tabrizi committed
110
111
112
113
114
115
116
117
cargo-fmt:
  stage:                           test
  <<:                              *kubernetes-env
  <<:                              *rules-pr-only
  script:
    - cargo +nightly fmt --all -- --check
  allow_failure:                   true

118
119
test-deterministic-wasm:
  stage:                           test
120
  <<:                              *rules-test
121
  <<:                              *docker-env
122
  <<:                              *compiler-info
123
  script:
124
    - ./scripts/gitlab/test_deterministic_wasm.sh
125

Denis_P's avatar
Denis_P committed
126
test-build-linux-stable:
gabriel klawitter's avatar
gabriel klawitter committed
127
  stage:                           test
128
  <<:                              *docker-env
129
  <<:                              *compiler-info
Denis_P's avatar
Denis_P committed
130
  <<:                              *collect-artifacts
131
132
133
134
  variables:
    RUST_TOOLCHAIN: stable
    # Enable debug assertions since we are running optimized builds for testing
    # but still want to have debug assertions.
135
    RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings"
Denis_P's avatar
Denis_P committed
136
137
138
139
140
141
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"
    - if: $CI_COMMIT_REF_NAME == "master"
    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/              # i.e. v1.0, v2.1rc1
    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/                         # PRs
    - if: $CI_COMMIT_REF_NAME == "rococo-v1"
142
  script:
143
    - ./scripts/gitlab/test_linux_stable.sh
Denis_P's avatar
Denis_P committed
144
145
    # we're using the bin built here, instead of having a parallel `build-linux-release`
    - time cargo build --release --verbose --bin polkadot
Denis_P's avatar
Denis_P committed
146
    - sccache -s
Denis_P's avatar
Denis_P committed
147
    # pack artifacts
Denis_P's avatar
Denis_P committed
148
149
150
151
152
153
154
155
156
157
158
    - mkdir -p ./artifacts
    - VERSION="${CI_COMMIT_REF_NAME}" # will be tag or branch name
    - mv ./target/release/polkadot ./artifacts/.
    - sha256sum ./artifacts/polkadot | tee ./artifacts/polkadot.sha256
    - EXTRATAG="$(./artifacts/polkadot --version |
        sed -n -r 's/^polkadot ([0-9.]+.*-[0-9a-f]{7,13})-.*$/\1/p')"
    - EXTRATAG="${CI_COMMIT_REF_NAME}-${EXTRATAG}-$(cut -c 1-8 ./artifacts/polkadot.sha256)"
    - echo "Polkadot version = ${VERSION} (EXTRATAG = ${EXTRATAG})"
    - echo -n ${VERSION} > ./artifacts/VERSION
    - echo -n ${EXTRATAG} > ./artifacts/EXTRATAG
    - cp -r scripts/docker/* ./artifacts
159

160
check-web-wasm:
161
  stage:                           test
162
  <<:                              *rules-test
163
  <<:                              *docker-env
164
  <<:                              *compiler-info
165
  script:
166
167
    # WASM support is in progress. As more and more crates support WASM, we should
    # add entries here. See https://github.com/paritytech/polkadot/issues/625
168
    - ./scripts/gitlab/check_web_wasm.sh
169
    - sccache -s
170

171
check-runtime-benchmarks:
172
  stage:                           test
173
  <<:                              *rules-test
174
  <<:                              *docker-env
175
  <<:                              *compiler-info
176
177
  script:
    # Check that the node will compile with `runtime-benchmarks` feature flag.
178
    - ./scripts/gitlab/check_runtime_benchmarks.sh
179
180
    - sccache -s

Denis_P's avatar
Denis_P committed
181
182
183
184
185
186
187
188
spellcheck:
  stage:                           test
  <<:                              *docker-env
  <<:                              *rules-pr-only
  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}
Shawn Tabrizi's avatar
Shawn Tabrizi committed
189
    - time cargo spellcheck check -vvv --cfg=scripts/gitlab/spellcheck.toml --checkers hunspell --code 1
Denis_P's avatar
Denis_P committed
190
191
192
        -r $(git diff --name-only ${CI_COMMIT_SHA} $(git merge-base ${CI_COMMIT_SHA} ${CI_DEFAULT_BRANCH}))
  allow_failure:                   true

193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
build-adder-collator:
  stage:                           test
  <<:                              *collect-artifacts
  <<:                              *docker-env
  <<:                              *compiler-info
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"
    - if: $CI_COMMIT_REF_NAME == "master"
    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/                         # PRs
    - if: $CI_COMMIT_REF_NAME == "rococo-v1"
  script:
    - time cargo build --release --verbose -p test-parachain-adder-collator
    - sccache -s
    # pack artifacts
    - mkdir -p ./artifacts
    - mv ./target/release/adder-collator ./artifacts/.
    - echo -n "${CI_COMMIT_REF_NAME}" > ./artifacts/VERSION
    - echo -n "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" > ./artifacts/EXTRATAG
    - echo "adder-collator version = $(cat ./artifacts/VERSION) (EXTRATAG = $(cat ./artifacts/EXTRATAG))"
    - cp -r scripts/docker/* ./artifacts
Denis_P's avatar
Denis_P committed
213

214
215
216
217
218
219
220
221
#### stage:                        build

check-transaction-versions:
  image:                           node:15
  stage:                           build
  <<:                              *rules-test
  <<:                              *docker-env
  needs:
Denis_P's avatar
Denis_P committed
222
    - job:                         test-build-linux-stable
223
224
225
226
227
228
229
230
      artifacts:                   true
  before_script:
    - apt-get -y update; apt-get -y install jq lsof
    - npm install --ignore-scripts -g @polkadot/metadata-cmp
    - git fetch origin release
  script:
    - scripts/gitlab/check_extrinsics_ordering.sh

231
generate-impl-guide:
232
233
234
  stage:                           build
  <<:                              *rules-test
  <<:                              *docker-env
235
  image:
236
    name: michaelfbryan/mdbook-docker-image:v0.4.4
237
238
    entrypoint: [""]
  script:
239
    - mdbook build roadmap/implementers-guide
240

Denis_P's avatar
Denis_P committed
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
build-rustdoc:
  stage:                           build
  <<:                              *docker-env
  <<:                              *rules-test
  variables:
    SKIP_WASM_BUILD:               1
  artifacts:
    name:                          "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}-doc"
    when:                          on_success
    expire_in:                     7 days
    paths:
    - ./crate-docs/
  script:
    # FIXME: it fails with `RUSTDOCFLAGS="-Dwarnings"` and `--all-features`
    - time cargo doc --no-deps --workspace --verbose
    - rm -f ./target/doc/.lock
    - mv ./target/doc ./crate-docs
    # FIXME: remove me after CI image gets nonroot
    - chown -R nonroot:nonroot ./crate-docs
    - echo "<meta http-equiv=refresh content=0;url=polkadot_service/index.html>" > ./crate-docs/index.html
    - sccache -s

Denis_P's avatar
Denis_P committed
263
.build-push-image:                 &build-push-image
264
  <<:                              *kubernetes-env
265
  image:                           quay.io/buildah/stable
Denis_P's avatar
Denis_P committed
266
  variables:                       &image-variables
267
    GIT_STRATEGY:                  none
Denis_P's avatar
Denis_P committed
268
269
    DOCKER_USER:                   ${PARITYPR_USER}
    DOCKER_PASS:                   ${PARITYPR_PASS}
270
  before_script:                   &check-versions
271
    - test -s ./artifacts/VERSION || exit 1
272
273
274
    - test -s ./artifacts/EXTRATAG || exit 1
    - VERSION="$(cat ./artifacts/VERSION)"
    - EXTRATAG="$(cat ./artifacts/EXTRATAG)"
Denis_P's avatar
Denis_P committed
275
    - echo "Polkadot version = ${VERSION} (EXTRATAG = ${EXTRATAG})"
276
  script:
277
    - test "$DOCKER_USER" -a "$DOCKER_PASS" ||
278
        ( echo "no docker credentials provided"; exit 1 )
279
    - cd ./artifacts
Denis_P's avatar
Denis_P committed
280
    - buildah bud
281
282
283
        --format=docker
        --build-arg VCS_REF="${CI_COMMIT_SHA}"
        --build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
Denis_P's avatar
Denis_P committed
284
        --build-arg IMAGE_NAME="${IMAGE_NAME}"
285
        --tag "$IMAGE_NAME:$VERSION"
Denis_P's avatar
Denis_P committed
286
287
        --tag "$IMAGE_NAME:$EXTRATAG"
        --file ${DOCKERFILE} .
288
    # The job will success only on the protected branch
289
290
    - echo "$DOCKER_PASS" |
        buildah login --username "$DOCKER_USER" --password-stdin docker.io
Denis_P's avatar
Denis_P committed
291
    - buildah info
292
293
    - buildah push --format=v2s2 "$IMAGE_NAME:$VERSION"
    - buildah push --format=v2s2 "$IMAGE_NAME:$EXTRATAG"
294
  after_script:
Denis_P's avatar
Denis_P committed
295
    - buildah logout "$IMAGE_NAME"
Denis_P's avatar
Denis_P committed
296
297
298
    # pass artifacts to the trigger-simnet job
    - echo "IMAGE_NAME=${IMAGE_NAME}" > ./artifacts/build.env
    - echo "IMAGE_TAG=$(cat ./artifacts/EXTRATAG)" >> ./artifacts/build.env
299
300
301
302
  artifacts:
    reports:
      # this artifact is used in trigger-simnet job
      # https://docs.gitlab.com/ee/ci/multi_project_pipelines.html#with-variable-inheritance
Denis_P's avatar
Denis_P committed
303
      dotenv: ./artifacts/build.env
304

Denis_P's avatar
Denis_P committed
305
publish-polkadot-image:
306
  stage:                           build
Denis_P's avatar
Denis_P committed
307
  <<:                              *build-push-image
308
309
310
311
312
  variables:
    <<:                            *image-variables
    # scripts/docker/Dockerfile
    DOCKERFILE:                    Dockerfile
    IMAGE_NAME:                    docker.io/paritypr/synth-wave
313
  rules:
314
315
    # Don't run on releases - this is handled by the Github Action here:
    # .github/workflows/publish-docker-release.yml
316
317
    - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/              # i.e. v1.0, v2.1rc1
      when: never
318
319
320
    - if: $CI_PIPELINE_SOURCE == "schedule"
    - if: $CI_COMMIT_REF_NAME == "master"
    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/                         # PRs
321
322
    - if: $CI_COMMIT_REF_NAME == "rococo-v1"
      variables:
Denis_P's avatar
Denis_P committed
323
        <<:                        *image-variables
324
        IMAGE_NAME:                docker.io/parity/rococo
Denis_P's avatar
Denis_P committed
325
326
        DOCKER_USER:               ${Docker_Hub_User_Parity}
        DOCKER_PASS:               ${Docker_Hub_Pass_Parity}
Denis_P's avatar
Denis_P committed
327
  needs:
Denis_P's avatar
Denis_P committed
328
    - job:                         test-build-linux-stable
Denis_P's avatar
Denis_P committed
329
330
      artifacts:                   true

331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
publish-adder-collator-image:
  # service image for Simnet
  stage:                           build
  <<:                              *build-push-image
  variables:
    <<:                            *image-variables
    # scripts/docker/collator.Dockerfile
    DOCKERFILE:                    collator.Dockerfile
    IMAGE_NAME:                    docker.io/paritypr/colander
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"
    - if: $CI_COMMIT_REF_NAME == "master"
    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/                         # PRs
    - if: $CI_COMMIT_REF_NAME == "rococo-v1"
  needs:
    - job:                         build-adder-collator
      artifacts:                   true
  after_script:
    - buildah logout "$IMAGE_NAME"
    # pass artifacts to the trigger-simnet job
351
    - echo "COLLATOR_IMAGE_TAG=$(cat ./artifacts/EXTRATAG)" > ./artifacts/collator.env
352
353
354
355
  artifacts:
    reports:
      # this artifact is used in trigger-simnet job
      dotenv: ./artifacts/collator.env
356

357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
.update_weights:                   &update-weights
  stage:                           build
  when:                            manual
  tags:
    - weights
  variables:
    RUNTIME:                       polkadot
  artifacts:
    paths:
      - ${RUNTIME}_weights_${CI_COMMIT_SHORT_SHA}.patch
  script: |
    ./scripts/run_benches_for_runtime.sh $RUNTIME
    git diff -P > ${RUNTIME}_weights_${CI_COMMIT_SHORT_SHA}.patch

update_polkadot_weights:
  <<:                              *update-weights

update_kusama_weights:
  <<:                              *update-weights
  variables:
    RUNTIME:                       kusama

update_westend_weights:
  <<:                              *update-weights
  variables:
    RUNTIME:                       westend

384
385
#### stage:                        publish

Denis_P's avatar
Denis_P committed
386
publish-s3-release:                &publish-s3
387
388
  stage:                           publish
  needs:
Denis_P's avatar
Denis_P committed
389
    - job:                         test-build-linux-stable
390
391
      artifacts:                   true
  <<:                              *kubernetes-env
Denis_P's avatar
Denis_P committed
392
  image:                           paritytech/awscli:latest
393
394
  variables:
    GIT_STRATEGY:                  none
Denis_P's avatar
Denis_P committed
395
    PREFIX:                        "builds/polkadot/${ARCH}-${DOCKER_OS}"
396
  rules:
Denis_P's avatar
Denis_P committed
397
    # publishing binaries nightly
398
    - if: $CI_PIPELINE_SOURCE == "schedule"
399
400
  before_script:
    - *check-versions
401
  script:
Denis_P's avatar
Denis_P committed
402
403
404
    - echo "uploading objects to https://releases.parity.io/${PREFIX}/${VERSION}"
    - aws s3 sync --acl public-read ./artifacts/ s3://${AWS_BUCKET}/${PREFIX}/${VERSION}/
    - echo "update objects at https://releases.parity.io/${PREFIX}/${EXTRATAG}"
405
    - find ./artifacts -type f | while read file; do
Denis_P's avatar
Denis_P committed
406
407
408
409
        name="${file#./artifacts/}";
        aws s3api copy-object
          --copy-source ${AWS_BUCKET}/${PREFIX}/${VERSION}/${name}
          --bucket ${AWS_BUCKET} --key ${PREFIX}/${EXTRATAG}/${name};
410
      done
411
412
413
    - |
      cat <<-EOM
      |
414
      |  polkadot binary paths:
415
      |
Denis_P's avatar
Denis_P committed
416
417
      |  - https://releases.parity.io/${PREFIX}/${EXTRATAG}/polkadot
      |  - https://releases.parity.io/${PREFIX}/${VERSION}/polkadot
418
419
      |
      EOM
420
  after_script:
Denis_P's avatar
Denis_P committed
421
    - aws s3 ls s3://${AWS_BUCKET}/${PREFIX}/${EXTRATAG}/
422
        --recursive --human-readable --summarize
423

Denis_P's avatar
Denis_P committed
424
425
426
427
428
429
430
431
432
publish-rustdoc:
  stage:                           publish
  <<:                              *kubernetes-env
  image:                           paritytech/tools:latest
  variables:
    GIT_DEPTH:                     100
  rules:
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_REF_NAME == "master"
    - if: $CI_COMMIT_REF_NAME == "master"
Denis_P's avatar
Denis_P committed
433
434
435
436
437
  # `needs:` can be removed after CI image gets nonroot. In this case `needs:` stops other
  # artifacts from being dowloaded by this job.
  needs:
    - job:                         build-rustdoc
      artifacts:                   true
Denis_P's avatar
Denis_P committed
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
  script:
    - rm -rf /tmp/*
    # Set git config
    - rm -rf .git/config
    - git config user.email "devops-team@parity.io"
    - git config user.name "${GITHUB_USER}"
    - git config remote.origin.url "https://${GITHUB_TOKEN}@github.com/paritytech/polkadot.git"
    - git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
    - git fetch origin gh-pages
    # Save README and docs
    - cp -r ./crate-docs/ /tmp/doc/
    - cp README.md /tmp/doc/
    - git checkout gh-pages
    # Remove everything and restore generated docs and README
    - rm -rf ./*
    - mv /tmp/doc/* .
    # Upload files
    - git add --all --force
    # `git commit` has an exit code of > 0 if there is nothing to commit.
    # This causes GitLab to exit immediately and marks this job failed.
    # We don't want to mark the entire job failed if there's nothing to
    # publish though, hence the `|| true`.
    - git commit -m "Updated docs for ${CI_COMMIT_REF_NAME}" ||
        echo "___Nothing to commit___"
    - git push origin gh-pages --force
  after_script:
    - rm -rf .git/ ./*

466
467
#### stage:                        deploy

468
469
deploy-polkasync-kusama:
  stage:                           deploy
470
471
472
473
474
475
  rules:
    # former .rules-build
    - if: $CI_COMMIT_REF_NAME == "rococo-v1"
      when: never
    - if: $CI_PIPELINE_SOURCE == "schedule"
    - if: $CI_COMMIT_REF_NAME == "master"
476
  variables:
477
    POLKADOT_CI_COMMIT_NAME:       "${CI_COMMIT_REF_NAME}"
Denis_P's avatar
Denis_P committed
478
    POLKADOT_CI_COMMIT_REF:        "${CI_COMMIT_SHORT_SHA}"
479
  allow_failure:                   true
480
  trigger:                         "parity/infrastructure/parity-testnet"
481

482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
trigger-simnet:
  stage:                           deploy
  image:                           paritytech/tools:latest
  <<:                              *kubernetes-env
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule"
    - if: $CI_COMMIT_REF_NAME == "master"
    - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/                         # PRs
    - if: $CI_COMMIT_REF_NAME == "rococo-v1"
  needs:
    - job:                         publish-polkadot-image
    - job:                         publish-adder-collator-image
  # `build.env` brings here `$IMAGE_NAME` and `$IMAGE_TAG` (`$EXTRATAG` here,
  # i.e. `2643-0.8.29-5f689e0a-6b24dc54`).
  # `collator.env` bears adder-collator unique build tag. In non-triggered builds it
  # can be called by `master` tag.
  # Simnet uses an image published on PRs with this exact version for triggered runs
  # on commits. And parity/rococo:rococo-v1 for the runs not launched by this job.
  variables:
    TRGR_PROJECT:                  ${CI_PROJECT_NAME}
    TRGR_REF:                      ${CI_COMMIT_REF_NAME}
Denis_P's avatar
Denis_P committed
503
    # Simnet project ID
504
505
    DWNSTRM_ID:                    332
  script:
Denis_P's avatar
Denis_P committed
506
    # API trigger for a Simnet job, argument value is set in the project variables
507
    - ./scripts/gitlab/trigger_pipeline.sh --simnet-version=${SIMNET_REF}
508
  allow_failure:                   true