diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 55dd8278b92e38e8f0f93088cfdbedbd6e0929f8..04faff228f078c2d524487fdab11d3a84b90a5be 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,226 +1,153 @@ ---- +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# General setup -default: - interruptible: true - -# Basic configuration to guard against double-pipelines workflow: - name: "[$PIPELINE_TYPE] $CI_COMMIT_TITLE" + name: '[$PIPELINE_TYPE] $CI_COMMIT_TITLE' rules: - # /!\ These rules should be mutually exclusive and kept in sync - # with the corresponding 'if'-rules on the pipeline includes - # below. - - # Allow 'Before merging' pipelines - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "merge_request_event"' - variables: - PIPELINE_TYPE: 'before_merging' - # Allow 'Latest release' pipelines - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "latest-release"' - variables: - PIPELINE_TYPE: 'latest_release' - # Allow 'Test latest release' pipelines for dry running latest - # release pipelines in the nomadic-labs/tezos CI. - - if: '$CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "latest-release-test"' - variables: - PIPELINE_TYPE: 'latest_release_test' - # Allow 'Master branch' pipelines - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"' - variables: - PIPELINE_TYPE: 'master_branch' - # Allow 'Release tag' pipelines - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG =~ /^v\d+\.\d+(?:\-rc\d+)?$/' - variables: - PIPELINE_TYPE: 'release_tag' - # Allow 'Beta release tag' pipelines - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG =~ /^v\d+\.\d+\-beta\d*$/' - variables: - PIPELINE_TYPE: 'beta_release_tag' - # Allow 'Test release tag' pipelines for dry running release tag - # pipelines in the nomadic-labs/tezos CI. - - if: '$CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG =~ /^v\d+\.\d+(?:\-(rc|beta)\d*)?$/' - variables: - PIPELINE_TYPE: 'release_tag_test' - # Allow 'Non-release tag' pipelines - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG != null && $CI_COMMIT_TAG !~ /^v\d+\.\d+(?:\-(rc|beta)\d*)?$/' - variables: - PIPELINE_TYPE: 'non_release_tag' - # Allow 'Test non-release tag' pipelines for dry running non-release tag - # pipelines in the nomadic-labs/tezos CI. - - if: '$CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG != null && $CI_COMMIT_TAG !~ /^v\d+\.\d+(?:\-(rc|beta)\d*)?$/' - variables: - PIPELINE_TYPE: 'non_release_tag_test' - # Allow 'Scheduled pipeline for extended test' pipelines - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - variables: - PIPELINE_TYPE: 'schedule_extended_test' - # Disallow all other pipelines - - when: never - + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "merge_request_event" + variables: + PIPELINE_TYPE: before_merging + when: always + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH + == "latest-release" + variables: + PIPELINE_TYPE: latest_release + when: always + - if: $CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH + == "latest-release-test" + variables: + PIPELINE_TYPE: latest_release_test + when: always + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH + == "master" + variables: + PIPELINE_TYPE: master_branch + when: always + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG + =~ /^v\d+\.\d+(?:\-rc\d+)?$/ + variables: + PIPELINE_TYPE: release_tag + when: always + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG + =~ /^v\d+\.\d+\-beta\d*$/ + variables: + PIPELINE_TYPE: beta_release_tag + when: always + - if: $CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_TAG + =~ /^v\d+\.\d+(?:\-rc\d+)?$/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+\-beta\d*$/) + variables: + PIPELINE_TYPE: release_tag_test + when: always + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG + != null && $CI_COMMIT_TAG !~ /^v\d+\.\d+(?:\-rc\d+)?$/ && $CI_COMMIT_TAG !~ + /^v\d+\.\d+\-beta\d*$/ + variables: + PIPELINE_TYPE: non_release_tag + when: always + - if: $CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG + != null && $CI_COMMIT_TAG !~ /^v\d+\.\d+(?:\-rc\d+)?$/ && $CI_COMMIT_TAG !~ + /^v\d+\.\d+\-beta\d*$/ + variables: + PIPELINE_TYPE: non_release_tag_test + when: always + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + variables: + PIPELINE_TYPE: schedule_extended_test + when: always +default: + interruptible: true variables: - # /!\ CI_REGISTRY is overriden to use a private Docker registry mirror in AWS ECR - # in GitLab namespaces `nomadic-labs` and `tezos` - ## This value MUST be the same as `opam_repository_tag` in `scripts/version.sh` build_deps_image_version: 5d7889150ef8283a4610bfc85d5b66a159d72d2e - build_deps_image_name: "${CI_REGISTRY}/tezos/opam-repository" + build_deps_image_name: ${CI_REGISTRY}/tezos/opam-repository GIT_STRATEGY: fetch GIT_DEPTH: "1" GET_SOURCES_ATTEMPTS: "2" ARTIFACT_DOWNLOAD_ATTEMPTS: "2" - # Sets the number of tries before failing opam downloads. OPAMRETRIES: "5" - - # An addition to working around a bug in gitlab-runner's default - # unzipping implementation (https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27496), - # this setting cuts cache creation time. FF_USE_FASTZIP: "true" - # TODO: https://gitlab.com/tezos/tezos/-/issues/6764 - # "false" is the GitLab default but we've overridden it in the runner settings. - # This should be fixed at the runner level but we reset it to the - # default here in the meantime. - FF_KUBERNETES_HONOR_ENTRYPOINT: "false" - - # If `RUNTEZTALIAS` is true, then Tezt tests are included in the @runtest - # alias. We set it to false to deactivate these tests in the unit - # test jobs, as they already run in the Tezt jobs. It is set to true - # in the opam jobs where we want to run the tests `--with-test`. It is set - # to true in the `unit:js_component`, as there is not global Tezt job - # for js tests. RUNTEZTALIAS: "false" - -# Image templates -.image_template__runtime_e2etest_dependencies: - image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} - -.image_template__runtime_build_test_dependencies: - image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} - -.image_template__runtime_build_dependencies: - image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} - -.image_template__runtime_prebuild_dependencies: - image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} - -.image_template__runtime_client_libs_dependencies: - image: ${build_deps_image_name}:runtime-client-libs-dependencies--${build_deps_image_version} - -.image_template__rust_toolchain: - image: ${build_deps_image_name}:rust-toolchain--${build_deps_image_version} - -# Match GitLab executors version and directly use the Docker socket -# The Docker daemon is already configured, experimental features are enabled -# The following environment variables are already set: -# - BUILDKIT_PROGRESS -# - DOCKER_DRIVER -# - DOCKER_VERSION -# https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-socket-binding -.image_template__docker: - # https://gitlab.com/tezos/docker-images/ci-docker - image: "${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0" - -.image_template__alpine: - # The Alpine version should be kept up to date with the version used - # for the `build_deps_image_name` images and specified in the - # variable `alpine_version` in `scripts/version.sh`. This is checked - # by the jobs `trigger` and `sanity_ci`. - image: alpine:3.18 - -# The "manual" stage exists to fix a UI problem that occurs when mixing -# manual and non-manual jobs. + FF_KUBERNETES_HONOR_ENTRYPOINT: "false" stages: - - trigger - - sanity - - build - - test - - test_coverage - - packaging - - doc - - prepare_release - - publish_release_gitlab - - publish_release - - publish_package_gitlab - - manual - -# Trigger -# -# §1: The purpose of this job is to launch the CI manually in certain cases. -# The objective is not to run computing when it is not -# necessary and the decision to do so belongs to the developer -# -# §2: Gitlab CI needs at least one job definition, otherwise we're stuck with -# this error: 'Jobs config should contain at least one visible job' +- trigger +- sanity +- build +- test +- test_coverage +- packaging +- doc +- prepare_release +- publish_release_gitlab +- publish_release +- publish_package_gitlab +- manual trigger: - extends: - - .default_settings_template - - .image_template__alpine + image: alpine:3.18 stage: trigger + tags: + - gcp rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_ASSIGNEES !~ /nomadic-margebot/ when: manual + allow_failure: false - when: always + dependencies: [] allow_failure: false - timeout: "10m" + timeout: 10 minutes script: - - echo 'Trigger pipeline 🤠' - # Check that the Alpine version of the trigger job's image - # corresponds to the value in scripts/version.sh. - - ./scripts/ci/check_alpine_version.sh - + - echo 'Trigger pipeline!' + variables: + GIT_STRATEGY: none include: - # /!\ These rules should be be mutually exclusive and kept in sync - # with the corresponding 'if'-rules on the workflow rules above. - - # Common templates - - local: .gitlab/ci/jobs/shared/templates.yml - - # Before merging - - local: .gitlab/ci/pipelines/before_merging.yml - rules: - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "merge_request_event"' - - # Latest release - - local: .gitlab/ci/pipelines/latest_release.yml - rules: - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "latest-release"' - - # Test latest release - - local: .gitlab/ci/pipelines/latest_release_test.yml - rules: - - if: '$CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "latest-release-test"' - - # Master branch - - local: .gitlab/ci/pipelines/master_branch.yml - rules: - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "master"' - - # Release tag - - local: .gitlab/ci/pipelines/release_tag.yml - rules: - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG =~ /^v\d+\.\d+(?:\-rc\d+)?$/' - - # Beta release tag - - local: .gitlab/ci/pipelines/beta_release_tag.yml - rules: - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG =~ /^v\d+\.\d+\-beta\d*$/' - - # Test release tag - - local: .gitlab/ci/pipelines/release_tag_test.yml - rules: - - if: '$CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG =~ /^v\d+\.\d+(?:\-(rc|beta)\d*)?$/' - - # Non-release tag - - local: .gitlab/ci/pipelines/non_release_tag.yml - rules: - - if: '$CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG != null && $CI_COMMIT_TAG !~ /^v\d+\.\d+(?:\-(rc|beta)\d*)?$/' - - # Test non-release tag - - local: .gitlab/ci/pipelines/non_release_tag_test.yml - rules: - - if: '$CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG != null && $CI_COMMIT_TAG !~ /^v\d+\.\d+(?:\-(rc|beta)\d*)?$/' - - # Scheduled pipeline for extended test - - local: .gitlab/ci/pipelines/schedule_extended_test.yml - rules: - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' +- .gitlab/ci/jobs/shared/images.yml +- .gitlab/ci/jobs/shared/templates.yml +- local: .gitlab/ci/pipelines/before_merging.yml + rules: + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "merge_request_event" + when: always +- local: .gitlab/ci/pipelines/latest_release.yml + rules: + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH + == "latest-release" + when: always +- local: .gitlab/ci/pipelines/latest_release_test.yml + rules: + - if: $CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH + == "latest-release-test" + when: always +- local: .gitlab/ci/pipelines/master_branch.yml + rules: + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH + == "master" + when: always +- local: .gitlab/ci/pipelines/release_tag.yml + rules: + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG + =~ /^v\d+\.\d+(?:\-rc\d+)?$/ + when: always +- local: .gitlab/ci/pipelines/beta_release_tag.yml + rules: + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG + =~ /^v\d+\.\d+\-beta\d*$/ + when: always +- local: .gitlab/ci/pipelines/release_tag_test.yml + rules: + - if: $CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_TAG + =~ /^v\d+\.\d+(?:\-rc\d+)?$/ || $CI_COMMIT_TAG =~ /^v\d+\.\d+\-beta\d*$/) + when: always +- local: .gitlab/ci/pipelines/non_release_tag.yml + rules: + - if: $CI_PROJECT_NAMESPACE == "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG + != null && $CI_COMMIT_TAG !~ /^v\d+\.\d+(?:\-rc\d+)?$/ && $CI_COMMIT_TAG !~ + /^v\d+\.\d+\-beta\d*$/ + when: always +- local: .gitlab/ci/pipelines/non_release_tag_test.yml + rules: + - if: $CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG + != null && $CI_COMMIT_TAG !~ /^v\d+\.\d+(?:\-rc\d+)?$/ && $CI_COMMIT_TAG !~ + /^v\d+\.\d+\-beta\d*$/ + when: always +- local: .gitlab/ci/pipelines/schedule_extended_test.yml + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always diff --git a/.gitlab/ci/README.md b/.gitlab/ci/README.md index b225be2813bf9ce23c7182896248d4a2e8a9208d..30c778e0b6ff64fce7fc6cb45967d0908260dce6 100644 --- a/.gitlab/ci/README.md +++ b/.gitlab/ci/README.md @@ -50,3 +50,31 @@ A job's `before_script:` section should be used to: For consistency, these actions (or a subset thereof) should be taken in the order listed above. + +## Simple form + +Preference for simple form also applies to fields that can take either +a value of a certain type, or an array of such values. Examples +include the `cache:` field. + +Do: + +``` +job_foo: + script: + - echo "I'm cached!" + cache: + paths: + - foo.txt +``` + +Don't: + +``` +job_foo: + script: + - echo "I'm cached!" + cache: + - paths: + - foo.txt +``` diff --git a/.gitlab/ci/jobs/build/bin_packages.yml b/.gitlab/ci/jobs/build/bin_packages.yml deleted file mode 100644 index 6f4c266fdcee6bf774ef566310d81e0232ebcd21..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/bin_packages.yml +++ /dev/null @@ -1,35 +0,0 @@ -include: .gitlab/ci/jobs/build/bin_packages_common.yml - -oc.build:dpkg:amd64: - extends: - - .tags_template__build - - .bin_packages_common - image: debian:bookworm - stage: build - needs: [] - variables: - TARGET: "dpkg" - before_script: - - . ./scripts/version.sh - - apt update - - apt-get install -y rsync git m4 build-essential patch unzip wget opam jq bc autoconf cmake libev-dev libffi-dev libgmp-dev libhidapi-dev pkg-config zlib1g-dev - artifacts: - paths: - - octez-*.deb - -oc.build:rpm:amd64: - extends: - - .tags_template__build - - .bin_packages_common - image: fedora:39 - stage: build - needs: [] - variables: - TARGET: "rpm" - before_script: - - . ./scripts/version.sh - - dnf update -y - - dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel zlib-devel libpq-devel m4 perl git pkg-config rpmdevtools python3-devel python3-setuptools wget opam rsync which cargo autoconf mock systemd systemd-rpm-macros cmake python3-wheel python3-tox-current-env gcc-c++ - artifacts: - paths: - - octez-*.rpm diff --git a/.gitlab/ci/jobs/build/bin_packages_manual.yml b/.gitlab/ci/jobs/build/bin_packages_manual.yml deleted file mode 100644 index 0d6248ee8a36d2c0ecda2b6512f2f4a25f3ac2bd..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/bin_packages_manual.yml +++ /dev/null @@ -1,38 +0,0 @@ -include: .gitlab/ci/jobs/build/bin_packages_common.yml - -oc.build:dpkg:amd64: - extends: - - .tags_template__build - - .bin_packages_common - image: debian:bookworm - stage: manual - when: manual - needs: [] - variables: - TARGET: "dpkg" - before_script: - - . ./scripts/version.sh - - apt update - - apt-get install -y rsync git m4 build-essential patch unzip wget opam jq bc autoconf cmake libev-dev libffi-dev libgmp-dev libhidapi-dev pkg-config zlib1g-dev - - wget https://sh.rustup.rs/rustup-init.sh - artifacts: - paths: - - octez-*.deb - -oc.build:rpm:amd64: - extends: - - .tags_template__build - - .bin_packages_common - image: fedora:39 - stage: manual - when: manual - needs: [] - variables: - TARGET: "rpm" - before_script: - - . ./scripts/version.sh - - dnf update -y - - dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel zlib-devel libpq-devel m4 git pkg-config rpmdevtools python3-devel python3-setuptools wget opam rsync which cargo autoconf mock systemd systemd-rpm-macros cmake python3-wheel python3-tox-current-env gcc-c++ - artifacts: - paths: - - octez-*.rpm diff --git a/.gitlab/ci/jobs/build/build_get_contracts.yml b/.gitlab/ci/jobs/build/build_get_contracts.yml deleted file mode 100644 index 904de9f76988b9181dbc7061a1f3de503aeb4da0..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/build_get_contracts.yml +++ /dev/null @@ -1,16 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -build_get_contracts: - extends: - - .tags_template__build - - .oc.build_template - rules: - - changes: - paths: - - src/**/* - - devtools/get_contracts/**/* - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - script: - - dune build @devtools/get_contracts/check diff --git a/.gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-experimental.yml b/.gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-experimental.yml deleted file mode 100644 index 58c4c6a75b345d173e1f232093a2541f31da4b62..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-experimental.yml +++ /dev/null @@ -1,10 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -# See comments in oc.build:static-x86_64-linux-binaries-experimental.yml. -oc.build:static-arm64-linux-binaries: - extends: - - .oc.build_static_binaries_template - - .tags_template__build_arm64 - variables: - ARCH: "arm64" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" diff --git a/.gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml b/.gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml deleted file mode 100644 index 95d1f264bb2c681663429afbad5f51aacad98763..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml +++ /dev/null @@ -1,13 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -# See comments in oc.build:static-x86_64-linux-binaries-experimental.yml. -oc.build:static-arm64-linux-binaries: - extends: - - .oc.build_static_binaries_template - - .tags_template__build_arm64 - variables: - ARCH: "arm64" - EXECUTABLE_FILES: "script-inputs/released-executables" - # Extend the lifespan to prevent failure for external tools using artifacts. - artifacts: - expire_in: 90 days diff --git a/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-experimental.yml b/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-experimental.yml deleted file mode 100644 index e92c95acd368131987949631a287bd553c716f03..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-experimental.yml +++ /dev/null @@ -1,23 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -# This version of the job builds both released and experimental executables. -# It is used in the following pipelines: -# - Before merging: check whether static executables still compile, -# i.e. that we do pass the -static flag and that when we do it does compile -# - Master branch: executables (including experimental ones) are used in some test networks -# Variants: -# - an arm64 variant exist, but is only used in the master branch pipeline -# (no need to test that we pass the -static flag twice) -# - released variants exist, that are used in release tag pipelines -# (they do not build experimental executables) -oc.build:static-x86_64-linux-binaries: - extends: - - .tags_template__build - - .oc.build_static_binaries_template - # Even though not many tests depend on static executables, some of those that do - # are limiting factors in the total duration of pipelines. - # So we start this job as early as possible, without waiting for sanity_ci. - needs: [trigger] - variables: - ARCH: "x86_64" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" diff --git a/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml b/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml deleted file mode 100644 index 71cf90c68ade0f045780637cfe58f5b42017487e..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml +++ /dev/null @@ -1,14 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -# See comments in oc.build:static-x86_64-linux-binaries-experimental.yml. -oc.build:static-x86_64-linux-binaries: - extends: - - .tags_template__build - - .oc.build_static_binaries_template - needs: [trigger] - variables: - ARCH: "x86_64" - EXECUTABLE_FILES: "script-inputs/released-executables" - # Extend the lifespan to prevent failure for external tools using artifacts. - artifacts: - expire_in: 90 days diff --git a/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml b/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml deleted file mode 100644 index 01a9c940887600397f5c9804a515631d1ca4fb78..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml +++ /dev/null @@ -1,14 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -# The build_arm64 jobs are split in two to keep the artifact size -# under the 1GB hard limit set by GitLab. - -# 'oc.build_arm64-exp-dev-extra' builds the developer and experimental -# executables, as well as the tezt test suite and the TPS evaluation -# tool. -oc.build_arm64-exp-dev-extra: - extends: - - .oc.build_arm64 - variables: - EXECUTABLE_FILES: "script-inputs/experimental-executables script-inputs/dev-executables" - BUILD_EXTRA: "src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe tezt/tests/main.exe" diff --git a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml b/.gitlab/ci/jobs/build/oc.build_arm64-released.yml deleted file mode 100644 index 4c947e6f3edcdc95351ef365d88287192ed1a7ca..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml +++ /dev/null @@ -1,11 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -# The build_arm64 jobs are split in two to keep the artifact size -# under the 1GB hard limit set by GitLab. - -# 'oc.build_arm64-released' builds the released executables. -oc.build_arm64-released: - extends: - - .oc.build_arm64 - variables: - EXECUTABLE_FILES: "script-inputs/released-executables" diff --git a/.gitlab/ci/jobs/build/oc.build_kernels.yml b/.gitlab/ci/jobs/build/oc.build_kernels.yml deleted file mode 100644 index 9af66d5f33283ea652708d147f081e52360a9f86..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build_kernels.yml +++ /dev/null @@ -1,33 +0,0 @@ -oc.build_kernels: - extends: - - .tags_template__build - - .oc.kernels_template - stage: build - variables: - # We store caches in _build because GitLab CI Cache requires that - # cached files are in a sub-folder of the checkout. - SCCACHE_DIR: $CI_PROJECT_DIR/_sccache - RUSTC_WRAPPER: "sccache" - script: - - make -f kernels.mk build - artifacts: - name: "build-kernels-$CI_COMMIT_REF_SLUG" - paths: - - evm_kernel.wasm - - smart-rollup-installer - - sequenced_kernel.wasm - - tx_kernel.wasm - - tx_kernel_dal.wasm - - dal_echo_kernel.wasm - - risc-v-sandbox - - risc-v-dummy.elf - - src/risc_v/tests/inline_asm/rv64-inline-asm-tests - expire_in: 1 day - when: on_success - cache: - - key: kernels - paths: - - cargo/ - - key: kernels-sccache - paths: - - _sccache diff --git a/.gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra.yml b/.gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra.yml deleted file mode 100644 index 783cd0e22d0287dc679d70c9c9852e8416f708a9..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra.yml +++ /dev/null @@ -1,20 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -# 'oc.build_x86_64-exp-dev-extra' builds the developer and experimental -# executables, as well as the tezt test suite used by the subsequent -# 'tezt' jobs and TPS evaluation tool. -oc.build_x86_64-exp-dev-extra: - extends: - - .tags_template__build - - .oc.build_x86_64 - # Produced artifacts may be needed later by tools that download - # them to build a specific snapshot of octez (e.g., for - # weeklynets), that's why - at least for the time being - we run - # this job everytime when pipeline is by Marge Bot. - - .rules__octez_changes_or_margebot - variables: - EXECUTABLE_FILES: "script-inputs/experimental-executables script-inputs/dev-executables" - # BUILD_EXTRA contains dune targets that should be built in addition to EXECUTABLE_FILES above. - # Typically, it will contain test runners (like tezt and octogram) and binaries to test that are - # not part of any 'script-inputs/*-executables', such as `Unreleased` binaries. - BUILD_EXTRA: "src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe tezt/tests/main.exe contrib/octez_injector_server/octez_injector_server.exe" diff --git a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml b/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml deleted file mode 100644 index d99b6fedb755c6c4a30c64a2457cf4c5b432cf72..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml +++ /dev/null @@ -1,16 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -# The build_x86_64 jobs are split in two to keep the artifact size -# under the 1GB hard limit set by GitLab. -# 'oc.build_x86_64-released' builds the released executables. -oc.build_x86_64-released: - extends: - - .tags_template__build - - .oc.build_x86_64 - # Produced artifacts may be needed later by tools that download - # them to build a specific snapshot of octez (e.g., for - # weeklynets), that's why - at least for the time being - we run - # this job everytime when pipeline is by Marge Bot. - - .rules__octez_changes_or_margebot - variables: - EXECUTABLE_FILES: "script-inputs/released-executables" diff --git a/.gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml b/.gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml deleted file mode 100644 index cfe08fb0355571b4194ccc183a0b4c722fcdee60..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml +++ /dev/null @@ -1,13 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -oc.docker:amd64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build - stage: build - variables: - IMAGE_ARCH_PREFIX: "amd64_" - CI_DOCKER_HUB: "true" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" - DOCKER_BUILD_TARGET: "with-evm-artifacts" diff --git a/.gitlab/ci/jobs/build/oc.docker:amd64-release.yml b/.gitlab/ci/jobs/build/oc.docker:amd64-release.yml deleted file mode 100644 index dbf019201b7cbb738ad4862208bcccb87740c796..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-release.yml +++ /dev/null @@ -1,12 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -oc.docker:amd64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build - stage: build - variables: - IMAGE_ARCH_PREFIX: "amd64_" - CI_DOCKER_HUB: "true" - EXECUTABLE_FILES: "script-inputs/released-executables" diff --git a/.gitlab/ci/jobs/build/oc.docker:amd64-test.yml b/.gitlab/ci/jobs/build/oc.docker:amd64-test.yml deleted file mode 100644 index d4cf2ee66b54d8d377fbbe9d488d52414aaf8cd0..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-test.yml +++ /dev/null @@ -1,12 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -oc.docker:amd64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build - stage: build - variables: - IMAGE_ARCH_PREFIX: "amd64_" - CI_DOCKER_HUB: "false" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" diff --git a/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml b/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml deleted file mode 100644 index e91083e18cdaa289e63bfa6080721f2108fcadcb..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml +++ /dev/null @@ -1,15 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -oc.docker:amd64: - extends: - - .oc.build_docker_release_template - - .tags_template__build - stage: manual - variables: - IMAGE_ARCH_PREFIX: "amd64_" - CI_DOCKER_HUB: "false" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" - DOCKER_BUILD_TARGET: "with-evm-artifacts" - needs: [] - when: manual - allow_failure: true diff --git a/.gitlab/ci/jobs/build/oc.docker:arm64-experimental.yml b/.gitlab/ci/jobs/build/oc.docker:arm64-experimental.yml deleted file mode 100644 index 884cd596ab456b9edceedd58c89ec42a4bcfe604..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-experimental.yml +++ /dev/null @@ -1,12 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -oc.docker:arm64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build_arm64 - stage: build - variables: - IMAGE_ARCH_PREFIX: "arm64_" - CI_DOCKER_HUB: "true" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" diff --git a/.gitlab/ci/jobs/build/oc.docker:arm64-release.yml b/.gitlab/ci/jobs/build/oc.docker:arm64-release.yml deleted file mode 100644 index ee947b59a01e6ff245e0fd130ea6d215a6a49f1a..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-release.yml +++ /dev/null @@ -1,12 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -oc.docker:arm64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build_arm64 - stage: build - variables: - IMAGE_ARCH_PREFIX: "arm64_" - CI_DOCKER_HUB: "true" - EXECUTABLE_FILES: "script-inputs/released-executables" diff --git a/.gitlab/ci/jobs/build/oc.docker:arm64-test.yml b/.gitlab/ci/jobs/build/oc.docker:arm64-test.yml deleted file mode 100644 index 75a152429a778097002be855f3f2a69f0868f95d..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-test.yml +++ /dev/null @@ -1,12 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -oc.docker:arm64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build_arm64 - stage: build - variables: - IMAGE_ARCH_PREFIX: "arm64_" - CI_DOCKER_HUB: "false" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" diff --git a/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml b/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml deleted file mode 100644 index 817df53dcdde0751aa4735c7ba13b3f9da15a56c..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml +++ /dev/null @@ -1,14 +0,0 @@ -include: .gitlab/ci/jobs/build/common.yml - -oc.docker:arm64: - extends: - - .oc.build_docker_release_template - - .tags_template__build_arm64 - stage: manual - variables: - IMAGE_ARCH_PREFIX: "arm64_" - CI_DOCKER_HUB: "false" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" - needs: [] - when: manual - allow_failure: true diff --git a/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml b/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml deleted file mode 100644 index dba8fb3c10ade40bf6b26b86c3a5ed29e58d317a..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml +++ /dev/null @@ -1,32 +0,0 @@ -# Fetch records for Tezt generated on the last merge request pipeline -# on the most recently merged MR and makes them available in artifacts -# for future merge request pipelines. -oc.tezt:fetch-records: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - - .rules__octez_changes - - .tags_template__build - stage: build - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) - script: - - dune exec scripts/ci/update_records/update.exe -- --log-file tezt-fetch-records.log --test-arg from=last-merged-pipeline --info - after_script: - - ./scripts/ci/filter_corrupted_records.sh - # Allow failure of this job, since Tezt can use the records stored - # in the repo as backup for balancing. - allow_failure: true - artifacts: - paths: - - tezt-fetch-records.log - - tezt/records/*.json - # Keep broken records for debugging - - tezt/records/*.json.broken - # Always store artifacts to have the logs for debugging - when: always - # These artifacts are only used within this pipeline, so they - # don't need a long expiration time. - expire_in: 4 hours diff --git a/.gitlab/ci/jobs/build/ocaml-check.yml b/.gitlab/ci/jobs/build/ocaml-check.yml deleted file mode 100644 index 9cb6519f1120ff3cbbd9f1e069cc23ab49f24c16..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/build/ocaml-check.yml +++ /dev/null @@ -1,16 +0,0 @@ -ocaml-check: - extends: - - .tags_template__build - - .oc.build - needs: [trigger] - rules: - - changes: - paths: - - src/**/* - - tezt/**/* - - .gitlab/**/* - - .gitlab-ci.yml - - devtools/**/* - when: on_success - script: - - dune build @check diff --git a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml b/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml deleted file mode 100644 index 8e1c739ace060bc63d4864976b87792fb6a51c75..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml +++ /dev/null @@ -1,111 +0,0 @@ ---- -# This job fetches coverage files by precedent test stage. It creates the html, -# summary and cobertura reports. It also provide a coverage % for the merge request. - -include: .gitlab/ci/jobs/coverage/common.yml - -oc.unified_coverage: - extends: - - .default_settings_template - - .image_template__runtime_e2etest_dependencies - - .oc.template__coverage_report - rules: - # We do not run this job when margebot triggers the - # pipeline. Instead, the coverage traces are downloaded in the - # master pipeline and the report is computed there. - - if: '$GITLAB_USER_LOGIN == "nomadic-margebot"' - when: never - - changes: - paths: - - src/**/* - - tezt/**/* - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - variables: - # This inhibites the Makefile's opam version check, which this - # job's opam-less image cannot pass. - TEZOS_WITHOUT_OPAM: "true" - # This job requires all bisect_ppx artifacts from the stage test, so we override - # the `dependencies: []` in `.default_settings` with a list of jobs. - # Each new job in the stage test needs to be manually added to this list. - # /!\ Warning: this list is read by `scripts/ci/download_coverage/download.ml`. - # The 'dependencies' field must be followed directly by the 'script' field. - dependencies: - - "tezt 1/60" - - "tezt 2/60" - - "tezt 3/60" - - "tezt 4/60" - - "tezt 5/60" - - "tezt 6/60" - - "tezt 7/60" - - "tezt 8/60" - - "tezt 9/60" - - "tezt 10/60" - - "tezt 11/60" - - "tezt 12/60" - - "tezt 13/60" - - "tezt 14/60" - - "tezt 15/60" - - "tezt 16/60" - - "tezt 17/60" - - "tezt 18/60" - - "tezt 19/60" - - "tezt 20/60" - - "tezt 21/60" - - "tezt 22/60" - - "tezt 23/60" - - "tezt 24/60" - - "tezt 25/60" - - "tezt 26/60" - - "tezt 27/60" - - "tezt 28/60" - - "tezt 29/60" - - "tezt 30/60" - - "tezt 20/60" - - "tezt 31/60" - - "tezt 32/60" - - "tezt 33/60" - - "tezt 34/60" - - "tezt 35/60" - - "tezt 36/60" - - "tezt 37/60" - - "tezt 38/60" - - "tezt 39/60" - - "tezt 40/60" - - "tezt 41/60" - - "tezt 42/60" - - "tezt 43/60" - - "tezt 44/60" - - "tezt 45/60" - - "tezt 46/60" - - "tezt 47/60" - - "tezt 48/60" - - "tezt 49/60" - - "tezt 50/60" - - "tezt 51/60" - - "tezt 52/60" - - "tezt 53/60" - - "tezt 54/60" - - "tezt 55/60" - - "tezt 56/60" - - "tezt 57/60" - - "tezt 58/60" - - "tezt 59/60" - - "tezt 60/60" - - "tezt-memory-4k 1/4" - - "tezt-memory-4k 2/4" - - "tezt-memory-4k 3/4" - - "tezt-memory-4k 4/4" - - "tezt-memory-3k 1/1" - - "tezt-time-sensitive 1/1" - - "oc.unit:non-proto-x86_64" - - "oc.unit:proto-x86_64" - - "oc.unit:other-x86_64" - script: - # On the development branches, we compute coverage. - # TODO: https://gitlab.com/tezos/tezos/-/issues/6173 - # We propagate the exit code to temporarily allow corrupted coverage files. - - ./scripts/ci/report_coverage.sh || exit $? - allow_failure: - exit_codes: 64 diff --git a/.gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml b/.gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml deleted file mode 100644 index 3a7e8f743869184438493e867def418299f1451f..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml +++ /dev/null @@ -1,28 +0,0 @@ -# This job fetches coverage files from the most recently merged MR on the default branch. -# It creates the html, summary and cobertura reports. It also provide a coverage % for the -# merge request. - -include: .gitlab/ci/jobs/coverage/common.yml - -oc.unified_coverage: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - - .oc.template__coverage_report - dependencies: [] - variables: - # The GitLab project to use in the coverage downloader. - PROJECT: $CI_PROJECT_PATH - # The default branch where the coverage downloader will search for - # merge commits. - DEFAULT_BRANCH: $CI_COMMIT_SHA - before_script: - - . ./scripts/version.sh # sets COVERAGE_OUTPUT - script: - # On the project default branch, we fetch coverage from the last merged MR - - mkdir -p _coverage_report - - dune exec scripts/ci/download_coverage/download.exe -- -a from=last-merged-pipeline --info --log-file _coverage_report/download_coverage.log - - ./scripts/ci/report_coverage.sh - # This job will fail if coverage is not found, but that is not - # reason to stop the pipeline. - allow_failure: true diff --git a/.gitlab/ci/jobs/doc/documentation:build_all.yml b/.gitlab/ci/jobs/doc/documentation:build_all.yml deleted file mode 100644 index 7f509dc4d4a5dfd97c2a38acda01674afee6d5e2..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/doc/documentation:build_all.yml +++ /dev/null @@ -1,23 +0,0 @@ -# Warning: the documentation:linkcheck job must have at least the same -# restrictions in the rules as documentation:build_all, otherwise the CI -# may complain that documentation:linkcheck depends on documentation:build_all -# which does not exist. -documentation:build_all: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - - .tags_template__build - - .rules__octez_docs_changes - stage: build - needs: [trigger] - before_script: - - eval $(opam env) - - . $HOME/.venv/bin/activate - script: - - ./.gitlab/ci/jobs/doc/documentation:build_all.sh - artifacts: - expose_as: 'Documentation - excluding old protocols' - paths: - # Path must be terminated with / to expose artifact (gitlab-org/gitlab#/36706) - - docs/_build/ - expire_in: 1 week diff --git a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml b/.gitlab/ci/jobs/doc/documentation:linkcheck.yml deleted file mode 100644 index b30510a7721548b6d49712045ff1aee31c0392fc..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml +++ /dev/null @@ -1,22 +0,0 @@ -documentation:linkcheck: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - stage: doc - needs: [] - rules: - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: always - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/' - when: on_success - - when: manual - before_script: - - . ./scripts/version.sh - - eval $(opam env) - - . $HOME/.venv/bin/activate - script: - - make all - - make -C docs redirectcheck - - make -C docs linkcheck - allow_failure: true diff --git a/.gitlab/ci/jobs/doc/oc.install_python.yml b/.gitlab/ci/jobs/doc/oc.install_python.yml deleted file mode 100644 index 5f557c24d5c2d303b76465f7cf05af9ffc332fea..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/doc/oc.install_python.yml +++ /dev/null @@ -1,31 +0,0 @@ -.oc.install_python_debian_ubuntu_template: - extends: - - .default_settings_template - stage: doc - needs: [trigger] - rules: - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: always - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - docs/developer/install-python-debian-ubuntu.sh - when: on_success - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/' - when: on_success - - when: manual - allow_failure: true - script: - - ./docs/developer/install-python-debian-ubuntu.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} - -oc.install_python_focal: - image: public.ecr.aws/lts/ubuntu:20.04_stable - extends: .oc.install_python_debian_ubuntu_template - -oc.install_python_jammy: - image: public.ecr.aws/lts/ubuntu:22.04_stable - extends: .oc.install_python_debian_ubuntu_template - -oc.install_python_bullseye: - image: debian:bullseye - extends: .oc.install_python_debian_ubuntu_template diff --git a/.gitlab/ci/jobs/doc/publish:documentation.yml b/.gitlab/ci/jobs/doc/publish:documentation.yml deleted file mode 100644 index 0b92cdda552192fa11661c868900d9abc8c649f8..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/doc/publish:documentation.yml +++ /dev/null @@ -1,30 +0,0 @@ -include: .gitlab/ci/jobs/shared/templates.yml - -# here we use this hack to publish the tezos documentation on -# gitlab.io because we want to publish the doc for the project -# tezos under https://tezos.gitlab.io and not https://tezos.gitlab.io/tezos -# The latter follows the gitlab url convention of -# https://.gitlab.io// -# Notice that we push only if CI_COMMIT_REF_NAME is really master . -# This allows to test the release workflow -publish:documentation: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - - .rules__octez_docs_changes - stage: doc - # Make the publish_documentation run in the beginning of the master - # pipeline to ensure it has time to run before the next merge. - needs: [] - before_script: - - eval $(opam env) - # Load the environment poetry previously created in the docker image. - # Give access to the Python dependencies/executables - - . $HOME/.venv/bin/activate - - echo "${CI_PK_GITLAB_DOC}" > ~/.ssh/id_ed25519 - - echo "${CI_KH}" > ~/.ssh/known_hosts - - chmod 400 ~/.ssh/id_ed25519 - script: - - ./scripts/ci/doc_publish.sh - # Publish jobs are uninterruptible to avoid publishing partial results. - interruptible: false diff --git a/.gitlab/ci/jobs/packaging/opam:prepare.yml b/.gitlab/ci/jobs/packaging/opam:prepare.yml index 1e4be6a5a424cf724eca9c50a6303c39f8fc289b..0d431c5b3f868710455f112d7ceb7dbc3236a061 100644 --- a/.gitlab/ci/jobs/packaging/opam:prepare.yml +++ b/.gitlab/ci/jobs/packaging/opam:prepare.yml @@ -1,62 +1,45 @@ -# This template is used by the opam test jobs defined in -# .gitlab/ci/jobs/packaging/opam_package.yml -.opam_template: - extends: - - .default_settings_template - - .image_template__runtime_prebuild_dependencies - stage: packaging - # FIXME: https://gitlab.com/nomadic-labs/tezos/-/issues/663 - # FIXME: https://gitlab.com/nomadic-labs/tezos/-/issues/664 - # At the time of writing, the opam tests were quite flaky. - # Therefore, a retry was added. This should be removed once the - # underlying tests have been fixed. - retry: 2 - needs: [opam:prepare] - dependencies: [opam:prepare] - before_script: - - eval $(opam env) - script: - - opam remote add dev-repo ./_opam-repo-for-release - - opam install --yes ${package}.dev - - opam reinstall --yes --with-test ${package}.dev - after_script: - # Stores logs in opam_logs for artifacts and outputs an excerpt on - # failure. [after_script] runs in a separate shell and so requires - # a second opam environment initialization. - - eval $(opam env) - - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - artifacts: - paths: - - opam_logs/ - expire_in: 1 week - when: always - variables: - # See `.gitlab-ci.yml` for details on `RUNTEZTALIAS` - RUNTEZTALIAS: "true" - # We store caches in _build for two reasons: (1) the _build - # folder is excluded from opam's rsync. (2) gitlab ci cache - # requires that cached files are in a sub-folder of the checkout. - SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache - RUSTC_WRAPPER: "sccache" - cache: - key: opam-sccache - paths: - - _build/_sccache +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. opam:prepare: - extends: - - .default_settings_template - - .image_template__runtime_prebuild_dependencies - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} stage: packaging - needs: [trigger] + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - trigger + dependencies: [] before_script: - - eval $(opam env) + - eval $(opam env) script: - - git init _opam-repo-for-release - - ./scripts/opam-prepare-repo.sh dev ./ ./_opam-repo-for-release - - git -C _opam-repo-for-release add packages - - git -C _opam-repo-for-release commit -m "tezos packages" + - git init _opam-repo-for-release + - ./scripts/opam-prepare-repo.sh dev ./ ./_opam-repo-for-release + - git -C _opam-repo-for-release add packages + - git -C _opam-repo-for-release commit -m "tezos packages" artifacts: paths: - - _opam-repo-for-release/ + - _opam-repo-for-release/ diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index 4b81cba6b19da92d584cc2ec6cb2a00649405e03..098bdc89ba15c731d1bdcf906d5a3b7a74f41787 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -1,1136 +1,5133 @@ # This file was automatically generated, do not edit. -# Edit file manifest/main.ml instead. - -.rules_template__trigger_exec_opam_batch_1: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 1 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 1 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 1 minutes - - when: never # default - -.rules_template__trigger_all_opam_batch_1: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 1 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 1 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 1 minutes - - when: never # default - -.rules_template__trigger_exec_opam_batch_2: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 2 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 2 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 2 minutes - - when: never # default - -.rules_template__trigger_all_opam_batch_2: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 2 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 2 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 2 minutes - - when: never # default - -.rules_template__trigger_exec_opam_batch_3: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 3 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 3 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 3 minutes - - when: never # default - -.rules_template__trigger_all_opam_batch_3: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 3 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 3 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 3 minutes - - when: never # default - -.rules_template__trigger_exec_opam_batch_4: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 4 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 4 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 4 minutes - - when: never # default - -.rules_template__trigger_all_opam_batch_4: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 4 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 4 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 4 minutes - - when: never # default - -.rules_template__trigger_exec_opam_batch_5: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 5 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 5 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 5 minutes - - when: never # default - -.rules_template__trigger_all_opam_batch_5: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 5 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 5 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 5 minutes - - when: never # default - -.rules_template__trigger_exec_opam_batch_6: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 6 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 6 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 6 minutes - - when: never # default - -.rules_template__trigger_all_opam_batch_6: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 6 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 6 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 6 minutes - - when: never # default - -.rules_template__trigger_exec_opam_batch_7: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 7 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 7 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 7 minutes - - when: never # default - -.rules_template__trigger_all_opam_batch_7: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: 7 minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: 7 minutes - # Run on merge requests when opam changes are detected. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot"' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: 7 minutes - - when: never # default +# Edit file ci/bin/main.ml instead. opam:bls12-381: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: bls12-381 - -# Ignoring unreleased package internal-devtools. - -# Ignoring unreleased package internal-devtools_proto-context-du. - -# Ignoring unreleased package kaitai. - -# Ignoring unreleased package kaitai-of-data-encoding. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-accuser-Proxford: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-accuser-Proxford - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-accuser-PtNairob: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-accuser-PtNairob - -# Ignoring unreleased package octez-accuser-alpha. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-alcotezt: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-alcotezt - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-baker-Proxford: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-baker-Proxford - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-baker-PtNairob: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-baker-PtNairob - -# Ignoring unreleased package octez-baker-alpha. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-client: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-client - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-codec: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-codec - -# Ignoring unreleased package octez-codec-kaitai. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-crawler: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-crawler - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-dac-client: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-dac-client - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-dac-node: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-dac-node - -# Ignoring unreleased package octez-dal-node. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-distributed-internal: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-distributed-internal - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-distributed-lwt-internal: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-distributed-lwt-internal - -# Ignoring unreleased package octez-evm-node. - -# Ignoring unreleased package octez-evm-node-libs. - -# Ignoring unreleased package octez-evm-node-tests. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-injector: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-injector - -# Ignoring unreleased package octez-injector-server. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-internal-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-internal-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-l2-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-l2-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-node: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-node - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-node-config: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-node-config - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-proto-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-proto-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-000-Ps9mPmXa-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-000-Ps9mPmXa-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-001-PtCJ7pwo-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-001-PtCJ7pwo-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-002-PsYLVpVv-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-002-PsYLVpVv-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-003-PsddFKi3-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-003-PsddFKi3-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-004-Pt24m4xi-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-004-Pt24m4xi-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-005-PsBabyM1-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-005-PsBabyM1-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-006-PsCARTHA-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-006-PsCARTHA-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-007-PsDELPH1-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-007-PsDELPH1-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-008-PtEdo2Zk-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-008-PtEdo2Zk-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-009-PsFLoren-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-009-PsFLoren-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-010-PtGRANAD-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-010-PtGRANAD-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-011-PtHangz2-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-011-PtHangz2-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-012-Psithaca-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-012-Psithaca-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-013-PtJakart-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-013-PtJakart-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-014-PtKathma-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-014-PtKathma-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-015-PtLimaPt-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_3 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-015-PtLimaPt-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-016-PtMumbai-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-016-PtMumbai-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-017-PtNairob-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-017-PtNairob-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-018-Proxford-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-018-Proxford-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-alpha-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-alpha-libs - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-protocol-compiler: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-protocol-compiler - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-proxy-server: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-proxy-server - -# Ignoring unreleased package octez-risc-v-pvm. - -# Ignoring unreleased package octez-risc-v-pvm-test. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-rpc-process: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-rpc-process - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-shell-libs: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-shell-libs - -# Ignoring unreleased package octez-shell-tests. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-signer: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-signer - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-smart-rollup-node: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-smart-rollup-node - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-smart-rollup-node-Proxford: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-smart-rollup-node-Proxford - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-smart-rollup-node-PtNairob: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-smart-rollup-node-PtNairob - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-smart-rollup-node-alpha: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-smart-rollup-node-alpha - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-smart-rollup-node-lib: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-smart-rollup-node-lib - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-smart-rollup-wasm-debugger: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-smart-rollup-wasm-debugger-lib: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger-lib - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-smart-rollup-wasm-debugger-plugin: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger-plugin - -# Ignoring unreleased package octez-snoop. - -# Ignoring unreleased package octez-store-tests. - -# Ignoring unreleased package octez-testnet-scenarios. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:octez-version: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: octez-version - -# Ignoring unreleased package octogram. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-benchmark: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-benchmark - -# Ignoring unreleased package tezos-benchmark-017-PtNairob. - -# Ignoring unreleased package tezos-benchmark-018-Proxford. - -# Ignoring unreleased package tezos-benchmark-alpha. - -# Ignoring unreleased package tezos-benchmark-examples. - -# Ignoring unreleased package tezos-benchmark-tests. - -# Ignoring unreleased package tezos-benchmark-type-inference-017-PtNairob. - -# Ignoring unreleased package tezos-benchmark-type-inference-018-Proxford. - -# Ignoring unreleased package tezos-benchmark-type-inference-alpha. - -# Ignoring unreleased package tezos-benchmarks-proto-017-PtNairob. - -# Ignoring unreleased package tezos-benchmarks-proto-018-Proxford. - -# Ignoring unreleased package tezos-benchmarks-proto-alpha. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-client-demo-counter: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-client-demo-counter - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-client-genesis: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-client-genesis - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-dac-client-lib: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-dac-client-lib - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-dac-lib: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-dac-lib - -# Ignoring unreleased package tezos-dac-lib-test. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-dac-node-lib: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_2 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-dac-node-lib - -# Ignoring unreleased package tezos-dac-node-lib-test. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-dal-node-lib: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-dal-node-lib - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-dal-node-services: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-dal-node-services - -# Ignoring unreleased package tezos-injector-017-PtNairob. - -# Ignoring unreleased package tezos-injector-018-Proxford. - -# Ignoring unreleased package tezos-injector-alpha. - -# Ignoring unreleased package tezos-lazy-containers-tests. - -# Ignoring unreleased package tezos-micheline-rewriting. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-openapi: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-openapi - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-000-Ps9mPmXa: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-000-Ps9mPmXa - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-001-PtCJ7pwo: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-001-PtCJ7pwo - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-002-PsYLVpVv: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-002-PsYLVpVv - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-003-PsddFKi3: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_4 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-003-PsddFKi3 - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-004-Pt24m4xi: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-004-Pt24m4xi - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-005-PsBABY5H: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-005-PsBABY5H - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-005-PsBabyM1: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-005-PsBabyM1 - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-006-PsCARTHA: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-006-PsCARTHA - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-007-PsDELPH1: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-007-PsDELPH1 - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-008-PtEdo2Zk: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-008-PtEdo2Zk - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-008-PtEdoTez: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-008-PtEdoTez - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-009-PsFLoren: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-009-PsFLoren - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-010-PtGRANAD: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-010-PtGRANAD - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-011-PtHangz2: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-011-PtHangz2 - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-012-Psithaca: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-012-Psithaca - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-013-PtJakart: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-013-PtJakart - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-014-PtKathma: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_5 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-014-PtKathma - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-015-PtLimaPt: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-015-PtLimaPt - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-016-PtMumbai: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-016-PtMumbai - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-017-PtNairob: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-017-PtNairob - -# Ignoring unreleased package tezos-protocol-017-PtNairob-tests. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-018-Proxford: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-018-Proxford - -# Ignoring unreleased package tezos-protocol-018-Proxford-tests. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-alpha: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-alpha - -# Ignoring unreleased package tezos-protocol-alpha-tests. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-demo-counter: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-demo-counter - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-demo-noops: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-demo-noops - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-protocol-genesis: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_6 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-protocol-genesis - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezos-proxy-server-config: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezos-proxy-server-config - -# Ignoring unreleased package tezos-sc-rollup-node-test. - -# Ignoring unreleased package tezos-scoru-wasm-regressions. - -# Ignoring unreleased package tezos-smart-rollup-node-lib-test. - -# Ignoring unreleased package tezos-tooling. - -# Ignoring unreleased package tezos-tps-evaluation. - -# Ignoring unreleased package tezos-tree-encoding-test. - -# Ignoring unreleased package tezt-etherlink. - -# Ignoring unreleased package tezt-risc-v-sandbox. - + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 opam:tezt-tezos: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh variables: + RUNTEZTALIAS: "true" package: tezt-tezos - -# Ignoring unreleased package tezt-tx-kernel. + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 diff --git a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml b/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml deleted file mode 100644 index d8a8fa57aabe1e914272fc629f88fb4136eec0f8..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Note: here we rely on $IMAGE_ARCH_PREFIX to be empty. -# Otherwise, $DOCKER_IMAGE_TAG would contain $IMAGE_ARCH_PREFIX too. -# $IMAGE_ARCH_PREFIX is only used when building Docker images, -# here we handle all architectures so there is no such variable. - -docker:merge_manifests: - # This job merges the images produced in the jobs - # docker:{amd64,arm64} into a single multi-architecture image, and - # so must be run after these jobs. - extends: - - .docker_auth_template - - .image_template__docker - needs: - - oc.docker:amd64 - - oc.docker:arm64 - stage: prepare_release - variables: - CI_DOCKER_HUB: "true" - script: - - ./scripts/ci/docker_merge_manifests.sh diff --git a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml b/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml deleted file mode 100644 index 37f70b7c661cb62e7b0a40dab3fa5580ce3cf868..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Note: here we rely on $IMAGE_ARCH_PREFIX to be empty. -# Otherwise, $DOCKER_IMAGE_TAG would contain $IMAGE_ARCH_PREFIX too. -# $IMAGE_ARCH_PREFIX is only used when building Docker images, -# here we handle all architectures so there is no such variable. - -docker:merge_manifests: - # This job merges the images produced in the jobs - # docker:{amd64,arm64} into a single multi-architecture image, and - # so must be run after these jobs. - extends: - - .docker_auth_template - - .image_template__docker - needs: - - oc.docker:amd64 - - oc.docker:arm64 - stage: prepare_release - variables: - CI_DOCKER_HUB: "false" - script: - - ./scripts/ci/docker_merge_manifests.sh diff --git a/.gitlab/ci/jobs/publish/docker:promote_to_latest-release.yml b/.gitlab/ci/jobs/publish/docker:promote_to_latest-release.yml deleted file mode 100644 index f89939c10ddbf124d992b8082c1deb4929e3a140..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/publish/docker:promote_to_latest-release.yml +++ /dev/null @@ -1,9 +0,0 @@ -docker:promote_to_latest: - extends: - - .docker_auth_template - - .image_template__docker - stage: publish_release - variables: - CI_DOCKER_HUB: "true" - script: - - ./scripts/ci/docker_promote_to_latest.sh diff --git a/.gitlab/ci/jobs/publish/docker:promote_to_latest-test.yml b/.gitlab/ci/jobs/publish/docker:promote_to_latest-test.yml deleted file mode 100644 index bc9b55848b63a51e84d86f2f8fc64749f3b26025..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/publish/docker:promote_to_latest-test.yml +++ /dev/null @@ -1,9 +0,0 @@ -docker:promote_to_latest: - extends: - - .docker_auth_template - - .image_template__docker - stage: publish_release - variables: - CI_DOCKER_HUB: "false" - script: - - ./scripts/ci/docker_promote_to_latest.sh diff --git a/.gitlab/ci/jobs/publish/gitlab:publish.yml b/.gitlab/ci/jobs/publish/gitlab:publish.yml deleted file mode 100644 index eb0b1c127ae79d18a61f241b0091f7ef81caafa7..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/publish/gitlab:publish.yml +++ /dev/null @@ -1,14 +0,0 @@ -gitlab:publish: - extends: - - .default_settings_template - image: "${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0" - stage: publish_package_gitlab - # Publish jobs are uninterruptible to avoid publishing partial results. - interruptible: false - dependencies: - - oc.build:static-x86_64-linux-binaries - - oc.build:static-arm64-linux-binaries - - oc.build:dpkg:amd64 - - oc.build:rpm:amd64 - script: - - ${CI_PROJECT_DIR}/scripts/ci/create_gitlab_package.sh diff --git a/.gitlab/ci/jobs/publish/gitlab:release.yml b/.gitlab/ci/jobs/publish/gitlab:release.yml deleted file mode 100644 index 22a33598e2c49449cdbf24cde2ed0d80949d4a11..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/publish/gitlab:release.yml +++ /dev/null @@ -1,15 +0,0 @@ -gitlab:release: - extends: - - .default_settings_template - # https://gitlab.com/tezos/docker-images/ci-release - image: "${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0" - stage: publish_release_gitlab - # Publish jobs are uninterruptible to avoid publishing partial results. - interruptible: false - dependencies: - - oc.build:static-x86_64-linux-binaries - - oc.build:static-arm64-linux-binaries - - oc.build:dpkg:amd64 - - oc.build:rpm:amd64 - script: - - ./scripts/ci/gitlab-release.sh diff --git a/.gitlab/ci/jobs/publish/opam:release.yml b/.gitlab/ci/jobs/publish/opam:release.yml deleted file mode 100644 index 6708a7ee424f954810c44bd3d7a70ae63f38f425..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/publish/opam:release.yml +++ /dev/null @@ -1,12 +0,0 @@ -opam:release: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - stage: publish_release - # Publish jobs are uninterruptible to avoid publishing partial results. - interruptible: false - dependencies: - - gitlab:release - script: - # create opam release and push to github (also pushes latest master branch) - - ./scripts/ci/opam-release.sh diff --git a/.gitlab/ci/jobs/publish/publish_kernel_sdk.yml b/.gitlab/ci/jobs/publish/publish_kernel_sdk.yml deleted file mode 100644 index 040feb33a13fd681128b11178bce4236a75b1133..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/publish/publish_kernel_sdk.yml +++ /dev/null @@ -1,25 +0,0 @@ -# -# Smart Rollup: Kernel SDK -# -# See src/kernel_sdk/RELEASE.md for more information - -publish_kernel_sdk: - extends: - - .default_settings_template - - .image_template__rust_toolchain - stage: manual - rules: - - when: manual - allow_failure: true - needs: [] - interruptible: false - script: - - make -f kernels.mk publish-sdk-deps - # Manually set SSL_CERT_DIR as default setting points to empty dir - - SSL_CERT_DIR=/etc/ssl/certs CC=clang make -f kernels.mk publish-sdk - variables: - CARGO_HOME: $CI_PROJECT_DIR/cargo - cache: - - key: kernels - paths: - - cargo/ diff --git a/.gitlab/ci/jobs/sanity/docker:hadolint.yml b/.gitlab/ci/jobs/sanity/docker:hadolint.yml deleted file mode 100644 index 23a4224aa9e21b2d91ef693fcdc69cd3aed5b1ba..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/sanity/docker:hadolint.yml +++ /dev/null @@ -1,15 +0,0 @@ -docker:hadolint: - extends: - - .default_settings_template - image: hadolint/hadolint:2.9.3-debian - stage: sanity - rules: - # Only run on merge requests when Dockerfiles have changed - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - build.Dockerfile - - Dockerfile - allow_failure: true - script: - - hadolint build.Dockerfile - - hadolint Dockerfile diff --git a/.gitlab/ci/jobs/sanity/sanity_ci.yml b/.gitlab/ci/jobs/sanity/sanity_ci.yml deleted file mode 100644 index 3e95741b43519d5475bbc721fdbf18760dd3f4a6..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/sanity/sanity_ci.yml +++ /dev/null @@ -1,14 +0,0 @@ -sanity_ci: - extends: - - .default_settings_template - - .image_template__runtime_prebuild_dependencies - stage: sanity - before_script: - - ./scripts/ci/take_ownership.sh - - eval $(opam env) - script: - - make -C manifest check - - ./scripts/lint.sh --check-gitlab-ci-yml - # Check that the opam-repo images' Alpine version corresponds to - # the value in scripts/version.sh. - - ./scripts/ci/check_alpine_version.sh diff --git a/.gitlab/ci/jobs/shared/images.yml b/.gitlab/ci/jobs/shared/images.yml new file mode 100644 index 0000000000000000000000000000000000000000..eeb885e011901922a21605b7d5103ae76cd7ee94 --- /dev/null +++ b/.gitlab/ci/jobs/shared/images.yml @@ -0,0 +1,41 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +.image_template__alpine: + image: alpine:3.18 +.image_template__ci_release: + image: ${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0 +.image_template__debian_bookworm: + image: debian:bookworm +.image_template__debian_bullseye: + image: debian:bullseye +.image_template__docker: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 +.image_template__fedora_37: + image: fedora:37 +.image_template__fedora_39: + image: fedora:39 +.image_template__hadolint: + image: hadolint/hadolint:2.9.3-debian +.image_template__opam_debian_bullseye: + image: ocaml/opam:debian-11 +.image_template__opam_ubuntu_focal: + image: ocaml/opam:ubuntu-20.04 +.image_template__runtime_build_dependencies: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} +.image_template__runtime_build_test_dependencies: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} +.image_template__runtime_client_libs_dependencies: + image: ${build_deps_image_name}:runtime-client-libs-dependencies--${build_deps_image_version} +.image_template__runtime_e2etest_dependencies: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} +.image_template__runtime_prebuild_dependencies: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} +.image_template__rust_toolchain: + image: ${build_deps_image_name}:rust-toolchain--${build_deps_image_version} +.image_template__semgrep_agent: + image: returntocorp/semgrep-agent:sha-c6cd7cf +.image_template__ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable +.image_template__ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable diff --git a/.gitlab/ci/jobs/shared/templates.yml b/.gitlab/ci/jobs/shared/templates.yml index acd49e49cc326bfd192e8da9866dc54640902a4a..ea523ca5212b69b6c7cf1933c71351c6542cebfe 100644 --- a/.gitlab/ci/jobs/shared/templates.yml +++ b/.gitlab/ci/jobs/shared/templates.yml @@ -55,6 +55,23 @@ - if: '$GITLAB_USER_LOGIN == "nomadic-margebot"' when: on_success +# Only if octez source code has changed and Marge Bot is not the +# trigger +.rules__octez_changes_and_not_margebot: + rules: + - if: '$GITLAB_USER_LOGIN == "nomadic-margebot"' + when: never + - changes: + paths: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + # Only if documentation has changed .rules__octez_docs_changes: rules: diff --git a/.gitlab/ci/jobs/test/check_precommit_hook.yml b/.gitlab/ci/jobs/test/check_precommit_hook.yml deleted file mode 100644 index 9d0502c4c981544b4367f0cd7edbd9aac96754c0..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/check_precommit_hook.yml +++ /dev/null @@ -1,22 +0,0 @@ -check_precommit_hook: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - rules: - - changes: - paths: - - scripts/pre_commit/pre_commit.py - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - stage: test - needs: [trigger] - before_script: - - . ./scripts/version.sh - # Load the environment poetry previously created in the docker image. - # Give access to the Python dependencies/executables - - . $HOME/.venv/bin/activate - script: - - poetry run pylint scripts/pre_commit/pre_commit.py - - poetry run pycodestyle scripts/pre_commit/pre_commit.py - - poetry run mypy scripts/pre_commit/pre_commit.py diff --git a/.gitlab/ci/jobs/test/common.yml b/.gitlab/ci/jobs/test/common.yml index 67e729448b687c1b2a8240bb01faf5291310edf2..9859fba8297e72952a70db45fd76dffebadee0eb 100644 --- a/.gitlab/ci/jobs/test/common.yml +++ b/.gitlab/ci/jobs/test/common.yml @@ -63,7 +63,8 @@ expire_in: 3 day when: always script: - - 'echo "TESTS: ${TESTS}, JUNIT: ${JUNIT}, CI_NODE_INDEX: ${CI_NODE_INDEX}, CI_NODE_TOTAL: ${CI_NODE_TOTAL}" TEZT_PARALLEL: ${TEZT_PARALLEL} TEZT_VARIANT: ${TEZT_VARIANT}' + # Print variables in a shell-friendly format. + - 'echo "TESTS=\"${TESTS}\" JUNIT=\"${JUNIT}\" CI_NODE_INDEX=\"${CI_NODE_INDEX}\" CI_NODE_TOTAL=\"${CI_NODE_TOTAL}\" TEZT_PARALLEL=\"${TEZT_PARALLEL}\" TEZT_VARIANT=\"${TEZT_VARIANT}\""' # Store the list of tests that have been scheduled for execution for later debugging. # It is imperative this this first call to tezt receives any flags passed to the # second call that affect test selection. diff --git a/.gitlab/ci/jobs/test/install_octez.yml b/.gitlab/ci/jobs/test/install_octez.yml deleted file mode 100644 index bd9d94e11aec8ee0f22dcb7c73634ba773780bb0..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/install_octez.yml +++ /dev/null @@ -1,104 +0,0 @@ -.oc.base-test-install-scripts-template: - stage: test - needs: [trigger] - rules: - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: always - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - docs/introduction/install*.sh - - docs/introduction/compile*.sh - when: on_success - # Run when there is label on the merge request - - when: manual - allow_failure: true - - -.oc.install_bin_ubuntu_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - script: - - ./docs/introduction/install-bin-ubuntu.sh - -oc.install_bin_ubuntu_focal: - image: public.ecr.aws/lts/ubuntu:20.04_stable - extends: .oc.install_bin_ubuntu_template - -oc.install_bin_ubuntu_jammy: - image: public.ecr.aws/lts/ubuntu:22.04_stable - extends: .oc.install_bin_ubuntu_template - -.oc.install_bin_rc_ubuntu_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - script: - - ./docs/introduction/install-bin-ubuntu.sh rc - -oc.install_bin_rc_ubuntu_focal: - image: public.ecr.aws/lts/ubuntu:20.04_stable - extends: .oc.install_bin_rc_ubuntu_template - -oc.install_bin_rc_ubuntu_jammy: - image: public.ecr.aws/lts/ubuntu:22.04_stable - extends: .oc.install_bin_rc_ubuntu_template - -.oc.install_bin_fedora_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - script: - - ./docs/introduction/install-bin-fedora.sh - -oc.install_bin_fedora_37: - image: fedora:37 - extends: .oc.install_bin_fedora_template - -.oc.install_bin_rc_fedora_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - script: - - ./docs/introduction/install-bin-fedora.sh rc - -oc.install_bin_rc_fedora_37: - image: fedora:37 - extends: .oc.install_bin_rc_fedora_template - -.oc.install_opam_ubuntu_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - variables: - # The default behavior of opam is to use `nproc` to determine its level of - # parallelism. This returns the number of CPU of the "host" CI runner - # instead of the number of cores a single CI job can reasonably use. - OPAMJOBS: "4" - script: - - ./docs/introduction/install-opam.sh - rules: - # temporarily disable until these jobs are optimized - - when: manual - allow_failure: true - -oc.install_opam_focal: - image: ocaml/opam:ubuntu-20.04 - extends: .oc.install_opam_ubuntu_template - -.oc.compile_sources_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - -oc.compile_release_sources_bullseye: - image: ocaml/opam:debian-11 - extends: .oc.compile_sources_template - script: - - ./docs/introduction/compile-sources.sh tezos/tezos latest-release - -oc.compile_sources_bullseye: - image: ocaml/opam:debian-11 - extends: .oc.compile_sources_template - script: - - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} diff --git a/.gitlab/ci/jobs/test/misc_checks.yml b/.gitlab/ci/jobs/test/misc_checks.yml deleted file mode 100644 index 96daf7021de44836db2bb2f3d3e76f5010459d62..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/misc_checks.yml +++ /dev/null @@ -1,116 +0,0 @@ -oc.misc_checks: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - stage: "test" - needs: [trigger] - before_script: - - ./scripts/ci/take_ownership.sh - - eval $(opam env) - - . ./scripts/version.sh - # Load the environment poetry previously created in the docker image. - # Give access to the Python dependencies/executables - - . $HOME/.venv/bin/activate - rules: - # The linting job runs over the set of [source_directories] - # defined in [scripts/lint.sh] that must be included here: - - changes: - paths: - - src/**/* - - tezt/**/* - - devtools/**/* - - scripts/**/* - - docs/**/* - - contrib/**/* - - etherlink/**/* - - .gitlab-ci.yml - - .gitlab/**/* - script: - - ./scripts/ci/lint_misc_check.sh - - scripts/check_wasm_pvm_regressions.sh check - -# check that ksy files are still up-to-date with octez -kaitai_checks: - extends: - - .test_template - rules: - - changes: - paths: - - src/**/* - - contrib/*kaitai*/**/* - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - # These tests are not flaky at all so we overwrite the retry value - retry: 0 - needs: [trigger] - needs: - - "oc.build_x86_64-released" - script: - - make -C ${CI_PROJECT_DIR} check-kaitai-struct-files || (echo 'Octez encodings and Kaitai files seem to be out of sync. You might need to run `make check-kaitai-struct-files` and commit the resulting diff.' ; false) - -kaitai_e2e_checks: - extends: - - .default_settings_template - - .image_template__runtime_client_libs_dependencies - # These tests are not flaky at all so we overwrite the retry value - retry: 0 - needs: [kaitai_checks] - rules: - - changes: - paths: - - src/**/* - - contrib/*kaitai*/**/* - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - before_script: - - . ./scripts/version.sh - # TODO: https://gitlab.com/tezos/tezos/-/issues/5026 - # As observed for the `unit:js_components` running `npm i` - # everytime we run a job is inefficient. - # - # The benefit of this approach is that we specify node version - # and npm dependencies (package.json) in one place, and that the local - # environment is then the same as CI environment. - - . ./scripts/install_build_deps.js.sh - script: - - ./contrib/kaitai-struct-files/scripts/kaitai_e2e.sh - contrib/kaitai-struct-files/files - contrib/kaitai-struct-files/input - -oc.check_lift_limits_patch: - extends: - - .test_template - # These tests are not flaky at all so we overwrite the retry value - retry: 0 - needs: [trigger] - rules: - - changes: - - src/bin_tps_evaluation/lift_limits.patch - - src/proto_alpha/lib_protocol/main.ml - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - script: - # Check that the patch only modifies the - # src/proto_alpha/lib_protocol. If not, the rules above have to be - # updated. - - '[ $(git apply --numstat src/bin_tps_evaluation/lift_limits.patch | cut -f3) = "src/proto_alpha/lib_protocol/main.ml" ]' - - git apply src/bin_tps_evaluation/lift_limits.patch - - dune build @src/proto_alpha/lib_protocol/check - -commit_titles: - extends: - - .default_settings_template - - .image_template__runtime_prebuild_dependencies - stage: "test" - needs: [trigger] - script: - # Check commit messages - - ./scripts/ci/check_commit_messages.sh || exit $? - allow_failure: - # ./scripts/ci/check_commit_messages.sh exits with code 65 when a - # git history contains invalid commits titles in situations where - # that is allowed. - exit_codes: [65] diff --git a/.gitlab/ci/jobs/test/misc_opam_checks.yml b/.gitlab/ci/jobs/test/misc_opam_checks.yml deleted file mode 100644 index 1ddced10c818451b88a4c98285ff403255ea2797..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/misc_opam_checks.yml +++ /dev/null @@ -1,16 +0,0 @@ -misc_opam_checks: - extends: - - .test_template - needs: [trigger] - script: - # checks that all deps of opam packages are already installed - - ./scripts/opam-check.sh - # TODO: https://gitlab.com/tezos/tezos/-/issues/6604 - # We let this job fail for now due to an issue with ocamlfind - # in opam repos. - allow_failure: true - artifacts: - when: always - paths: - - opam_repo.patch - expire_in: 1 days diff --git a/.gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml b/.gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml deleted file mode 100644 index 812136a6682216eec424590b8bd446330f0bc41f..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml +++ /dev/null @@ -1,4 +0,0 @@ -oc.integration:compiler-rejections: - extends: .test_template - script: - - dune build @runtest_rejections diff --git a/.gitlab/ci/jobs/test/oc.script.yml b/.gitlab/ci/jobs/test/oc.script.yml deleted file mode 100644 index 6bae1ede5f4f3e97aa84c8a0ecd09efd78a68eb0..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.script.yml +++ /dev/null @@ -1,83 +0,0 @@ -############################################################ -## Stage: run scripts to check they are working properly ## -############################################################ - -# Note: this job actually probably doesn't need the oc.build_x86_64 job -# to have finished, but we don't want to start before oc.build_x86_64 has finished either. -# However, when oc.build_x86_64-* don't exist, we don't need to wait for them. -oc.script:snapshot_alpha_and_link: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - stage: test - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) - needs: - - job: trigger - - job: "oc.build_x86_64-released" - optional: true - - job: "oc.build_x86_64-exp-dev-extra" - optional: true - script: - - ./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh - rules: - # We only need to run this if protocol Alpha or if the scripts changed. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - src/proto_alpha/**/* - - .gitlab/**/* - - .gitlab-ci.yml - - scripts/snapshot_alpha_and_link.sh - - scripts/snapshot_alpha.sh - - scripts/user_activated_upgrade.sh - when: on_success - -oc.script:test-gen-genesis: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - - .rules__octez_changes - stage: test - needs: [trigger] - before_script: - - eval $(opam env) - - cd scripts/gen-genesis - script: - - dune build gen_genesis.exe - -oc.script:test_release_versions: - extends: .test_template - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) - script: - - ./scripts/test_release_version.sh - -oc.script:b58_prefix: - # Can be changed to a python image, but using the build docker image to keep - # in sync with the python version used for the tests - extends: - - .default_settings_template - # Requires Python - - .image_template__runtime_build_test_dependencies - rules: - - changes: - paths: - - scripts/b58_prefix/b58_prefix.py - - scripts/b58_prefix/test_b58_prefix.py - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - stage: test - needs: [trigger] - before_script: - - . ./scripts/version.sh - # Load the environment poetry previously created in the docker image. - # Give access to the Python dependencies/executables - - . $HOME/.venv/bin/activate - script: - - poetry run pylint scripts/b58_prefix/b58_prefix.py --disable=missing-docstring --disable=invalid-name - - poetry run pytest scripts/b58_prefix/test_b58_prefix.py diff --git a/.gitlab/ci/jobs/test/oc.semgrep.yml b/.gitlab/ci/jobs/test/oc.semgrep.yml deleted file mode 100644 index f85a7c09ae5c653543510cce901d9b0dce2d7211..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.semgrep.yml +++ /dev/null @@ -1,27 +0,0 @@ -oc.semgrep: - extends: - - .default_settings_template - rules: - - changes: - paths: - - src/**/* - - tezt/**/* - - devtools/**/* - - scripts/semgrep/**/* - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - # We specify the image by hash to avoid flakiness. Indeed, if we took the - # latest release, then an update in the parser or analyser could result in new - # errors being found even if the code doesn't change. This would place the - # burden for fixing the code on the wrong dev (the devs who happen to open an - # MR coinciding with the semgrep update rather than the dev who wrote the - # infringing code in the first place). - # Update the hash in scripts/semgrep/README.md too when updating it here - # Last update: 20212-01-03 - image: returntocorp/semgrep-agent:sha-c6cd7cf - stage: test - needs: [trigger] - script: - - echo "OCaml code linting. For information on how to reproduce locally, check out scripts/semgrep/README.md" - - sh ./scripts/semgrep/lint-all-ocaml-sources.sh diff --git a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml deleted file mode 100644 index 15459d19a5923cbdbc69cd5e74081d6814aeb31c..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml +++ /dev/null @@ -1,17 +0,0 @@ -include: .gitlab/ci/jobs/test/common.yml - -oc.test-liquidity-baking-scripts: - extends: .test_template - rules: - - changes: - paths: - - src/**/* - - scripts/ci/test_liquidity_baking_scripts.sh - - scripts/check-liquidity-baking-scripts.sh - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - dependencies: - - "oc.build_x86_64-released" - - "oc.build_x86_64-exp-dev-extra" - script: ./scripts/ci/test_liquidity_baking_scripts.sh diff --git a/.gitlab/ci/jobs/test/oc.unit.yml b/.gitlab/ci/jobs/test/oc.unit.yml deleted file mode 100644 index a6915a1e0062d0eb0f30adb7231722b372b0cfac..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.unit.yml +++ /dev/null @@ -1,125 +0,0 @@ -.oc.unit_test_template: - extends: - - .test_template - - .rules__octez_changes - variables: - ARCH: "" - MAKE_TARGETS: "" - script: - - make $MAKE_TARGETS - artifacts: - name: "$CI_JOB_NAME-$CI_COMMIT_SHA-${ARCH}" - paths: - - test_results - reports: - junit: test_results/*.xml - expire_in: 1 day - when: always - -.oc.unit_test_template_x86_64: - extends: .oc.unit_test_template - variables: - ARCH: "x86_64" - -.oc.unit_test_template_x86_64_coverage: - extends: - - .oc.unit_test_template_x86_64 - - .oc.template__coverage_files - script: - - make $MAKE_TARGETS - - ./scripts/ci/merge_coverage.sh - artifacts: - when: always - paths: - - $BISECT_FILE - - test_results - -.oc.unit_test_template_arm64: - extends: - - .oc.unit_test_template - - .tags_template__build_arm64 - needs: - - "oc.build_arm64-released" - - "oc.build_arm64-exp-dev-extra" - variables: - ARCH: "arm64" - rules: - # These rules must be imply the rules for the [oc.build_arm64-*] - # jobs, such the build jobs always run if the test jobs are - # included. Conversely, we want to run the test jobs whenever the - # build jobs are included, so we have mainly the same rules here, - # except that we do not make the jobs [when: manual] -- if the - # build jobs were manual and triggered, then there is no point in - # having the user do another manual action to also run the tests. - - changes: - paths: - - src/**/* - - .gitlab/**/* - - .gitlab-ci.yml - - -oc.unit:non-proto-x86_64: - extends: - - .oc.unit_test_template_x86_64_coverage - # The [lib_benchmark] unit tests require Python - - .image_template__runtime_build_test_dependencies - variables: - MAKE_TARGETS: test-nonproto-unit - -oc.unit:other-x86_64: - extends: - - .oc.unit_test_template_x86_64_coverage - variables: - MAKE_TARGETS: test-other-unit - -oc.unit:proto-x86_64: - extends: - - .oc.unit_test_template_x86_64_coverage - variables: - MAKE_TARGETS: test-proto-unit - -oc.unit:webassembly-x86_64: - extends: - - .oc.unit_test_template_x86_64 - # The wasm tests are written in Python - - .image_template__runtime_build_test_dependencies - variables: - MAKE_TARGETS: test-webassembly - # TODO: https://gitlab.com/tezos/tezos/-/issues/4663 - # This test takes around 2 to 4min to complete, but it sometimes - # hangs. We use a timeout to retry the test in this case. The - # underlying issue should be fixed eventually, turning this timeout - # unnecessary. - timeout: 20 min - -oc.unit:non-proto-arm64: - extends: - - .oc.unit_test_template_arm64 - # The [lib_benchmark] unit tests require Python - - .image_template__runtime_build_test_dependencies - variables: - MAKE_TARGETS: test-nonproto-unit test-webassembly - DISTRIBUTE_TESTS_TO_PARALLELS: "true" - parallel: 2 - -oc.unit:js_components: - extends: - - .oc.unit_test_template_x86_64 - - .image_template__runtime_build_test_dependencies - variables: - # See `.gitlab-ci.yml` for details on `RUNTEZTALIAS` - RUNTEZTALIAS: "true" - # Note: this overrides the `before_script` inherited from - # `.test_template` to add `take_ownership.sh`. - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) - - . ./scripts/install_build_deps.js.sh - script: - - make test-js - -oc.unit:protocol_compiles: - extends: .oc.unit_test_template_x86_64 - script: - - dune build @runtest_compile_protocol diff --git a/.gitlab/ci/jobs/test/test_kernels.yml b/.gitlab/ci/jobs/test/test_kernels.yml deleted file mode 100644 index f13d954afdb498603db9e9753c2c2324ae562ab8..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/test_kernels.yml +++ /dev/null @@ -1,21 +0,0 @@ -test_kernels: - extends: - - .oc.kernels_template - stage: test - dependencies: [] - script: - - make -f kernels.mk check - - make -f kernels.mk test - rules: - - changes: - - .gitlab-ci.yml - - kernels.mk - - src/kernel_*/**/* - - src/risc_v/**/* - - etherlink/kernel_evm/**/* - - .gitlab/**/* - - .gitlab-ci.yml - cache: - - key: kernels - paths: - - cargo/ diff --git a/.gitlab/ci/jobs/test/tezt.yml b/.gitlab/ci/jobs/test/tezt.yml deleted file mode 100644 index 1d0cc93adafc4c733df9468a236069855ab0381c..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/tezt.yml +++ /dev/null @@ -1,85 +0,0 @@ -include: .gitlab/ci/jobs/test/common.yml - -tezt: - extends: - - .tezt_tests - variables: - # Exclude tests with tags 'ci_disabled', 'flaky' and `memory_{3,4}k`. - # See tezt/lib_tezos/tag.mli for more information. - TESTS: "/ci_disabled /flaky /memory_3k /memory_4k /time_sensitive" - # the -j option of tezt - TEZT_PARALLEL: 3 - -# the following memory hungry tests are executed with -j 1 -tezt-memory-4k: - extends: [.tezt_tests] - variables: - TESTS: "memory_4k" - TEZT_PARALLEL: 1 - TEZT_VARIANT: "-memory_4k" - parallel: 4 - -tezt-memory-3k: - extends: [.tezt_tests] - variables: - TESTS: "memory_3k" - TEZT_PARALLEL: 1 - TEZT_VARIANT: "-memory_3k" - parallel: 1 - -# the following tests are executed with -j 1 to ensure that other -# tests do not affect their executions. However, these tests are not -# particularly cpu/memory-intensive hence they do not need to run on a -# particular machine contrary to performance regression tests. -tezt-time-sensitive: - extends: [.tezt_tests] - variables: - TESTS: "time_sensitive" - TEZT_PARALLEL: 1 - TEZT_VARIANT: "-time_sensitive" - parallel: 1 - -# these are tezt tests as above, but run using the static binaries -tezt:static-binaries: - extends: - # Expansion of .integration_template but without coverage. - - .default_settings_template - - .image_template__runtime_e2etest_dependencies - - .tezt_template - - .rules__octez_changes - dependencies: - # Fetch src/proto_*/parameters/*.json and tezt/tests/main.exe from - # oc.build_x86_64-exp-dev-extra - - oc.build_x86_64-exp-dev-extra - # And fetch the static executables from build:static - - oc.build:static-x86_64-linux-binaries - - oc.tezt:fetch-records - needs: - - oc.build_x86_64-exp-dev-extra - - oc.build:static-x86_64-linux-binaries - - oc.tezt:fetch-records - variables: - TESTS: "cli" - # Disable coverage - BISECT_FILE: "" - before_script: - - mv octez-binaries/x86_64/octez-* . - -# Note: if you reactivate this test and if you keep it manual, put it in the "manual" stage. -# -#tezt:manual:migration: -# extends: -# - .test_template -# before_script: -# - export TEZOS_CLIENT_UNSAFE_DISABLE_DISCLAIMER=Y -# - curl -s https://api.github.com/repos/Phlogi/tezos-snapshots/releases/latest | jq -r ".assets[] | select(.name) | .browser_download_url" | grep roll | xargs wget -q -# - block_hash=$(echo mainnet.roll.* | sed -r 's/mainnet\.roll\.[0-9_-]+\.(.*)\.[0-9]+\.chain\.xz/\1/g') -# - cat mainnet.roll.* | xz -d -v -T0 > mainnet.rolling -# - scripts/prepare_migration_test.sh auto mainnet.rolling "$block_hash" -# script: -# - dune exec ./tezt/manual_tests/main.exe -- migration --color --log-buffer-size 5000 --log-file tezt-migration.log -# artifacts: -# when: always -# paths: -# - tezt-migration.log -# expire_in: 30 days diff --git a/.gitlab/ci/jobs/test/tezt:build-long.yml b/.gitlab/ci/jobs/test/tezt:build-long.yml deleted file mode 100644 index 37131369c2da860bab9f1359ce54ed33e9cab757..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/tezt:build-long.yml +++ /dev/null @@ -1,13 +0,0 @@ -# Long Tezt tests are not ran in the CI, but we want them to type-check so that -# they can be built in the performance regression test framework executors. -tezt:build-long: - extends: - - .oc.build_template - - .rules__octez_changes - stage: test - # Artificial needs for ordering. - needs: - - "oc.build_x86_64-released" - - "oc.build_x86_64-exp-dev-extra" - script: - - dune build @tezt/long_tests/check diff --git a/.gitlab/ci/jobs/test/tezt_flaky.yml b/.gitlab/ci/jobs/test/tezt_flaky.yml deleted file mode 100644 index c207396bf0cb7781a3899706f6b16277acb7e617..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/tezt_flaky.yml +++ /dev/null @@ -1,18 +0,0 @@ -include: .gitlab/ci/jobs/test/common.yml - -# Runs flaky Tezts in the 'schedule_extended_test' pipeline. -tezt_flaky: - extends: - - .tezt_tests - variables: - # Run only flaky tests - TESTS: "flaky" - # To handle flakiness, consider tweaking TEZT_PARALLEL (passed to - # Tezt's '--job-count'), and TEZT_RETRY (passed to Tezt's - # '--retry') - TEZT_RETRY: 3 - TEZT_PARALLEL: 1 - - # At the moment, there are few tests tagged as flaky, so this should - # suffice. - parallel: 1 diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 17871f8300acd204387e664790dcf6afab4a1dc7..183c5943252a0495f2e3780e2253cc03be3e0ca8 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -1,47 +1,6866 @@ -include: - # Stage: sanity - - .gitlab/ci/jobs/sanity/sanity_ci.yml - - .gitlab/ci/jobs/sanity/docker:hadolint.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. - # Stage: package - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - # Stage: build - - .gitlab/ci/jobs/build/ocaml-check.yml - - .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-experimental.yml - - .gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml - - .gitlab/ci/jobs/build/oc.build_arm64-released.yml - - .gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra.yml - - .gitlab/ci/jobs/build/oc.build_x86_64-released.yml - - .gitlab/ci/jobs/build/oc.build_kernels.yml - - .gitlab/ci/jobs/build/build_get_contracts.yml - - .gitlab/ci/jobs/doc/documentation:build_all.yml - - .gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml - - .gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml - - .gitlab/ci/jobs/build/bin_packages_manual.yml - - .gitlab/ci/jobs/build/oc.tezt:fetch-records.yml - - # Stage: test - - .gitlab/ci/jobs/test/check_precommit_hook.yml - - .gitlab/ci/jobs/test/misc_checks.yml - - .gitlab/ci/jobs/test/misc_opam_checks.yml - - .gitlab/ci/jobs/test/oc.semgrep.yml - - .gitlab/ci/jobs/test/oc.unit.yml - - .gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml - - .gitlab/ci/jobs/test/oc.script.yml - - .gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml - - .gitlab/ci/jobs/test/install_octez.yml - - .gitlab/ci/jobs/test/tezt.yml - - .gitlab/ci/jobs/test/tezt:build-long.yml - - .gitlab/ci/jobs/test/test_kernels.yml - - # Stage: test_coverage - # Only run on merge requests that do not have the label `ci--no-coverage` - - local: .gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml - rules: - - if: '$CI_MERGE_REQUEST_LABELS !~ /(?:^|[,])ci--no-coverage(?:$|[,])/' - - # Stage: doc - - .gitlab/ci/jobs/doc/documentation:linkcheck.yml - - .gitlab/ci/jobs/doc/oc.install_python.yml +sanity_ci: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: sanity + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - make -C manifest check + - ./scripts/lint.sh --check-gitlab-ci-yml + - ./scripts/ci/check_alpine_version.sh + - make -C ci check +docker:hadolint: + image: hadolint/hadolint:2.9.3-debian + stage: sanity + tags: + - gcp + rules: + - changes: + - build.Dockerfile + - Dockerfile + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + allow_failure: true + dependencies: [] + script: + - hadolint build.Dockerfile + - hadolint Dockerfile +opam:prepare: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - trigger + dependencies: [] + before_script: + - eval $(opam env) + script: + - git init _opam-repo-for-release + - ./scripts/opam-prepare-repo.sh dev ./ ./_opam-repo-for-release + - git -C _opam-repo-for-release add packages + - git -C _opam-repo-for-release commit -m "tezos packages" + artifacts: + paths: + - _opam-repo-for-release/ +opam:bls12-381: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: bls12-381 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-accuser-Proxford: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-accuser-Proxford + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-accuser-PtNairob: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-accuser-PtNairob + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-alcotezt: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-alcotezt + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-baker-Proxford: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-baker-Proxford + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-baker-PtNairob: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-baker-PtNairob + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-client: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-client + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-codec: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-codec + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-crawler: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-crawler + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-dac-client: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-dac-client + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-dac-node: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-dac-node + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-distributed-internal: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-distributed-internal + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-distributed-lwt-internal: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-distributed-lwt-internal + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-injector: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-injector + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-internal-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-internal-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-l2-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-l2-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-node: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-node + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-node-config: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-node-config + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-proto-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-proto-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-000-Ps9mPmXa-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-000-Ps9mPmXa-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-001-PtCJ7pwo-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-001-PtCJ7pwo-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-002-PsYLVpVv-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-002-PsYLVpVv-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-003-PsddFKi3-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-003-PsddFKi3-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-004-Pt24m4xi-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-004-Pt24m4xi-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-005-PsBabyM1-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-005-PsBabyM1-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-006-PsCARTHA-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-006-PsCARTHA-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-007-PsDELPH1-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-007-PsDELPH1-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-008-PtEdo2Zk-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-008-PtEdo2Zk-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-009-PsFLoren-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-009-PsFLoren-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-010-PtGRANAD-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-010-PtGRANAD-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-011-PtHangz2-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-011-PtHangz2-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-012-Psithaca-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-012-Psithaca-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-013-PtJakart-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-013-PtJakart-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-014-PtKathma-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-014-PtKathma-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-015-PtLimaPt-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-015-PtLimaPt-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-016-PtMumbai-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-016-PtMumbai-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-017-PtNairob-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-017-PtNairob-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-018-Proxford-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-018-Proxford-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-alpha-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-alpha-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-compiler: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-compiler + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-proxy-server: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-proxy-server + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-rpc-process: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-rpc-process + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-shell-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-shell-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-signer: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-signer + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node-Proxford: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-Proxford + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node-PtNairob: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-PtNairob + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node-alpha: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-alpha + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-wasm-debugger: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-wasm-debugger-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-wasm-debugger-plugin: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger-plugin + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-version: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-version + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-benchmark: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-benchmark + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-client-demo-counter: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-client-demo-counter + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-client-genesis: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-client-genesis + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dac-client-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dac-client-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dac-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dac-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dac-node-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dac-node-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dal-node-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dal-node-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dal-node-services: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dal-node-services + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-openapi: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-openapi + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-000-Ps9mPmXa: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-000-Ps9mPmXa + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-001-PtCJ7pwo: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-001-PtCJ7pwo + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-002-PsYLVpVv: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-002-PsYLVpVv + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-003-PsddFKi3: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-003-PsddFKi3 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-004-Pt24m4xi: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-004-Pt24m4xi + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-005-PsBABY5H: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-005-PsBABY5H + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-005-PsBabyM1: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-005-PsBabyM1 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-006-PsCARTHA: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-006-PsCARTHA + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-007-PsDELPH1: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-007-PsDELPH1 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-008-PtEdo2Zk: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-008-PtEdo2Zk + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-008-PtEdoTez: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-008-PtEdoTez + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-009-PsFLoren: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-009-PsFLoren + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-010-PtGRANAD: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-010-PtGRANAD + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-011-PtHangz2: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-011-PtHangz2 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-012-Psithaca: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-012-Psithaca + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-013-PtJakart: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-013-PtJakart + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-014-PtKathma: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-014-PtKathma + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-015-PtLimaPt: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-015-PtLimaPt + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-016-PtMumbai: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-016-PtMumbai + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-017-PtNairob: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-017-PtNairob + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-018-Proxford: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-018-Proxford + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-alpha: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-alpha + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-demo-counter: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-demo-counter + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-demo-noops: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-demo-noops + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-genesis: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-genesis + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-proxy-server-config: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-proxy-server-config + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezt-tezos: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezt-tezos + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +ocaml-check: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - devtools/**/* + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - dune build @check +oc.build:static-x86_64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables + artifacts: + paths: + - octez-binaries/$ARCH/* +oc.build_arm64-exp-dev-extra: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ + when: on_success + - changes: + - src/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: manual + allow_failure: true + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/experimental-executables script-inputs/dev-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + BUILD_EXTRA: src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe + tezt/tests/main.exe + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_arm64-released: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ + when: on_success + - changes: + - src/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: manual + allow_failure: true + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_x86_64-exp-dev-extra: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + - if: $GITLAB_USER_LOGIN == "nomadic-margebot" + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/experimental-executables script-inputs/dev-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + BUILD_EXTRA: src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe + tezt/tests/main.exe contrib/octez_injector_server/octez_injector_server.exe + COVERAGE_OPTIONS: --instrument-with bisect_ppx + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_x86_64-released: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + - if: $GITLAB_USER_LOGIN == "nomadic-margebot" + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + COVERAGE_OPTIONS: --instrument-with bisect_ppx + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_kernels: + image: ${build_deps_image_name}:rust-toolchain--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - trigger + dependencies: [] + cache: + - key: kernels + paths: + - cargo/ + - key: kernels-sccache + paths: + - _sccache + script: + - make -f kernels.mk build + variables: + SCCACHE_DIR: $CI_PROJECT_DIR/_sccache + RUSTC_WRAPPER: sccache + CC: clang + CARGO_HOME: $CI_PROJECT_DIR/cargo + NATIVE_TARGET: x86_64-unknown-linux-musl + artifacts: + name: build-kernels-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - evm_kernel.wasm + - smart-rollup-installer + - sequenced_kernel.wasm + - tx_kernel.wasm + - tx_kernel_dal.wasm + - dal_echo_kernel.wasm + - risc-v-sandbox + - risc-v-dummy.elf + - src/risc_v/tests/inline_asm/rv64-inline-asm-tests + when: on_success +oc.docker:amd64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: manual + tags: + - gcp + needs: [] + dependencies: [] + allow_failure: true + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: with-evm-artifacts + IMAGE_ARCH_PREFIX: amd64_ + CI_DOCKER_HUB: "false" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables + when: manual +oc.docker:arm64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: manual + tags: + - gcp_arm64 + needs: [] + dependencies: [] + allow_failure: true + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: arm64_ + CI_DOCKER_HUB: "false" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables + when: manual +oc.tezt:fetch-records: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + dependencies: [] + allow_failure: true + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - dune exec scripts/ci/update_records/update.exe -- --log-file tezt-fetch-records.log + --test-arg from=last-merged-pipeline --info + after_script: + - ./scripts/ci/filter_corrupted_records.sh + artifacts: + expire_in: 4 hours + paths: + - tezt-fetch-records.log + - tezt/records/*.json + - tezt/records/*.json.broken + when: always +oc.build:dpkg:amd64: + image: debian:bookworm + stage: manual + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - apt update + - apt-get install -y rsync git m4 build-essential patch unzip wget opam jq bc autoconf + cmake libev-dev libffi-dev libgmp-dev libhidapi-dev pkg-config zlib1g-dev + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: dpkg + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.deb + when: on_success + when: manual +oc.build:rpm:amd64: + image: fedora:39 + stage: manual + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - dnf update -y + - dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel zlib-devel libpq-devel + m4 perl git pkg-config rpmdevtools python3-devel python3-setuptools wget opam + rsync which cargo autoconf mock systemd systemd-rpm-macros cmake python3-wheel + python3-tox-current-env gcc-c++ + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: rpm + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.rpm + when: on_success + when: manual +commit_titles: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + needs: + - trigger + dependencies: [] + allow_failure: + exit_codes: 65 + script: + - ./scripts/ci/check_commit_messages.sh || exit $? +kaitai_checks: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - contrib/*kaitai*/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - make -C ${CI_PROJECT_DIR} check-kaitai-struct-files || (echo 'Octez encodings + and Kaitai files seem to be out of sync. You might need to run `make check-kaitai-struct-files` + and commit the resulting diff.' ; false) +kaitai_e2e_checks: + image: ${build_deps_image_name}:runtime-client-libs-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - contrib/*kaitai*/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - kaitai_checks + dependencies: [] + before_script: + - . ./scripts/version.sh + - . ./scripts/install_build_deps.js.sh + script: + - ./contrib/kaitai-struct-files/scripts/kaitai_e2e.sh contrib/kaitai-struct-files/files + contrib/kaitai-struct-files/input +oc.check_lift_limits_patch: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/bin_tps_evaluation/lift_limits.patch + - src/proto_alpha/lib_protocol/main.ml + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - '[ $(git apply --numstat src/bin_tps_evaluation/lift_limits.patch | cut -f3) = + "src/proto_alpha/lib_protocol/main.ml" ]' + - git apply src/bin_tps_evaluation/lift_limits.patch + - dune build @src/proto_alpha/lib_protocol/check +oc.misc_checks: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - tezt/**/* + - devtools/**/* + - scripts/**/* + - docs/**/* + - contrib/**/* + - etherlink/**/* + - .gitlab-ci.yml + - .gitlab/**/* + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + - . $HOME/.venv/bin/activate + script: + - ./scripts/ci/lint_misc_check.sh + - scripts/check_wasm_pvm_regressions.sh check +misc_opam_checks: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/opam-check.sh + artifacts: + expire_in: 1 day + paths: + - opam_repo.patch + when: always + retry: 2 +oc.semgrep: + image: returntocorp/semgrep-agent:sha-c6cd7cf + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - tezt/**/* + - devtools/**/* + - scripts/semgrep/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - trigger + dependencies: [] + script: + - echo "OCaml code linting. For information on how to reproduce locally, check out + scripts/semgrep/README.md" + - sh ./scripts/semgrep/lint-all-ocaml-sources.sh +oc.integration:compiler-rejections: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - dune build @runtest_rejections +oc.script:test-gen-genesis: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - eval $(opam env) + - cd scripts/gen-genesis + script: + - dune build gen_genesis.exe +oc.script:test_release_versions: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/test_release_version.sh +oc.script:b58_prefix: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - scripts/b58_prefix/b58_prefix.py + - scripts/b58_prefix/test_b58_prefix.py + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - . ./scripts/version.sh + - . $HOME/.venv/bin/activate + script: + - poetry run pylint scripts/b58_prefix/b58_prefix.py --disable=missing-docstring + --disable=invalid-name + - poetry run pytest scripts/b58_prefix/test_b58_prefix.py +oc.test-liquidity-baking-scripts: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - scripts/ci/test_liquidity_baking_scripts.sh + - scripts/check-liquidity-baking-scripts.sh + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/test_liquidity_baking_scripts.sh +oc.script:snapshot_alpha_and_link: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/proto_alpha/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - scripts/snapshot_alpha_and_link.sh + - scripts/snapshot_alpha.sh + - scripts/user_activated_upgrade.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + needs: + - job: trigger + - job: oc.build_x86_64-released + optional: true + - job: oc.build_x86_64-exp-dev-extra + optional: true + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh +test_kernels: + image: ${build_deps_image_name}:rust-toolchain--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - .gitlab-ci.yml + - kernels.mk + - src/kernel_*/**/* + - src/risc_v/**/* + - etherlink/kernel_evm/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - trigger + dependencies: [] + cache: + key: kernels + paths: + - cargo/ + script: + - make -f kernels.mk check + - make -f kernels.mk test + variables: + CC: clang + CARGO_HOME: $CI_PROJECT_DIR/cargo + NATIVE_TARGET: x86_64-unknown-linux-musl +oc.unit:non-proto-x86_64: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - make $MAKE_TARGETS + - ./scripts/ci/merge_coverage.sh + variables: + ARCH: x86_64 + MAKE_TARGETS: test-nonproto-unit + COVERAGE_OPTIONS: --instrument-with bisect_ppx + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 1 day + paths: + - test_results + - $BISECT_FILE + reports: + junit: test_results/*.xml + when: always + retry: 2 +oc.unit:other-x86_64: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - make $MAKE_TARGETS + - ./scripts/ci/merge_coverage.sh + variables: + ARCH: x86_64 + MAKE_TARGETS: test-other-unit + COVERAGE_OPTIONS: --instrument-with bisect_ppx + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 1 day + paths: + - test_results + - $BISECT_FILE + reports: + junit: test_results/*.xml + when: always + retry: 2 +oc.unit:proto-x86_64: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - make $MAKE_TARGETS + - ./scripts/ci/merge_coverage.sh + variables: + ARCH: x86_64 + MAKE_TARGETS: test-proto-unit + COVERAGE_OPTIONS: --instrument-with bisect_ppx + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 1 day + paths: + - test_results + - $BISECT_FILE + reports: + junit: test_results/*.xml + when: always + retry: 2 +oc.unit:non-proto-arm64: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp_arm64 + rules: + - changes: + - src/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - oc.build_arm64-released + - oc.build_arm64-exp-dev-extra + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - make $MAKE_TARGETS + variables: + ARCH: arm64 + MAKE_TARGETS: test-nonproto-unit test-webassembly + DISTRIBUTE_TESTS_TO_PARALLELS: "true" + artifacts: + name: $CI_JOB_NAME-$CI_COMMIT_SHA-${ARCH} + expire_in: 1 day + paths: + - test_results + reports: + junit: test_results/*.xml + when: always + retry: 2 + parallel: 2 +oc.unit:webassembly-x86_64: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + timeout: 20 minutes + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - make test-webassembly +oc.unit:js_components: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + - . ./scripts/install_build_deps.js.sh + script: + - make test-js + variables: + RUNTEZTALIAS: "true" + retry: 2 +oc.unit:protocol_compiles: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - dune build @runtest_compile_protocol +oc.install_bin_ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-ubuntu.sh +oc.install_bin_ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-ubuntu.sh +oc.install_bin_fedora_37: + image: fedora:37 + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-fedora.sh +oc.install_bin_rc_ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-ubuntu.sh rc +oc.install_bin_rc_ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-ubuntu.sh rc +oc.install_bin_rc_fedora_37: + image: fedora:37 + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-fedora.sh rc +oc.install_opam_focal: + image: ocaml/opam:ubuntu-20.04 + stage: test + tags: + - gcp + needs: + - trigger + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-opam.sh + variables: + OPAMJOBS: "4" + when: manual +oc.compile_release_sources_bullseye: + image: ocaml/opam:debian-11 + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh tezos/tezos latest-release +oc.compile_sources_bullseye: + image: ocaml/opam:debian-11 + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} +tezt: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp_tezt + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + dependencies: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - echo "TESTS=\"${TESTS}\" JUNIT=\"${JUNIT}\" CI_NODE_INDEX=\"${CI_NODE_INDEX}\" + CI_NODE_TOTAL=\"${CI_NODE_TOTAL}\" TEZT_PARALLEL=\"${TEZT_PARALLEL}\" TEZT_VARIANT=\"${TEZT_VARIANT}\"" + - _build/default/tezt/tests/main.exe ${TESTS} --from-record tezt/records --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} + --list-tsv > selected_tezts.tsv + - ./scripts/ci/exit_code.sh timeout -k 60 1860 ./scripts/ci/exit_code.sh _build/default/tezt/tests/main.exe + ${TESTS} --color --log-buffer-size 5000 --log-file tezt.log --global-timeout 1800 + --on-unknown-regression-files fail --junit ${JUNIT} --from-record tezt/records + --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} --record tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + --job-count ${TEZT_PARALLEL:-3} --retry ${TEZT_RETRY:-1} + - ./scripts/ci/merge_coverage.sh + variables: + JUNIT: tezt-junit.xml + TEZT_VARIANT: "" + TESTS: /ci_disabled /flaky /memory_3k /memory_4k /time_sensitive + TEZT_RETRY: "1" + TEZT_PARALLEL: "3" + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 3 days + paths: + - selected_tezts.tsv + - tezt.log + - tezt-*.log + - tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + - $JUNIT + - $BISECT_FILE + reports: + junit: $JUNIT + when: always + retry: 2 + parallel: 60 +tezt-memory-4k: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp_tezt + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + dependencies: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - echo "TESTS=\"${TESTS}\" JUNIT=\"${JUNIT}\" CI_NODE_INDEX=\"${CI_NODE_INDEX}\" + CI_NODE_TOTAL=\"${CI_NODE_TOTAL}\" TEZT_PARALLEL=\"${TEZT_PARALLEL}\" TEZT_VARIANT=\"${TEZT_VARIANT}\"" + - _build/default/tezt/tests/main.exe ${TESTS} --from-record tezt/records --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} + --list-tsv > selected_tezts.tsv + - ./scripts/ci/exit_code.sh timeout -k 60 1860 ./scripts/ci/exit_code.sh _build/default/tezt/tests/main.exe + ${TESTS} --color --log-buffer-size 5000 --log-file tezt.log --global-timeout 1800 + --on-unknown-regression-files fail --junit ${JUNIT} --from-record tezt/records + --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} --record tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + --job-count ${TEZT_PARALLEL:-3} --retry ${TEZT_RETRY:-1} + - ./scripts/ci/merge_coverage.sh + variables: + JUNIT: tezt-junit.xml + TEZT_VARIANT: -memory_4k + TESTS: memory_4k + TEZT_RETRY: "1" + TEZT_PARALLEL: "1" + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 3 days + paths: + - selected_tezts.tsv + - tezt.log + - tezt-*.log + - tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + - $JUNIT + - $BISECT_FILE + reports: + junit: $JUNIT + when: always + retry: 2 + parallel: 4 +tezt-memory-3k: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp_tezt + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + dependencies: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - echo "TESTS=\"${TESTS}\" JUNIT=\"${JUNIT}\" CI_NODE_INDEX=\"${CI_NODE_INDEX}\" + CI_NODE_TOTAL=\"${CI_NODE_TOTAL}\" TEZT_PARALLEL=\"${TEZT_PARALLEL}\" TEZT_VARIANT=\"${TEZT_VARIANT}\"" + - _build/default/tezt/tests/main.exe ${TESTS} --from-record tezt/records --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} + --list-tsv > selected_tezts.tsv + - ./scripts/ci/exit_code.sh timeout -k 60 1860 ./scripts/ci/exit_code.sh _build/default/tezt/tests/main.exe + ${TESTS} --color --log-buffer-size 5000 --log-file tezt.log --global-timeout 1800 + --on-unknown-regression-files fail --junit ${JUNIT} --from-record tezt/records + --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} --record tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + --job-count ${TEZT_PARALLEL:-3} --retry ${TEZT_RETRY:-1} + - ./scripts/ci/merge_coverage.sh + variables: + JUNIT: tezt-junit.xml + TEZT_VARIANT: -memory_3k + TESTS: memory_3k + TEZT_RETRY: "1" + TEZT_PARALLEL: "1" + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 3 days + paths: + - selected_tezts.tsv + - tezt.log + - tezt-*.log + - tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + - $JUNIT + - $BISECT_FILE + reports: + junit: $JUNIT + when: always + retry: 2 + parallel: 1 +tezt-time-sensitive: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp_tezt + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + dependencies: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - echo "TESTS=\"${TESTS}\" JUNIT=\"${JUNIT}\" CI_NODE_INDEX=\"${CI_NODE_INDEX}\" + CI_NODE_TOTAL=\"${CI_NODE_TOTAL}\" TEZT_PARALLEL=\"${TEZT_PARALLEL}\" TEZT_VARIANT=\"${TEZT_VARIANT}\"" + - _build/default/tezt/tests/main.exe ${TESTS} --from-record tezt/records --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} + --list-tsv > selected_tezts.tsv + - ./scripts/ci/exit_code.sh timeout -k 60 1860 ./scripts/ci/exit_code.sh _build/default/tezt/tests/main.exe + ${TESTS} --color --log-buffer-size 5000 --log-file tezt.log --global-timeout 1800 + --on-unknown-regression-files fail --junit ${JUNIT} --from-record tezt/records + --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} --record tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + --job-count ${TEZT_PARALLEL:-3} --retry ${TEZT_RETRY:-1} + - ./scripts/ci/merge_coverage.sh + variables: + JUNIT: tezt-junit.xml + TEZT_VARIANT: -time_sensitive + TESTS: time_sensitive + TEZT_RETRY: "1" + TEZT_PARALLEL: "1" + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 3 days + paths: + - selected_tezts.tsv + - tezt.log + - tezt-*.log + - tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + - $JUNIT + - $BISECT_FILE + reports: + junit: $JUNIT + when: always + retry: 2 + parallel: 1 +tezt:static-binaries: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-exp-dev-extra + - oc.build:static-x86_64-linux-binaries + - oc.tezt:fetch-records + dependencies: + - oc.build_x86_64-exp-dev-extra + - oc.build:static-x86_64-linux-binaries + - oc.tezt:fetch-records + before_script: + - mv octez-binaries/x86_64/octez-* . + script: + - echo "TESTS=\"${TESTS}\" JUNIT=\"${JUNIT}\" CI_NODE_INDEX=\"${CI_NODE_INDEX}\" + CI_NODE_TOTAL=\"${CI_NODE_TOTAL}\" TEZT_PARALLEL=\"${TEZT_PARALLEL}\" TEZT_VARIANT=\"${TEZT_VARIANT}\"" + - _build/default/tezt/tests/main.exe ${TESTS} --from-record tezt/records --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} + --list-tsv > selected_tezts.tsv + - ./scripts/ci/exit_code.sh timeout -k 60 1860 ./scripts/ci/exit_code.sh _build/default/tezt/tests/main.exe + ${TESTS} --color --log-buffer-size 5000 --log-file tezt.log --global-timeout 1800 + --on-unknown-regression-files fail --junit ${JUNIT} --from-record tezt/records + --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} --record tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + --job-count ${TEZT_PARALLEL:-3} --retry ${TEZT_RETRY:-1} + - ./scripts/ci/merge_coverage.sh + variables: + JUNIT: tezt-junit.xml + TEZT_VARIANT: "" + TESTS: cli + TEZT_RETRY: "1" + TEZT_PARALLEL: "3" + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 3 days + paths: + - selected_tezts.tsv + - tezt.log + - tezt-*.log + - tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + - $JUNIT + reports: + junit: $JUNIT + when: always +oc.unified_coverage: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} + stage: test_coverage + tags: + - gcp + rules: + - if: $GITLAB_USER_LOGIN == "nomadic-margebot" + when: never + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + dependencies: + - oc.unit:non-proto-x86_64 + - oc.unit:other-x86_64 + - oc.unit:proto-x86_64 + - tezt 1/60 + - tezt 2/60 + - tezt 3/60 + - tezt 4/60 + - tezt 5/60 + - tezt 6/60 + - tezt 7/60 + - tezt 8/60 + - tezt 9/60 + - tezt 10/60 + - tezt 11/60 + - tezt 12/60 + - tezt 13/60 + - tezt 14/60 + - tezt 15/60 + - tezt 16/60 + - tezt 17/60 + - tezt 18/60 + - tezt 19/60 + - tezt 20/60 + - tezt 21/60 + - tezt 22/60 + - tezt 23/60 + - tezt 24/60 + - tezt 25/60 + - tezt 26/60 + - tezt 27/60 + - tezt 28/60 + - tezt 29/60 + - tezt 30/60 + - tezt 31/60 + - tezt 32/60 + - tezt 33/60 + - tezt 34/60 + - tezt 35/60 + - tezt 36/60 + - tezt 37/60 + - tezt 38/60 + - tezt 39/60 + - tezt 40/60 + - tezt 41/60 + - tezt 42/60 + - tezt 43/60 + - tezt 44/60 + - tezt 45/60 + - tezt 46/60 + - tezt 47/60 + - tezt 48/60 + - tezt 49/60 + - tezt 50/60 + - tezt 51/60 + - tezt 52/60 + - tezt 53/60 + - tezt 54/60 + - tezt 55/60 + - tezt 56/60 + - tezt 57/60 + - tezt 58/60 + - tezt 59/60 + - tezt 60/60 + - tezt-memory-4k 1/4 + - tezt-memory-4k 2/4 + - tezt-memory-4k 3/4 + - tezt-memory-4k 4/4 + - tezt-memory-3k 1/1 + - tezt-time-sensitive 1/1 + allow_failure: + exit_codes: 64 + script: + - ./scripts/ci/report_coverage.sh || exit $? + variables: + TEZOS_WITHOUT_OPAM: "true" + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + SLACK_COVERAGE_CHANNEL: C02PHBE7W73 + artifacts: + expire_in: 15 days + paths: + - _coverage_report/ + - $BISECT_FILE + reports: + coverage_report: + coverage_format: cobertura + path: _coverage_report/cobertura.xml + when: always + expose_as: Coverage report + coverage: '/Coverage: ([^%]+%)/' +documentation:build_all: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: doc + tags: + - gcp + rules: + - changes: + - scripts/**/*/ + - script-inputs/**/*/ + - src/**/* + - tezt/**/* + - vendors/**/* + - dune + - dune-project + - dune-workspace + - docs/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - eval $(opam env) + - . $HOME/.venv/bin/activate + script: + - ./.gitlab/ci/jobs/doc/documentation:build_all.sh + artifacts: + expire_in: 1 week + paths: + - docs/_build/ + expose_as: Documentation - excluding old protocols +documentation:linkcheck: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: doc + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ + when: on_success + - when: manual + allow_failure: true + needs: [] + dependencies: [] + allow_failure: true + before_script: + - . ./scripts/version.sh + - eval $(opam env) + - . $HOME/.venv/bin/activate + script: + - make all + - make -C docs redirectcheck + - make -C docs linkcheck +oc.install_python_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: doc + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/developer/install-python-debian-ubuntu.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/developer/install-python-debian-ubuntu.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} +oc.install_python_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: doc + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/developer/install-python-debian-ubuntu.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/developer/install-python-debian-ubuntu.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} +oc.install_python_bullseye: + image: debian:bullseye + stage: doc + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/developer/install-python-debian-ubuntu.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/developer/install-python-debian-ubuntu.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} diff --git a/.gitlab/ci/pipelines/beta_release_tag.yml b/.gitlab/ci/pipelines/beta_release_tag.yml index d3a245bed82f663ddf643b8337aab1592dd6658d..992fd06296e003ddae13815b855ed051f635d76c 100644 --- a/.gitlab/ci/pipelines/beta_release_tag.yml +++ b/.gitlab/ci/pipelines/beta_release_tag.yml @@ -1,13 +1,189 @@ -include: - # Stage: build - - .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.docker:amd64-release.yml - - .gitlab/ci/jobs/build/oc.docker:arm64-release.yml - - .gitlab/ci/jobs/build/bin_packages.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. - # Stage: prepare_release - - .gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml - - # Stage: publish_release_gitlab - - .gitlab/ci/jobs/publish/gitlab:release.yml +oc.build:static-x86_64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.build:static-arm64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.docker:amd64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: amd64_ + CI_DOCKER_HUB: "true" + EXECUTABLE_FILES: script-inputs/released-executables +oc.docker:arm64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: arm64_ + CI_DOCKER_HUB: "true" + EXECUTABLE_FILES: script-inputs/released-executables +oc.build:dpkg:amd64: + image: debian:bookworm + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - apt update + - apt-get install -y rsync git m4 build-essential patch unzip wget opam jq bc autoconf + cmake libev-dev libffi-dev libgmp-dev libhidapi-dev pkg-config zlib1g-dev + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: dpkg + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.deb + when: on_success +oc.build:rpm:amd64: + image: fedora:39 + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - dnf update -y + - dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel zlib-devel libpq-devel + m4 perl git pkg-config rpmdevtools python3-devel python3-setuptools wget opam + rsync which cargo autoconf mock systemd systemd-rpm-macros cmake python3-wheel + python3-tox-current-env gcc-c++ + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: rpm + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.rpm + when: on_success +docker:merge_manifests: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: prepare_release + tags: + - gcp + needs: + - oc.docker:amd64 + - oc.docker:arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_merge_manifests.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "true" +gitlab:release: + image: ${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0 + stage: publish_release_gitlab + tags: + - gcp + needs: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + dependencies: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + interruptible: false + script: + - ./scripts/ci/gitlab-release.sh diff --git a/.gitlab/ci/pipelines/latest_release.yml b/.gitlab/ci/pipelines/latest_release.yml index 31411020d226ea0941da4054d98867ed7b9b4180..144a37910242ba109c7589b5056cdfd4aab7f492 100644 --- a/.gitlab/ci/pipelines/latest_release.yml +++ b/.gitlab/ci/pipelines/latest_release.yml @@ -1,3 +1,20 @@ -include: - # Stage: publish_release - - .gitlab/ci/jobs/publish/docker:promote_to_latest-release.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +docker:promote_to_latest: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: publish_release + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_promote_to_latest.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "true" diff --git a/.gitlab/ci/pipelines/latest_release_test.yml b/.gitlab/ci/pipelines/latest_release_test.yml index 6e17a2fd4374ef687c4202e8f7fc8ba5e4877cb7..29dbe02f2c99ff2ebcb5e204e9a21003c8b7a711 100644 --- a/.gitlab/ci/pipelines/latest_release_test.yml +++ b/.gitlab/ci/pipelines/latest_release_test.yml @@ -1,3 +1,20 @@ -include: - # Stage: publish_release - - .gitlab/ci/jobs/publish/docker:promote_to_latest-test.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +docker:promote_to_latest: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: publish_release + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_promote_to_latest.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "false" diff --git a/.gitlab/ci/pipelines/master_branch.yml b/.gitlab/ci/pipelines/master_branch.yml index 8ef97f65a3d9c27ee4c8d64d10ce5a68a48685da..378fc5d57d63e61e896e455422f1355fbb5cfeb8 100644 --- a/.gitlab/ci/pipelines/master_branch.yml +++ b/.gitlab/ci/pipelines/master_branch.yml @@ -1,20 +1,258 @@ -include: - # Stage: build - - .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-experimental.yml - - .gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-experimental.yml - - .gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml - - .gitlab/ci/jobs/build/oc.build_arm64-released.yml - - .gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml - - .gitlab/ci/jobs/build/oc.docker:arm64-experimental.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. - # Stage: test_coverage - - .gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml - - # Stage: doc - - .gitlab/ci/jobs/doc/publish:documentation.yml - - # Stage: prepare_release - - .gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml - - # Stage: manual - - .gitlab/ci/jobs/publish/publish_kernel_sdk.yml +oc.build:static-x86_64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables + artifacts: + paths: + - octez-binaries/$ARCH/* +oc.build:static-arm64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables + artifacts: + paths: + - octez-binaries/$ARCH/* +oc.build_arm64-released: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ + when: on_success + - changes: + - src/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: manual + allow_failure: true + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_arm64-exp-dev-extra: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ + when: on_success + - changes: + - src/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: manual + allow_failure: true + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/experimental-executables script-inputs/dev-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + BUILD_EXTRA: src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe + tezt/tests/main.exe + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.docker:amd64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: with-evm-artifacts + IMAGE_ARCH_PREFIX: amd64_ + CI_DOCKER_HUB: "true" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables +oc.docker:arm64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: arm64_ + CI_DOCKER_HUB: "true" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables +oc.unified_coverage: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test_coverage + tags: + - gcp + dependencies: [] + allow_failure: true + script: + - . ./scripts/version.sh + - mkdir -p _coverage_report + - dune exec scripts/ci/download_coverage/download.exe -- -a from=last-merged-pipeline + --info --log-file _coverage_report/download_coverage.log + - ./scripts/ci/report_coverage.sh + variables: + PROJECT: $CI_PROJECT_PATH + DEFAULT_BRANCH: $CI_COMMIT_SHA + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + SLACK_COVERAGE_CHANNEL: C02PHBE7W73 + artifacts: + expire_in: 15 days + paths: + - _coverage_report/ + - $BISECT_FILE + reports: + coverage_report: + coverage_format: cobertura + path: _coverage_report/cobertura.xml + when: always + expose_as: Coverage report + coverage: '/Coverage: ([^%]+%)/' +publish:documentation: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: doc + tags: + - gcp + rules: + - changes: + - scripts/**/*/ + - script-inputs/**/*/ + - src/**/* + - tezt/**/* + - vendors/**/* + - dune + - dune-project + - dune-workspace + - docs/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: [] + dependencies: [] + interruptible: false + before_script: + - eval $(opam env) + - . $HOME/.venv/bin/activate + - echo "${CI_PK_GITLAB_DOC}" > ~/.ssh/id_ed25519 + - echo "${CI_KH}" > ~/.ssh/known_hosts + - chmod 400 ~/.ssh/id_ed25519 + script: + - ./scripts/ci/doc_publish.sh +docker:merge_manifests: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: prepare_release + tags: + - gcp + needs: + - oc.docker:amd64 + - oc.docker:arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_merge_manifests.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "true" +publish_kernel_sdk: + image: ${build_deps_image_name}:rust-toolchain--${build_deps_image_version} + stage: manual + tags: + - gcp + needs: [] + dependencies: [] + allow_failure: true + cache: + key: kernels + paths: + - cargo/ + interruptible: false + script: + - make -f kernels.mk publish-sdk-deps + - SSL_CERT_DIR=/etc/ssl/certs CC=clang make -f kernels.mk publish-sdk + variables: + CARGO_HOME: $CI_PROJECT_DIR/cargo + when: manual diff --git a/.gitlab/ci/pipelines/non_release_tag.yml b/.gitlab/ci/pipelines/non_release_tag.yml index 1f3462bf461762fb3bb71b3cd9bbf2afa1129022..b2e5d9a580d3eeabf87dff2cd3fce70d6f5295db 100644 --- a/.gitlab/ci/pipelines/non_release_tag.yml +++ b/.gitlab/ci/pipelines/non_release_tag.yml @@ -1,13 +1,189 @@ -include: - # Stage: build - - .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.docker:amd64-release.yml - - .gitlab/ci/jobs/build/oc.docker:arm64-release.yml - - .gitlab/ci/jobs/build/bin_packages.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. - # Stage: prepare - - .gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml - - # Stage: publish - - .gitlab/ci/jobs/publish/gitlab:publish.yml +oc.build:static-x86_64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.build:static-arm64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.docker:amd64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: amd64_ + CI_DOCKER_HUB: "true" + EXECUTABLE_FILES: script-inputs/released-executables +oc.docker:arm64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: arm64_ + CI_DOCKER_HUB: "true" + EXECUTABLE_FILES: script-inputs/released-executables +oc.build:dpkg:amd64: + image: debian:bookworm + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - apt update + - apt-get install -y rsync git m4 build-essential patch unzip wget opam jq bc autoconf + cmake libev-dev libffi-dev libgmp-dev libhidapi-dev pkg-config zlib1g-dev + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: dpkg + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.deb + when: on_success +oc.build:rpm:amd64: + image: fedora:39 + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - dnf update -y + - dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel zlib-devel libpq-devel + m4 perl git pkg-config rpmdevtools python3-devel python3-setuptools wget opam + rsync which cargo autoconf mock systemd systemd-rpm-macros cmake python3-wheel + python3-tox-current-env gcc-c++ + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: rpm + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.rpm + when: on_success +docker:merge_manifests: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: prepare_release + tags: + - gcp + needs: + - oc.docker:amd64 + - oc.docker:arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_merge_manifests.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "true" +gitlab:publish: + image: ${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0 + stage: publish_package_gitlab + tags: + - gcp + needs: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + dependencies: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + interruptible: false + script: + - ${CI_PROJECT_DIR}/scripts/ci/create_gitlab_package.sh diff --git a/.gitlab/ci/pipelines/non_release_tag_test.yml b/.gitlab/ci/pipelines/non_release_tag_test.yml index 4d2822320128c5f7d4cd664994fdd11b448f5f71..c3a632d563bfa907e2ecc996bbc5b15abb9f2d3c 100644 --- a/.gitlab/ci/pipelines/non_release_tag_test.yml +++ b/.gitlab/ci/pipelines/non_release_tag_test.yml @@ -1,13 +1,189 @@ -include: - # Stage: build - - .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.docker:amd64-test.yml - - .gitlab/ci/jobs/build/oc.docker:arm64-test.yml - - .gitlab/ci/jobs/build/bin_packages.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. - # Stage: prepare - - .gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml - - # Stage: publish - - .gitlab/ci/jobs/publish/gitlab:publish.yml +oc.build:static-x86_64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.build:static-arm64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.docker:amd64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: amd64_ + CI_DOCKER_HUB: "false" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables +oc.docker:arm64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: arm64_ + CI_DOCKER_HUB: "false" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables +oc.build:dpkg:amd64: + image: debian:bookworm + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - apt update + - apt-get install -y rsync git m4 build-essential patch unzip wget opam jq bc autoconf + cmake libev-dev libffi-dev libgmp-dev libhidapi-dev pkg-config zlib1g-dev + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: dpkg + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.deb + when: on_success +oc.build:rpm:amd64: + image: fedora:39 + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - dnf update -y + - dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel zlib-devel libpq-devel + m4 perl git pkg-config rpmdevtools python3-devel python3-setuptools wget opam + rsync which cargo autoconf mock systemd systemd-rpm-macros cmake python3-wheel + python3-tox-current-env gcc-c++ + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: rpm + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.rpm + when: on_success +docker:merge_manifests: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: prepare_release + tags: + - gcp + needs: + - oc.docker:amd64 + - oc.docker:arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_merge_manifests.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "false" +gitlab:publish: + image: ${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0 + stage: publish_package_gitlab + tags: + - gcp + needs: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + dependencies: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + interruptible: false + script: + - ${CI_PROJECT_DIR}/scripts/ci/create_gitlab_package.sh diff --git a/.gitlab/ci/pipelines/release_tag.yml b/.gitlab/ci/pipelines/release_tag.yml index 85b0c28d81c37d1179d0cd08bf312782397996b1..72e93e8c01c36579f6241769bb74f45f1fce5dbe 100644 --- a/.gitlab/ci/pipelines/release_tag.yml +++ b/.gitlab/ci/pipelines/release_tag.yml @@ -1,16 +1,198 @@ -include: - # Stage: build - - .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.docker:amd64-release.yml - - .gitlab/ci/jobs/build/oc.docker:arm64-release.yml - - .gitlab/ci/jobs/build/bin_packages.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. - # Stage: prepare_release - - .gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml - - # Stage: publish_release_gitlab - - .gitlab/ci/jobs/publish/gitlab:release.yml - - # Stage: publish_release - - .gitlab/ci/jobs/publish/opam:release.yml +oc.build:static-x86_64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.build:static-arm64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.docker:amd64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: amd64_ + CI_DOCKER_HUB: "true" + EXECUTABLE_FILES: script-inputs/released-executables +oc.docker:arm64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: arm64_ + CI_DOCKER_HUB: "true" + EXECUTABLE_FILES: script-inputs/released-executables +oc.build:dpkg:amd64: + image: debian:bookworm + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - apt update + - apt-get install -y rsync git m4 build-essential patch unzip wget opam jq bc autoconf + cmake libev-dev libffi-dev libgmp-dev libhidapi-dev pkg-config zlib1g-dev + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: dpkg + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.deb + when: on_success +oc.build:rpm:amd64: + image: fedora:39 + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - dnf update -y + - dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel zlib-devel libpq-devel + m4 perl git pkg-config rpmdevtools python3-devel python3-setuptools wget opam + rsync which cargo autoconf mock systemd systemd-rpm-macros cmake python3-wheel + python3-tox-current-env gcc-c++ + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: rpm + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.rpm + when: on_success +docker:merge_manifests: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: prepare_release + tags: + - gcp + needs: + - oc.docker:amd64 + - oc.docker:arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_merge_manifests.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "true" +gitlab:release: + image: ${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0 + stage: publish_release_gitlab + tags: + - gcp + needs: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + dependencies: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + interruptible: false + script: + - ./scripts/ci/gitlab-release.sh +opam:release: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: publish_release + tags: + - gcp + dependencies: [] + interruptible: false + script: + - ./scripts/ci/opam-release.sh diff --git a/.gitlab/ci/pipelines/release_tag_test.yml b/.gitlab/ci/pipelines/release_tag_test.yml index 5cab19e5bbf639a9019d7585110c7477f2030a2c..ef8c77cbaae2bc40f4c784f3ad027f46ee356eed 100644 --- a/.gitlab/ci/pipelines/release_tag_test.yml +++ b/.gitlab/ci/pipelines/release_tag_test.yml @@ -1,13 +1,189 @@ -include: - # Stage: build - - .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml - - .gitlab/ci/jobs/build/oc.docker:amd64-test.yml - - .gitlab/ci/jobs/build/oc.docker:arm64-test.yml - - .gitlab/ci/jobs/build/bin_packages.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. - # Stage: prepare_release - - .gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml - - # Stage: publish_release_gitlab - - .gitlab/ci/jobs/publish/gitlab:release.yml +oc.build:static-x86_64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.build:static-arm64-linux-binaries: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + script: + - ./scripts/ci/build_static_binaries.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables + artifacts: + expire_in: 90 days + paths: + - octez-binaries/$ARCH/* +oc.docker:amd64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: amd64_ + CI_DOCKER_HUB: "false" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables +oc.docker:arm64: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: build + tags: + - gcp_arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_release.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DOCKER_BUILD_TARGET: without-evm-artifacts + IMAGE_ARCH_PREFIX: arm64_ + CI_DOCKER_HUB: "false" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables +oc.build:dpkg:amd64: + image: debian:bookworm + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - apt update + - apt-get install -y rsync git m4 build-essential patch unzip wget opam jq bc autoconf + cmake libev-dev libffi-dev libgmp-dev libhidapi-dev pkg-config zlib1g-dev + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: dpkg + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.deb + when: on_success +oc.build:rpm:amd64: + image: fedora:39 + stage: build + tags: + - gcp + needs: [] + dependencies: [] + before_script: + - . ./scripts/version.sh + - dnf update -y + - dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel zlib-devel libpq-devel + m4 perl git pkg-config rpmdevtools python3-devel python3-setuptools wget opam + rsync which cargo autoconf mock systemd systemd-rpm-macros cmake python3-wheel + python3-tox-current-env gcc-c++ + script: + - wget https://sh.rustup.rs/rustup-init.sh + - chmod +x rustup-init.sh + - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version + -y + - . $HOME/.cargo/env + - export OPAMYES="true" + - opam init --bare --disable-sandboxing + - make build-deps + - eval $(opam env) + - make $TARGET + variables: + TARGET: rpm + OCTEZ_PKGMAINTAINER: nomadic-labs + BLST_PORTABLE: "yes" + ARCH: amd64 + artifacts: + name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-*.rpm + when: on_success +docker:merge_manifests: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 + stage: prepare_release + tags: + - gcp + needs: + - oc.docker:amd64 + - oc.docker:arm64 + dependencies: [] + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + script: + - ./scripts/ci/docker_merge_manifests.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "false" +gitlab:release: + image: ${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0 + stage: publish_release_gitlab + tags: + - gcp + needs: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + dependencies: + - oc.build:static-x86_64-linux-binaries + - oc.build:static-arm64-linux-binaries + - oc.build:dpkg:amd64 + - oc.build:rpm:amd64 + interruptible: false + script: + - ./scripts/ci/gitlab-release.sh diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index 1494f1c1256b2a4ffab61f4de031af6e9d69e579..ec9314ee366a42e7f6a81cb3c430b6553698e444 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -1,23 +1,5736 @@ -include: - # Stage: build - - .gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml - - .gitlab/ci/jobs/build/oc.build_arm64-released.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. - # These jobs are necessary to run flaky tezts - - .gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra.yml - - .gitlab/ci/jobs/build/oc.build_x86_64-released.yml - - .gitlab/ci/jobs/build/oc.build_kernels.yml - - .gitlab/ci/jobs/build/oc.tezt:fetch-records.yml - - # Stage: packaging - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - # Stage: test - - .gitlab/ci/jobs/test/install_octez.yml - # Flaky tezts - - .gitlab/ci/jobs/test/tezt_flaky.yml - - # Stage: doc - - .gitlab/ci/jobs/doc/documentation:linkcheck.yml - - .gitlab/ci/jobs/doc/oc.install_python.yml +oc.build_arm64-released: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ + when: on_success + - changes: + - src/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: manual + allow_failure: true + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_arm64-exp-dev-extra: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ + when: on_success + - changes: + - src/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: manual + allow_failure: true + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/experimental-executables script-inputs/dev-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + BUILD_EXTRA: src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe + tezt/tests/main.exe + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_x86_64-released: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + - if: $GITLAB_USER_LOGIN == "nomadic-margebot" + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + COVERAGE_OPTIONS: --instrument-with bisect_ppx + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_x86_64-exp-dev-extra: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + - if: $GITLAB_USER_LOGIN == "nomadic-margebot" + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/build_full_unreleased.sh + variables: + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/experimental-executables script-inputs/dev-executables + GIT_SHORTREF: "00000000" + GIT_DATETIME: 1970-01-01 00:00:00 +0000% + GIT_VERSION: dev + BUILD_EXTRA: src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe + tezt/tests/main.exe contrib/octez_injector_server/octez_injector_server.exe + COVERAGE_OPTIONS: --instrument-with bisect_ppx + artifacts: + name: build-$ARCH-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - octez-* + - src/proto_*/parameters/*.json + - _build/default/src/lib_protocol_compiler/bin/main_native.exe + - _build/default/tezt/tests/main.exe + - _build/default/contrib/octez_injector_server/octez_injector_server.exe + when: on_success +oc.build_kernels: + image: ${build_deps_image_name}:rust-toolchain--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - trigger + dependencies: [] + cache: + - key: kernels + paths: + - cargo/ + - key: kernels-sccache + paths: + - _sccache + script: + - make -f kernels.mk build + variables: + SCCACHE_DIR: $CI_PROJECT_DIR/_sccache + RUSTC_WRAPPER: sccache + CC: clang + CARGO_HOME: $CI_PROJECT_DIR/cargo + NATIVE_TARGET: x86_64-unknown-linux-musl + artifacts: + name: build-kernels-$CI_COMMIT_REF_SLUG + expire_in: 1 day + paths: + - evm_kernel.wasm + - smart-rollup-installer + - sequenced_kernel.wasm + - tx_kernel.wasm + - tx_kernel_dal.wasm + - dal_echo_kernel.wasm + - risc-v-sandbox + - risc-v-dummy.elf + - src/risc_v/tests/inline_asm/rv64-inline-asm-tests + when: on_success +oc.tezt:fetch-records: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + dependencies: [] + allow_failure: true + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - dune exec scripts/ci/update_records/update.exe -- --log-file tezt-fetch-records.log + --test-arg from=last-merged-pipeline --info + after_script: + - ./scripts/ci/filter_corrupted_records.sh + artifacts: + expire_in: 4 hours + paths: + - tezt-fetch-records.log + - tezt/records/*.json + - tezt/records/*.json.broken + when: always +opam:prepare: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - trigger + dependencies: [] + before_script: + - eval $(opam env) + script: + - git init _opam-repo-for-release + - ./scripts/opam-prepare-repo.sh dev ./ ./_opam-repo-for-release + - git -C _opam-repo-for-release add packages + - git -C _opam-repo-for-release commit -m "tezos packages" + artifacts: + paths: + - _opam-repo-for-release/ +opam:bls12-381: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: bls12-381 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-accuser-Proxford: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-accuser-Proxford + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-accuser-PtNairob: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-accuser-PtNairob + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-alcotezt: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-alcotezt + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-baker-Proxford: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-baker-Proxford + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-baker-PtNairob: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-baker-PtNairob + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-client: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-client + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-codec: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-codec + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-crawler: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-crawler + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-dac-client: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-dac-client + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-dac-node: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-dac-node + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-distributed-internal: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-distributed-internal + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-distributed-lwt-internal: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-distributed-lwt-internal + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-injector: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-injector + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-internal-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-internal-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-l2-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-l2-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-node: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-node + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-node-config: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-node-config + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-proto-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-proto-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-000-Ps9mPmXa-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-000-Ps9mPmXa-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-001-PtCJ7pwo-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-001-PtCJ7pwo-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-002-PsYLVpVv-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-002-PsYLVpVv-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-003-PsddFKi3-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-003-PsddFKi3-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-004-Pt24m4xi-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-004-Pt24m4xi-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-005-PsBabyM1-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-005-PsBabyM1-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-006-PsCARTHA-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-006-PsCARTHA-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-007-PsDELPH1-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-007-PsDELPH1-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-008-PtEdo2Zk-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-008-PtEdo2Zk-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-009-PsFLoren-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-009-PsFLoren-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-010-PtGRANAD-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-010-PtGRANAD-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-011-PtHangz2-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-011-PtHangz2-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-012-Psithaca-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-012-Psithaca-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-013-PtJakart-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-013-PtJakart-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-014-PtKathma-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-014-PtKathma-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-015-PtLimaPt-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 3 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 3 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 3 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-015-PtLimaPt-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-016-PtMumbai-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-016-PtMumbai-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-017-PtNairob-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-017-PtNairob-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-018-Proxford-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-018-Proxford-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-alpha-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-alpha-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-protocol-compiler: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-protocol-compiler + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-proxy-server: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-proxy-server + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-rpc-process: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-rpc-process + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-shell-libs: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-shell-libs + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-signer: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-signer + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node-Proxford: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-Proxford + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node-PtNairob: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-PtNairob + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node-alpha: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-alpha + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-node-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-wasm-debugger: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-wasm-debugger-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-smart-rollup-wasm-debugger-plugin: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger-plugin + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:octez-version: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: octez-version + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-benchmark: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-benchmark + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-client-demo-counter: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-client-demo-counter + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-client-genesis: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-client-genesis + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dac-client-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dac-client-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dac-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dac-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dac-node-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 2 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 2 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 2 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dac-node-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dal-node-lib: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dal-node-lib + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-dal-node-services: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-dal-node-services + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-openapi: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-openapi + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-000-Ps9mPmXa: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-000-Ps9mPmXa + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-001-PtCJ7pwo: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-001-PtCJ7pwo + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-002-PsYLVpVv: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-002-PsYLVpVv + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-003-PsddFKi3: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 4 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 4 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 4 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-003-PsddFKi3 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-004-Pt24m4xi: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-004-Pt24m4xi + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-005-PsBABY5H: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-005-PsBABY5H + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-005-PsBabyM1: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-005-PsBabyM1 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-006-PsCARTHA: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-006-PsCARTHA + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-007-PsDELPH1: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-007-PsDELPH1 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-008-PtEdo2Zk: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-008-PtEdo2Zk + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-008-PtEdoTez: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-008-PtEdoTez + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-009-PsFLoren: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-009-PsFLoren + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-010-PtGRANAD: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-010-PtGRANAD + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-011-PtHangz2: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-011-PtHangz2 + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-012-Psithaca: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-012-Psithaca + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-013-PtJakart: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-013-PtJakart + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-014-PtKathma: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 5 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 5 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 5 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-014-PtKathma + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-015-PtLimaPt: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-015-PtLimaPt + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-016-PtMumbai: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-016-PtMumbai + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-017-PtNairob: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-017-PtNairob + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-018-Proxford: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-018-Proxford + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-alpha: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-alpha + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-demo-counter: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-demo-counter + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-demo-noops: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-demo-noops + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-protocol-genesis: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 6 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 6 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 6 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-protocol-genesis + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezos-proxy-server-config: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezos-proxy-server-config + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +opam:tezt-tezos: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 7 minutes + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 7 minutes + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" && $GITLAB_USER_LOGIN == "nomadic-margebot" + when: delayed + start_in: 7 minutes + - when: never + needs: + - opam:prepare + dependencies: + - opam:prepare + cache: + key: opam-sccache + paths: + - _build/_sccache + before_script: + - eval $(opam env) + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + variables: + RUNTEZTALIAS: "true" + package: tezt-tezos + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 +oc.install_bin_ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-ubuntu.sh +oc.install_bin_ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-ubuntu.sh +oc.install_bin_fedora_37: + image: fedora:37 + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-fedora.sh +oc.install_bin_rc_ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-ubuntu.sh rc +oc.install_bin_rc_ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-ubuntu.sh rc +oc.install_bin_rc_fedora_37: + image: fedora:37 + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-fedora.sh rc +oc.install_opam_focal: + image: ocaml/opam:ubuntu-20.04 + stage: test + tags: + - gcp + needs: + - trigger + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-opam.sh + variables: + OPAMJOBS: "4" + when: manual +oc.compile_release_sources_bullseye: + image: ocaml/opam:debian-11 + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh tezos/tezos latest-release +oc.compile_sources_bullseye: + image: ocaml/opam:debian-11 + stage: test + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} +tezt_flaky: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp_tezt + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + dependencies: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + - oc.build_kernels + - oc.tezt:fetch-records + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - echo "TESTS=\"${TESTS}\" JUNIT=\"${JUNIT}\" CI_NODE_INDEX=\"${CI_NODE_INDEX}\" + CI_NODE_TOTAL=\"${CI_NODE_TOTAL}\" TEZT_PARALLEL=\"${TEZT_PARALLEL}\" TEZT_VARIANT=\"${TEZT_VARIANT}\"" + - _build/default/tezt/tests/main.exe ${TESTS} --from-record tezt/records --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} + --list-tsv > selected_tezts.tsv + - ./scripts/ci/exit_code.sh timeout -k 60 1860 ./scripts/ci/exit_code.sh _build/default/tezt/tests/main.exe + ${TESTS} --color --log-buffer-size 5000 --log-file tezt.log --global-timeout 1800 + --on-unknown-regression-files fail --junit ${JUNIT} --from-record tezt/records + --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} --record tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + --job-count ${TEZT_PARALLEL:-3} --retry ${TEZT_RETRY:-1} + - ./scripts/ci/merge_coverage.sh + variables: + JUNIT: tezt-junit.xml + TEZT_VARIANT: "" + TESTS: flaky + TEZT_RETRY: "3" + TEZT_PARALLEL: "1" + artifacts: + name: coverage-files-$CI_JOB_ID + expire_in: 3 days + paths: + - selected_tezts.tsv + - tezt.log + - tezt-*.log + - tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json + - $JUNIT + reports: + junit: $JUNIT + when: always + retry: 2 + parallel: 1 +documentation:linkcheck: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: doc + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ + when: on_success + - when: manual + allow_failure: true + needs: [] + dependencies: [] + allow_failure: true + before_script: + - . ./scripts/version.sh + - eval $(opam env) + - . $HOME/.venv/bin/activate + script: + - make all + - make -C docs redirectcheck + - make -C docs linkcheck +oc.install_python_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: doc + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/developer/install-python-debian-ubuntu.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/developer/install-python-debian-ubuntu.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} +oc.install_python_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: doc + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/developer/install-python-debian-ubuntu.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/developer/install-python-debian-ubuntu.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} +oc.install_python_bullseye: + image: debian:bullseye + stage: doc + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: always + - changes: + - docs/developer/install-python-debian-ubuntu.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/developer/install-python-debian-ubuntu.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} diff --git a/ci/README.md b/ci/README.md new file mode 100644 index 0000000000000000000000000000000000000000..63d4146e62bcd131e0860b778847a3d35946af85 --- /dev/null +++ b/ci/README.md @@ -0,0 +1,21 @@ +# CI-in-OCaml + +This directory contains an OCaml generator for the `.gitlab-ci.yml` in +the root of this repository. + +This folder is structured like this: + + - `lib_gitlab_ci`: contains a partial, Octez-agnostic AST of [GitLab CI/CD YAML syntax](https://docs.gitlab.com/ee/ci/yaml/). + - `bin`: contains a set of helpers for creating the Octez-specific + `.gitlab-ci.yml` and the definition of this file in `main.ml`, as + well as an executable for writing `.gitlab-ci.yml` based on that definition. + +## Usage + +To regenerate `.gitlab-ci.yml` (from the root of the repo): + + make -C ci all + +To check that `.gitlab-ci.yml` is up-to-date (from the root of the repo): + + make -C ci check diff --git a/ci/bin/dune b/ci/bin/dune new file mode 100644 index 0000000000000000000000000000000000000000..de8f89d5bde79e1e3a00c483a840d14f9c2c33f8 --- /dev/null +++ b/ci/bin/dune @@ -0,0 +1,4 @@ +(executable + (name main) + (libraries gitlab_ci yaml unix) + (flags :standard -open Gitlab_ci.Base)) diff --git a/ci/bin/main.ml b/ci/bin/main.ml new file mode 100644 index 0000000000000000000000000000000000000000..bddf8a7b97ea59849b69dc89ad99779f93928a8b --- /dev/null +++ b/ci/bin/main.ml @@ -0,0 +1,2383 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(* Main entrypoint of CI-in-OCaml. + + Here we register the set of pipelines, stages and images used to + generate the top-level [.gitlab-ci.yml] file. *) + +open Gitlab_ci +open Gitlab_ci.Types +open Gitlab_ci.Util +open Tezos_ci + +(* Sets up the [default:] top-level configuration element. *) +let default = default ~interruptible:true () + +(* Define [stages:] + + The "manual" stage exists to fix a UI problem that occurs when mixing + manual and non-manual jobs. *) +module Stages = struct + let trigger = Stage.register "trigger" + + let sanity = Stage.register "sanity" + + let build = Stage.register "build" + + let test = Stage.register "test" + + let test_coverage = Stage.register "test_coverage" + + let packaging = Stage.register "packaging" + + let doc = Stage.register "doc" + + let prepare_release = Stage.register "prepare_release" + + let publish_release_gitlab = Stage.register "publish_release_gitlab" + + let publish_release = Stage.register "publish_release" + + let publish_package_gitlab = Stage.register "publish_package_gitlab" + + let manual = Stage.register "manual" +end + +(* Get the [build_deps_image_version] from the environment, which is + typically set by sourcing [scripts/version.sh]. This is used to write + [build_deps_image_version] in the top-level [variables:], used to + specify the versions of the [build_deps] images. *) +let build_deps_image_version = + match Sys.getenv_opt "opam_repository_tag" with + | None -> + failwith + "Please set the environment variable [opam_repository_tag], by e.g. \ + sourcing [scripts/version.sh] before running." + | Some v -> v + +(* Get the [alpine_version] from the environment, which is typically + set by sourcing [scripts/version.sh]. This is used to set the tag + of the image {!Images.alpine}. *) +let alpine_version = + match Sys.getenv_opt "alpine_version" with + | None -> + failwith + "Please set the environment variable [alpine_version], by e.g. \ + sourcing [scripts/version.sh] before running." + | Some v -> v + +(* Top-level [variables:] *) +let variables : variables = + [ + (* /!\ CI_REGISTRY is overriden to use a private Docker registry mirror in AWS ECR + in GitLab namespaces `nomadic-labs` and `tezos` + /!\ This value MUST be the same as `opam_repository_tag` in `scripts/version.sh` *) + ("build_deps_image_version", build_deps_image_version); + ("build_deps_image_name", "${CI_REGISTRY}/tezos/opam-repository"); + ("GIT_STRATEGY", "fetch"); + ("GIT_DEPTH", "1"); + ("GET_SOURCES_ATTEMPTS", "2"); + ("ARTIFACT_DOWNLOAD_ATTEMPTS", "2"); + (* Sets the number of tries before failing opam downloads. *) + ("OPAMRETRIES", "5"); + (* An addition to working around a bug in gitlab-runner's default + unzipping implementation + (https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27496), + this setting cuts cache creation time. *) + ("FF_USE_FASTZIP", "true"); + (* If RUNTEZTALIAS is true, then Tezt tests are included in the + @runtest alias. We set it to false to deactivate these tests in + the unit test jobs, as they already run in the Tezt jobs. It is + set to true in the opam jobs where we want to run the tests + --with-test. *) + ("RUNTEZTALIAS", "false"); + (* TODO: https://gitlab.com/tezos/tezos/-/issues/6764 + "false" is the GitLab default but we've overridden it in the runner settings. + This should be fixed at the runner level but we reset it to the + default here in the meantime. *) + ("FF_KUBERNETES_HONOR_ENTRYPOINT", "false"); + ] + +(* Register images. + + The set of registered images are written to + [.gitlab/ci/jobs/shared/images.yml] for interoperability with + hand-written .yml files. + + For documentation on the [runtime_X_dependencies] and the + [rust_toolchain] images, refer to + {{:https://gitlab.com/tezos/opam-repository/} + tezos/opam-repository}. *) +module Images = struct + let runtime_e2etest_dependencies = + Image.register + ~name:"runtime_e2etest_dependencies" + ~image_path: + "${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version}" + + let runtime_build_test_dependencies = + Image.register + ~name:"runtime_build_test_dependencies" + ~image_path: + "${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version}" + + let runtime_build_dependencies = + Image.register + ~name:"runtime_build_dependencies" + ~image_path: + "${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version}" + + let runtime_prebuild_dependencies = + Image.register + ~name:"runtime_prebuild_dependencies" + ~image_path: + "${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version}" + + let runtime_client_libs_dependencies = + Image.register + ~name:"runtime_client_libs_dependencies" + ~image_path: + "${build_deps_image_name}:runtime-client-libs-dependencies--${build_deps_image_version}" + + let rust_toolchain = + Image.register + ~name:"rust_toolchain" + ~image_path: + "${build_deps_image_name}:rust-toolchain--${build_deps_image_version}" + + (* Match GitLab executors version and directly use the Docker socket + The Docker daemon is already configured, experimental features are enabled + The following environment variables are already set: + - [BUILDKIT_PROGRESS] + - [DOCKER_DRIVER] + - [DOCKER_VERSION] + For more info, see {{:https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#use-docker-socket-binding}} here. + + This image is defined in {{:https://gitlab.com/tezos/docker-images/ci-docker}tezos/docker-images/ci-docker}. *) + let docker = + Image.register + ~name:"docker" + ~image_path:"${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0" + + (* The Alpine version should be kept up to date with the version + used for the [build_deps_image_name] images and specified in the + variable [alpine_version] in [scripts/version.sh]. This is + checked by the jobs [trigger] and [sanity_ci]. *) + let alpine = + Image.register ~name:"alpine" ~image_path:("alpine:" ^ alpine_version) + + let ci_release = + Image.register + ~name:"ci_release" + ~image_path:"${CI_REGISTRY}/tezos/docker-images/ci-release:v1.1.0" + + let debian_bookworm = + Image.register ~name:"debian_bookworm" ~image_path:"debian:bookworm" + + let debian_bullseye = + Image.register ~name:"debian_bullseye" ~image_path:"debian:bullseye" + + let ubuntu_focal = + Image.register + ~name:"ubuntu_focal" + ~image_path:"public.ecr.aws/lts/ubuntu:20.04_stable" + + let ubuntu_jammy = + Image.register + ~name:"ubuntu_jammy" + ~image_path:"public.ecr.aws/lts/ubuntu:22.04_stable" + + let fedora_37 = Image.register ~name:"fedora_37" ~image_path:"fedora:37" + + let fedora_39 = Image.register ~name:"fedora_39" ~image_path:"fedora:39" + + let opam_ubuntu_focal = + Image.register + ~name:"opam_ubuntu_focal" + ~image_path:"ocaml/opam:ubuntu-20.04" + + let opam_debian_bullseye = + Image.register + ~name:"opam_debian_bullseye" + ~image_path:"ocaml/opam:debian-11" + + let hadolint = + Image.register ~name:"hadolint" ~image_path:"hadolint/hadolint:2.9.3-debian" + + (* We specify the semgrep image by hash to avoid flakiness. Indeed, if we took the + latest release, then an update in the parser or analyser could result in new + errors being found even if the code doesn't change. This would place the + burden for fixing the code on the wrong dev (the devs who happen to open an + MR coinciding with the semgrep update rather than the dev who wrote the + infringing code in the first place). + Update the hash in scripts/semgrep/README.md too when updating it here + Last update: 2022-01-03 *) + let semgrep_agent = + Image.register + ~name:"semgrep_agent" + ~image_path:"returntocorp/semgrep-agent:sha-c6cd7cf" +end + +let before_script ?(take_ownership = false) ?(source_version = false) + ?(eval_opam = false) ?(init_python_venv = false) ?(install_js_deps = false) + before_script = + let toggle t x = if t then [x] else [] in + (* FIXME: https://gitlab.com/tezos/tezos/-/issues/2865 *) + toggle take_ownership "./scripts/ci/take_ownership.sh" + @ toggle source_version ". ./scripts/version.sh" + (* TODO: this must run in the before_script of all jobs that use the opam environment. + how to enforce? *) + @ toggle eval_opam "eval $(opam env)" + (* Load the environment poetry previously created in the docker image. + Give access to the Python dependencies/executables *) + @ toggle init_python_venv ". $HOME/.venv/bin/activate" + @ toggle install_js_deps ". ./scripts/install_build_deps.js.sh" + @ before_script + +let job_append_variables variables (job : job) : job = + let existing_variables = Option.value ~default:[] job.variables in + if List.exists (Fun.flip List.mem existing_variables) variables then + (* TODO: no need to complain if we're setting the same value *) + failwith "[job_append_variables] attempting to set an already set variable" ; + {job with variables = Some (existing_variables @ variables)} + +let opt_join o1 o2 f = + match (o1, o2) with + | None, None -> None + | Some x, None | None, Some x -> Some x + | Some x, Some y -> Some (f x y) + +let opt_either field o1 o2 = + match (o1, o2) with + | None, None -> None + | Some x, None | None, Some x -> Some x + | Some _, Some _ -> + failwith + (sf "[job_merge_artifacts] attempted to merge two [%s:] fields." field) + +let max_when : when_artifact -> when_artifact -> when_artifact = + fun w1 w2 -> + match (w1, w2) with + | Always, _ | _, Always | On_success, On_failure | On_failure, On_success -> + Always + | On_success, _ -> On_success + | On_failure, _ -> On_failure + +let merge_reports : reports -> reports -> reports = + fun r1 r2 -> + { + dotenv = opt_either "artifacts:reports:dotenv" r1.dotenv r2.dotenv; + junit = opt_either "artifacts:reports:junit" r1.junit r2.junit; + coverage_report = + opt_either + "artifacts:reports:coverage_report" + r1.coverage_report + r2.coverage_report; + } + +let job_merge_artifacts (new_artifacts : artifacts) (job : job) : job = + let artifacts = + match job.artifacts with + | None -> new_artifacts + | Some {expire_in; paths; reports; when_; expose_as; name} -> + (* This is necessarily inexact. E.g. the length of a day in + seconds depends on leap seconds and stuff. However, this + approximation is sufficient for the purpose of comparing + intervals. *) + let time_interval_to_seconds = function + | Seconds n -> n + | Minutes n -> n * 60 + | Hours n -> n * 60 * 60 + | Days n -> n * 24 * 60 * 60 + | Weeks n -> n * 7 * 24 * 60 * 60 + | Months n -> n * 7 * 24 * 60 * 60 + | Years n -> n * 365 * 7 * 24 * 60 * 60 + in + let max_time_interval ti1 ti2 = + if + compare + (time_interval_to_seconds ti1) + (time_interval_to_seconds ti2) + < 0 + then ti1 + else ti2 + in + let expire_in = + opt_join expire_in new_artifacts.expire_in max_time_interval + in + let paths = paths @ new_artifacts.paths in + let reports = opt_join reports new_artifacts.reports merge_reports in + let when_ = opt_join when_ new_artifacts.when_ max_when in + (* There is no obvious way to join the [name:] and [expose_as:] fields. + We'll prefer the right-most one. *) + let expose_as = + opt_join expose_as new_artifacts.expose_as (fun _ new_expose_as -> + new_expose_as) + in + let name = + opt_join name new_artifacts.name (fun _ new_name -> new_name) + in + {expire_in; paths; reports; when_; expose_as; name} + in + {job with artifacts = Some artifacts} + +(* Coverage collection for OCaml using bisect_ppx consists of three parts: + + 1. [job_enable_coverage_instrumentation]: configures dune to add + [bisect_ppx] when compiling. This is done by + [job_enable_coverage_instrumentation]. + + 2. [job_enable_coverage_output]: configures the runtime environment + to activate the output of coverage traces and storing these as + artifacts. + + 3. Collecting coverage trace artifacts, producing a report using + [bisect-ppx-report], storing the report as an artifact and exposing + the collected coverage percentage to GitLab. This is facilitated by + [job_enable_coverage_report] that setups the artifacts for the + report. + + For integration tests, this means that we perform step 1. in build + jobs, we do step 2. in test jobs and we do 3. in [unified_coverage] + job. Unit tests are built and executed in the same jobs. There, we + do 1. and 2. in the same job. *) +let bisect_file = "$CI_PROJECT_DIR/_coverage_output/" + +let job_enable_coverage_instrumentation (job : job) = + job_append_variables + [("COVERAGE_OPTIONS", "--instrument-with bisect_ppx")] + job + +(* TODO: this will not work very well -- for instance if we had + several different pipeline types that both produce and report + coverage information, but for which the set of test jobs differs. *) +let jobs_with_coverage_output : job list ref = ref [] + +let job_enable_coverage_output ?(expire_in = Days 1) (job : job) = + jobs_with_coverage_output := job :: !jobs_with_coverage_output ; + job + (* Set the run-time environment variable that specifies the + directory where coverage traces should be stored. *) + |> job_append_variables [("BISECT_FILE", bisect_file)] + (* Store the directory of coverage traces as an artifact. *) + |> job_merge_artifacts + (artifacts + ~name:"coverage-files-$CI_JOB_ID" + ~expire_in + ~when_:On_success + ["$BISECT_FILE"]) + +let job_enable_coverage_report job : job = + {job with coverage = Some "/Coverage: ([^%]+%)/"} + (* Set the run-time environment variable that specifies the + directory where coverage traces have been received as artifacts + and the Slack channel where corrupt traces are reported. *) + |> job_append_variables + [("BISECT_FILE", bisect_file); ("SLACK_COVERAGE_CHANNEL", "C02PHBE7W73")] + (* Store the directory of the reports as well as the merged traces + as an artifact. *) + |> job_merge_artifacts + (artifacts + ~expose_as:"Coverage report" + ~reports: + (reports + ~coverage_report: + { + coverage_format = Cobertura; + path = "_coverage_report/cobertura.xml"; + } + ()) + ~expire_in:(Days 15) + ~when_:Always + ["_coverage_report/"; "$BISECT_FILE"]) + +let enable_sccache ?(sccache_dir = "$CI_PROJECT_DIR/_sccache") job = + job_append_variables + [("SCCACHE_DIR", sccache_dir); ("RUSTC_WRAPPER", "sccache")] + job + +(* Define the [trigger] job *) +let trigger = + job + ~image:Images.alpine + ~stage:Stages.trigger + ~rules: + [ + job_rule + ~if_:If.(Rules.(merge_request && assigned_to_marge_bot)) + ~when_:Manual (* Explicit [allow_failure] to make this job blocking *) + ~allow_failure:No + (); + job_rule ~when_:Always (); + ] + ~allow_failure:No + ~timeout:(Minutes 10) + ~name:"trigger" + ~git_strategy:No_strategy + (* This job requires no checkout, setting [No_strategy] saves ~10 seconds. *) + ["echo 'Trigger pipeline!'"] + +(** Helper to create jobs that uses the docker deamon. + + It: + - Sets the appropriate image. + - Activates the docker Daemon as a service. + - It sets up authentification with docker registries *) +let job_docker_authenticated ?variables ?arch ?dependencies ?rules ?when_ + ?allow_failure ~stage ~name script : job = + let docker_version = "24.0.6" in + job + ?arch + ?dependencies + ?rules + ?when_ + ?allow_failure + ~image:Images.docker + ~variables: + ([("DOCKER_VERSION", docker_version)] @ Option.value ~default:[] variables) + ~before_script: + [ + "./scripts/ci/docker_wait_for_daemon.sh"; + "./scripts/ci/docker_check_version.sh ${DOCKER_VERSION}"; + "./scripts/ci/docker_registry_auth.sh"; + ] + ~services:[{name = "docker:${DOCKER_VERSION}-dind"}] + ~stage + ~name + script + +let job_docker_promote_to_latest ~ci_docker_hub : job = + job_docker_authenticated + ~stage:Stages.publish_release + ~name:"docker:promote_to_latest" + ~variables:[("CI_DOCKER_HUB", Bool.to_string ci_docker_hub)] + ["./scripts/ci/docker_promote_to_latest.sh"] + +(* This version of the job builds both released and experimental executables. + It is used in the following pipelines: + - Before merging: check whether static executables still compile, + i.e. that we do pass the -static flag and that when we do it does compile + - Master branch: executables (including experimental ones) are used in some test networks + Variants: + - an arm64 variant exist, but is only used in the master branch pipeline + (no need to test that we pass the -static flag twice) + - released variants exist, that are used in release tag pipelines + (they do not build experimental executables) *) +let job_build_static_binaries ~arch ?(external_ = false) ?(release = false) + ?(needs_trigger = false) () = + let arch_string = + match arch with Tezos_ci.Amd64 -> "x86_64" | Arm64 -> "arm64" + in + let name = "oc.build:static-" ^ arch_string ^ "-linux-binaries" in + let filename_suffix = if release then "release" else "experimental" in + let artifacts = + (* Extend the lifespan to prevent failure for external tools using artifacts. *) + let expire_in = if release then Some (Days 90) else None in + artifacts ?expire_in ["octez-binaries/$ARCH/*"] + in + let executable_files = + "script-inputs/released-executables" + ^ if not release then " script-inputs/experimental-executables" else "" + in + let dependencies = + (* Even though not many tests depend on static executables, some + of those that do are limiting factors in the total duration of + pipelines. So when requested through [needs_trigger] we start + this job as early as possible, without waiting for + sanity_ci. *) + if needs_trigger then Dependent [Job trigger] else Staged [] + in + let job = + job + ~stage:Stages.build + ~arch + ~name + ~image:Images.runtime_build_dependencies + ~before_script:(before_script ~take_ownership:true ~eval_opam:true []) + ~variables:[("ARCH", arch_string); ("EXECUTABLE_FILES", executable_files)] + ~dependencies + ~artifacts + ["./scripts/ci/build_static_binaries.sh"] + in + if external_ then job_external ~filename_suffix job else job + +(* Used in [before_merging] pipeline. *) +let job_static_x86_64_experimental = + job_build_static_binaries ~external_:true ~arch:Amd64 ~needs_trigger:true () + +(** Type of Docker build jobs. + + The semantics of the type is summed up in this table: + + | | Release | Experimental | Test | Test_manual | + |-----------------------+------------+--------------+--------+-------------| + | Image registry | Docker hub | Docker hub | GitLab | GitLab | + | Experimental binaries | no | yes | yes | yes | + | EVM Kernels | no | On amd64 | no | On amd64 | + | Manual job | no | no | no | yes | + + - [Release] Docker builds include only released executables whereas other + types also includes experimental ones. + - [Test_manual] and [Experimental] Docker builds include the EVM kernels in + amd64 builds. + - [Release] and [Experimental] Docker builds are pushed to Docker hub, + whereas other types are pushed to the GitLab registry. + - [Test_manual] Docker builds are triggered manually, put in the stage + [manual] and their failure is allowed. The other types are in the build + stage, run [on_success] and are not allowed to fail. *) +type docker_build_type = Experimental | Release | Test | Test_manual + +(** Creates a Docker build job of the given [arch] and [docker_build_type]. + + If [external_] is set to true (default [false]), then the job is + also written to an external file. *) +let job_docker_build ?rules ~arch ?(external_ = false) docker_build_type : job = + let arch_string = + match arch with Tezos_ci.Amd64 -> "amd64" | Arm64 -> "arm64" + in + let variables = + [ + ( "DOCKER_BUILD_TARGET", + match (arch, docker_build_type) with + | Amd64, (Test_manual | Experimental) -> "with-evm-artifacts" + | _ -> "without-evm-artifacts" ); + ("IMAGE_ARCH_PREFIX", arch_string ^ "_"); + ( "CI_DOCKER_HUB", + Bool.to_string + (match docker_build_type with + | Release | Experimental -> true + | Test | Test_manual -> false) ); + ( "EXECUTABLE_FILES", + match docker_build_type with + | Release -> "script-inputs/released-executables" + | Test | Test_manual | Experimental -> + "script-inputs/released-executables \ + script-inputs/experimental-executables" ); + ] + in + let stage, dependencies, when_, (allow_failure : allow_failure_job option) = + match docker_build_type with + | Test_manual -> (Stages.manual, Dependent [], Some Manual, Some Yes) + | _ -> (Stages.build, Staged [], None, None) + in + let name = "oc.docker:" ^ arch_string in + let filename_suffix = + match docker_build_type with + | Release -> "release" + | Experimental -> "experimental" + | Test -> "test" + | Test_manual -> "test_manual" + in + let job = + job_docker_authenticated + ?when_ + ?allow_failure + ?rules + ~stage + ~dependencies + ~arch + ~name + ~variables + ["./scripts/ci/docker_release.sh"] + in + if external_ then job_external ~directory:"build" ~filename_suffix job + else job + +(* Used in external [before_merging] pipeline *) +let job_docker_amd64_test_manual : job = + job_docker_build ~external_:true ~arch:Amd64 Test_manual + +(* Used in external [before_merging] pipeline *) +let job_docker_arm64_test_manual : job = + job_docker_build ~external_:true ~arch:Arm64 Test_manual + +(* Note: here we rely on [$IMAGE_ARCH_PREFIX] to be empty. + Otherwise, [$DOCKER_IMAGE_TAG] would contain [$IMAGE_ARCH_PREFIX] too. + [$IMAGE_ARCH_PREFIX] is only used when building Docker images, + here we handle all architectures so there is no such variable. *) +let job_docker_merge_manifests ~ci_docker_hub ~job_docker_amd64 + ~job_docker_arm64 : job = + job_docker_authenticated + ~stage:Stages.prepare_release + ~name:"docker:merge_manifests" + (* This job merges the images produced in the jobs + [docker:{amd64,arm64}] into a single multi-architecture image, and + so must be run after these jobs. *) + ~dependencies:(Dependent [Job job_docker_amd64; Job job_docker_arm64]) + ~variables:[("CI_DOCKER_HUB", Bool.to_string ci_docker_hub)] + ["./scripts/ci/docker_merge_manifests.sh"] + +type bin_package_target = Dpkg | Rpm + +let job_build_bin_package ?(manual = false) ~arch ~target () : job = + let arch_string = + match arch with Tezos_ci.Amd64 -> "amd64" | Arm64 -> "arm64" + in + let target_string = match target with Dpkg -> "dpkg" | Rpm -> "rpm" in + let name = sf "oc.build:%s:%s" target_string arch_string in + let image = + match target with Dpkg -> Images.debian_bookworm | Rpm -> Images.fedora_39 + in + let artifacts = + let artifact_path = + "octez-*." ^ match target with Dpkg -> "deb" | Rpm -> "rpm" + in + artifacts + ~expire_in:(Days 1) + ~when_:On_success + ~name:"${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG" + [artifact_path] + in + let before_script = + before_script + ~source_version:true + (match target with + | Dpkg -> + [ + "apt update"; + "apt-get install -y rsync git m4 build-essential patch unzip wget \ + opam jq bc autoconf cmake libev-dev libffi-dev libgmp-dev \ + libhidapi-dev pkg-config zlib1g-dev"; + ] + | Rpm -> + [ + "dnf update -y"; + "dnf install -y libev-devel gmp-devel hidapi-devel libffi-devel \ + zlib-devel libpq-devel m4 perl git pkg-config rpmdevtools \ + python3-devel python3-setuptools wget opam rsync which cargo \ + autoconf mock systemd systemd-rpm-macros cmake python3-wheel \ + python3-tox-current-env gcc-c++"; + ]) + in + let stage = if manual then Stages.manual else Stages.build in + let when_ = if manual then Some Manual else None in + job + ?when_ + ~name + ~arch + ~image + ~stage + ~dependencies:(Dependent []) + ~variables: + [ + ("TARGET", target_string); + ("OCTEZ_PKGMAINTAINER", "nomadic-labs"); + ("BLST_PORTABLE", "yes"); + ("ARCH", arch_string); + ] + ~artifacts + ~before_script + [ + "wget https://sh.rustup.rs/rustup-init.sh"; + "chmod +x rustup-init.sh"; + "./rustup-init.sh --profile minimal --default-toolchain \ + $recommended_rust_version -y"; + ". $HOME/.cargo/env"; + "export OPAMYES=\"true\""; + "opam init --bare --disable-sandboxing"; + "make build-deps"; + "eval $(opam env)"; + "make $TARGET"; + ] + +let job_build_dpkg_amd64 = + job_build_bin_package ~target:Dpkg ~arch:Tezos_ci.Amd64 () + +let job_build_rpm_amd64 = + job_build_bin_package ~target:Rpm ~arch:Tezos_ci.Amd64 () + +let jobs_build_bin_packages_manual = + let manual = true in + let arch = Tezos_ci.Amd64 in + jobs_external ~path:"build/bin_packages_manual.yml" + @@ [ + job_build_bin_package ~manual ~arch ~target:Dpkg (); + job_build_bin_package ~manual ~arch ~target:Rpm (); + ] + +let _job_build_rpm_amd64 = + job_build_bin_package ~manual:true ~target:Rpm ~arch:Tezos_ci.Amd64 + +(** Type of release tag pipelines. + + The semantics of the type is summed up in this table: + + | | Release_tag | Beta_release_tag | Non_release_tag | + |-----------------------+-------------+------------------+-----------------| + | GitLab release type | Release | Release | Create | + | Experimental binaries | No | No | No | + | Docker build type | Release | Release | Release | + | Publishes to opam | Yes | No | No | + + - All release tag pipelines types publish [Release] type Docker builds. + - No release tag pipelines include experimental binaries. + - [Release_tag] and [Beta_release_tag] pipelines creates GitLab + and publishes releases. [Non_release_tag] pipelines creates the + GitLab release but do not publish them. + - Only [Release_tag] pipelines publish to opam. *) +type release_tag_pipeline_type = + | Release_tag + | Beta_release_tag + | Non_release_tag + +(** Create a release tag pipeline of type {!release_tag_pipeline_type}. + + If [test] is true (default is [false]), then the Docker images are + built of the [Test] type and are published to the GitLab registry + instead of Docker hub. *) +let release_tag_pipeline ?(test = false) release_tag_pipeline_type = + let job_docker_amd64 = + job_docker_build ~arch:Amd64 (if test then Test else Release) + in + let job_docker_arm64 = + job_docker_build ~arch:Arm64 (if test then Test else Release) + in + let job_docker_merge = + job_docker_merge_manifests + ~ci_docker_hub:(not test) + ~job_docker_amd64 + ~job_docker_arm64 + in + let job_static_arm64_release = + job_build_static_binaries ~arch:Arm64 ~release:true () + in + let job_static_x86_64_release = + job_build_static_binaries ~arch:Amd64 ~release:true ~needs_trigger:true () + in + let job_gitlab_release ~dependencies : job = + job + ~image:Images.ci_release + ~stage:Stages.publish_release_gitlab + ~interruptible:false + ~dependencies + ~name:"gitlab:release" + ["./scripts/ci/gitlab-release.sh"] + in + let job_gitlab_publish ~dependencies : job = + job + ~image:Images.ci_release + ~stage:Stages.publish_package_gitlab + ~interruptible:false + ~dependencies + ~name:"gitlab:publish" + ["${CI_PROJECT_DIR}/scripts/ci/create_gitlab_package.sh"] + in + let job_opam_release : job = + job + ~image:Images.runtime_build_test_dependencies + ~stage:Stages.publish_release + ~interruptible:false + ~name:"opam:release" + ["./scripts/ci/opam-release.sh"] + in + let job_gitlab_release_or_publish = + let dependencies = + Dependent + [ + Artifacts job_static_x86_64_release; + Artifacts job_static_arm64_release; + Artifacts job_build_dpkg_amd64; + Artifacts job_build_rpm_amd64; + ] + in + match release_tag_pipeline_type with + | Non_release_tag -> job_gitlab_publish ~dependencies + | _ -> job_gitlab_release ~dependencies + in + [ + job_static_x86_64_release; + job_static_arm64_release; + job_docker_amd64; + job_docker_arm64; + job_build_dpkg_amd64; + job_build_rpm_amd64; + job_docker_merge; + job_gitlab_release_or_publish; + ] + @ + match (test, release_tag_pipeline_type) with + | false, Release_tag -> [job_opam_release] + | _ -> [] + +let arm64_build_extra = + [ + "src/bin_tps_evaluation/main_tps_evaluation.exe"; + "src/bin_octogram/octogram_main.exe tezt/tests/main.exe"; + ] + +let amd64_build_extra = + [ + "src/bin_tps_evaluation/main_tps_evaluation.exe"; + "src/bin_octogram/octogram_main.exe"; + "tezt/tests/main.exe"; + "contrib/octez_injector_server/octez_injector_server.exe"; + ] + +let job_build_dynamic_binaries ?rules ~arch ?(external_ = false) + ?(release = false) ?(needs_trigger = false) () = + let arch_string = + match arch with Tezos_ci.Amd64 -> "x86_64" | Arm64 -> "arm64" + in + let name = + sf + "oc.build_%s-%s" + arch_string + (if release then "released" else "exp-dev-extra") + in + let executable_files = + if release then "script-inputs/released-executables" + else "script-inputs/experimental-executables script-inputs/dev-executables" + in + let build_extra = + match (release, arch) with + | true, _ -> None + | false, Amd64 -> Some amd64_build_extra + | false, Arm64 -> Some arm64_build_extra + in + let variables = + [ + ("ARCH", arch_string); + ("EXECUTABLE_FILES", executable_files); + (* We fix the value of GIT_{SHORTREF,DATETIME,VERSION} (these are + read by src/lib_version and output by the binaries `--version` + option). Fixing these values on development builds improves + cache usage. *) + ("GIT_SHORTREF", "00000000"); + ("GIT_DATETIME", "1970-01-01 00:00:00 +0000%"); + ("GIT_VERSION", "dev"); + ] + @ + match build_extra with + | Some build_extra -> [("BUILD_EXTRA", String.concat " " build_extra)] + | None -> [] + in + let artifacts = + artifacts + ~name:"build-$ARCH-$CI_COMMIT_REF_SLUG" + ~when_:On_success + ~expire_in:(Days 1) + (* TODO: [paths] can be refined based on [release] *) + [ + "octez-*"; + "src/proto_*/parameters/*.json"; + "_build/default/src/lib_protocol_compiler/bin/main_native.exe"; + "_build/default/tezt/tests/main.exe"; + "_build/default/contrib/octez_injector_server/octez_injector_server.exe"; + ] + in + let dependencies = + (* Even though not many tests depend on static executables, some + of those that do are limiting factors in the total duration of + pipelines. So when requested through [needs_trigger] we start + this job as early as possible, without waiting for + sanity_ci. *) + if needs_trigger then Dependent [Job trigger] else Staged [] + in + let job = + job + ?rules + ~stage:Stages.build + ~arch + ~name + ~image:Images.runtime_build_dependencies + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + []) + ~variables + ~dependencies + ~artifacts + ["./scripts/ci/build_full_unreleased.sh"] + in + let job = + (* Disable coverage for arm64 *) + if arch = Amd64 then job |> job_enable_coverage_instrumentation else job + in + if external_ then job_external job else job + +let build_arm_rules = + [ + job_rule ~if_:Rules.schedule_extended_tests ~when_:Always (); + job_rule ~if_:Rules.(has_mr_label "ci--arm64") ~when_:On_success (); + job_rule + ~changes:["src/**/*"; ".gitlab/**/*"; ".gitlab-ci.yml"] + ~when_:Manual + ~allow_failure:Yes + (); + ] + +let changeset_octez = + [ + "src/**/*"; + "etherlink/**/*"; + "tezt/**/*"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + "michelson_test_scripts/**/*"; + "tzt_reference_test_suite/**/*"; + ] + +let build_x86_64_rules = + [ + job_rule ~changes:changeset_octez (); + job_rule ~if_:Rules.triggered_by_marge_bot (); + ] + +(* Write external files for build_{arm64, x86_64} jobs *) + +(* Used in external [before_merging] pipelines *) +let job_build_arm64_release = + job_build_dynamic_binaries + ~external_:true + ~arch:Arm64 + ~needs_trigger:false + ~release:true + ~rules:build_arm_rules + () + +(* Used in external [before_merging] pipelines *) +let job_build_arm64_exp_dev_extra = + job_build_dynamic_binaries + ~external_:true + ~arch:Arm64 + ~needs_trigger:false + ~release:false + ~rules:build_arm_rules + () + +(* Used in external [before_merging] pipelines *) +let job_build_x86_64_release = + job_build_dynamic_binaries + ~external_:true + ~arch:Amd64 + ~needs_trigger:true + ~release:true + ~rules:build_x86_64_rules + () + +(* Used in [before_merging] and [schedule_extended_test] pipelines *) +let job_build_x86_64_exp_dev_extra = + job_build_dynamic_binaries + ~external_:true + ~arch:Amd64 + ~needs_trigger:true + ~release:false + ~rules:build_x86_64_rules + () + +let changeset_octez_docs = + [ + "scripts/**/*/"; + "script-inputs/**/*/"; + "src/**/*"; + "tezt/**/*"; + "vendors/**/*"; + "dune"; + "dune-project"; + "dune-workspace"; + "docs/**/*"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + +(* The set of [changes:] that trigger opam jobs *) +let changeset_opam_jobs = + [ + "**/dune"; + "**/dune.inc"; + "**/*.dune.inc"; + "**/dune-project"; + "**/dune-workspace"; + "**/*.opam"; + ".gitlab/ci/jobs/packaging/opam:prepare.yml"; + ".gitlab/ci/jobs/packaging/opam_package.yml"; + "manifest/manifest.ml"; + "manifest/main.ml"; + "scripts/opam-prepare-repo.sh"; + "scripts/version.sh"; + ] + +(* We *) +type opam_package_group = Executable | All + +type opam_package = { + name : string; + group : opam_package_group; + batch_index : int; +} + +let opam_rules ~only_marge_bot ?batch_index () = + let when_ = + match batch_index with + | Some batch_index -> Delayed (Minutes batch_index) + | None -> On_success + in + [ + job_rule ~if_:Rules.schedule_extended_tests ~when_ (); + job_rule ~if_:(Rules.has_mr_label "ci--opam") ~when_ (); + job_rule + ~if_: + (if only_marge_bot then + If.(Rules.merge_request && Rules.triggered_by_marge_bot) + else Rules.merge_request) + ~changes:changeset_opam_jobs + ~when_ + (); + job_rule ~when_:Never (); + ] + +let job_opam_prepare : job = + job_external + @@ job + ~name:"opam:prepare" + ~image:Images.runtime_prebuild_dependencies + ~stage:Stages.packaging + ~dependencies:(Dependent [Job trigger]) + ~before_script:(before_script ~eval_opam:true []) + ~artifacts:(artifacts ["_opam-repo-for-release/"]) + ~rules:(opam_rules ~only_marge_bot:false ~batch_index:1 ()) + [ + "git init _opam-repo-for-release"; + "./scripts/opam-prepare-repo.sh dev ./ ./_opam-repo-for-release"; + "git -C _opam-repo-for-release add packages"; + "git -C _opam-repo-for-release commit -m \"tezos packages\""; + ] + +let job_opam_package {name; group; batch_index} : job = + (* We store caches in [_build] for two reasons: (1) the [_build] + folder is excluded from opam's rsync. (2) gitlab ci cache + requires that cached files are in a sub-folder of the checkout. *) + enable_sccache ~sccache_dir:"$CI_PROJECT_DIR/_build/_sccache" + @@ job + ~name:("opam:" ^ name) + ~image:Images.runtime_prebuild_dependencies + ~stage:Stages.packaging + (* FIXME: https://gitlab.com/nomadic-labs/tezos/-/issues/663 + FIXME: https://gitlab.com/nomadic-labs/tezos/-/issues/664 + At the time of writing, the opam tests were quite flaky. + Therefore, a retry was added. This should be removed once the + underlying tests have been fixed. *) + ~retry:2 + ~dependencies:(Dependent [Artifacts job_opam_prepare]) + ~rules:(opam_rules ~only_marge_bot:(group = All) ~batch_index ()) + ~variables: + [ + (* See [.gitlab-ci.yml] for details on [RUNTEZTALIAS] *) + ("RUNTEZTALIAS", "true"); + ("package", name); + ] + ~before_script:(before_script ~eval_opam:true []) + [ + "opam remote add dev-repo ./_opam-repo-for-release"; + "opam install --yes ${package}.dev"; + "opam reinstall --yes --with-test ${package}.dev"; + ] + (* Stores logs in opam_logs for artifacts and outputs an excerpt on + failure. [after_script] runs in a separate shell and so requires + a second opam environment initialization. *) + ~after_script: + [ + "eval $(opam env)"; + "OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh"; + ] + ~artifacts:(artifacts ~expire_in:(Weeks 1) ~when_:Always ["opam_logs/"]) + ~cache:[{key = "opam-sccache"; paths = ["_build/_sccache"]}] + +let ci_opam_package_tests = "script-inputs/ci-opam-package-tests" + +let read_opam_packages = + Fun.flip List.filter_map (read_lines_from_file ci_opam_package_tests) + @@ fun line -> + let fail () = + failwith + (sf "failed to parse %S: invalid line: %S" ci_opam_package_tests line) + in + if line = "" then None + else + match String.split_on_char '\t' line with + | [name; group; batch_index] -> + let batch_index = + match int_of_string_opt batch_index with + | Some i -> i + | None -> fail () + in + let group = + match group with "exec" -> Executable | "all" -> All | _ -> fail () + in + Some {name; group; batch_index} + | _ -> fail () + +let make_opam_packages (packages : opam_package list) : job list = + let jobs = List.map job_opam_package packages in + jobs_external ~path:"packaging/opam_package.yml" jobs + +let jobs_opam_package : job list = make_opam_packages read_opam_packages + +let enable_kernels job = + job_append_variables + [ + ("CC", "clang"); + ("CARGO_HOME", "$CI_PROJECT_DIR/cargo"); + ("NATIVE_TARGET", "x86_64-unknown-linux-musl"); + ] + job + +let job_build_kernels : job = + job_external @@ enable_kernels @@ enable_sccache + @@ job + ~name:"oc.build_kernels" + ~image:Images.rust_toolchain + ~stage:Stages.build + ~dependencies:(Dependent [Job trigger]) + ~rules:[job_rule ~changes:changeset_octez ()] + ["make -f kernels.mk build"] + ~artifacts: + (artifacts + ~name:"build-kernels-$CI_COMMIT_REF_SLUG" + ~expire_in:(Days 1) + ~when_:On_success + [ + "evm_kernel.wasm"; + "smart-rollup-installer"; + "sequenced_kernel.wasm"; + "tx_kernel.wasm"; + "tx_kernel_dal.wasm"; + "dal_echo_kernel.wasm"; + "risc-v-sandbox"; + "risc-v-dummy.elf"; + "src/risc_v/tests/inline_asm/rv64-inline-asm-tests"; + ]) + ~cache: + [ + {key = "kernels"; paths = ["cargo/"]}; + {key = "kernels-sccache"; paths = ["_sccache"]}; + ] + +type install_octez_distribution = Ubuntu_focal | Ubuntu_jammy | Fedora_37 + +let all_install_octez_distribution = [Ubuntu_focal; Ubuntu_jammy; Fedora_37] + +let image_of_distribution = function + | Ubuntu_focal -> Images.ubuntu_focal + | Ubuntu_jammy -> Images.ubuntu_jammy + | Fedora_37 -> Images.fedora_37 + +let jobs_install_octez : job list = + let changeset_install_jobs = + ["docs/introduction/install*.sh"; "docs/introduction/compile*.sh"] + in + let install_octez_rules = + [ + job_rule ~if_:Rules.schedule_extended_tests ~when_:Always (); + job_rule + ~if_:Rules.merge_request + ~changes:changeset_install_jobs + ~when_:On_success + (); + job_rule ~when_:Manual ~allow_failure:Yes (); + ] + in + let dependencies = Dependent [Job trigger] in + let job_install_bin ?(rc = false) distribution = + let distribution_string = + match distribution with + | Ubuntu_focal | Ubuntu_jammy -> "ubuntu" + | Fedora_37 -> "fedora" + in + let name : string = + sf + "oc.install_%s_%s_%s" + (if rc then "bin_rc" else "bin") + distribution_string + (match distribution with + | Ubuntu_focal -> "focal" + | Ubuntu_jammy -> "jammy" + | Fedora_37 -> "37") + in + let script = + sf "./docs/introduction/install-bin-%s.sh" distribution_string + ^ if rc then " rc" else "" + in + job + ~name + ~image:(image_of_distribution distribution) + ~dependencies + ~rules:install_octez_rules + ~stage:Stages.test + [script] + in + let job_install_opam_focal = + job + ~name:"oc.install_opam_focal" + ~image:Images.opam_ubuntu_focal + ~dependencies + ~when_:Manual (* temporarily disable until these jobs are optimized *) + ~allow_failure:Yes + ~stage:Stages.test + ~variables:[("OPAMJOBS", "4")] + ["./docs/introduction/install-opam.sh"] + in + let job_compile_sources_bullseye ~name ~project ~branch = + job + ~name + ~image:Images.opam_debian_bullseye + ~dependencies + ~rules:install_octez_rules + ~stage:Stages.test + [sf "./docs/introduction/compile-sources.sh %s %s" project branch] + in + jobs_external ~path:"test/install_octez.yml" + (* Test installing binary / binary RC distributions in all distributions *) + @@ List.map job_install_bin all_install_octez_distribution + @ List.map (job_install_bin ~rc:true) all_install_octez_distribution + (* Test installing through opam *) + @ [job_install_opam_focal] + (* Test compiling from source *) + @ [ + (* Test compiling the [latest-release] branch on Bullseye *) + job_compile_sources_bullseye + ~name:"oc.compile_release_sources_bullseye" + ~project:"tezos/tezos" + ~branch:"latest-release"; + (* Test compiling the [master] branch on Bullseye *) + job_compile_sources_bullseye + ~name:"oc.compile_sources_bullseye" + ~project:"${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos}" + ~branch:"${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master}"; + ] + +(* Fetch records for Tezt generated on the last merge request pipeline + on the most recently merged MR and makes them available in artifacts + for future merge request pipelines. *) +let job_tezt_fetch_records : job = + job_external + @@ job + ~name:"oc.tezt:fetch-records" + ~image:Images.runtime_build_dependencies + ~stage:Stages.build + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + []) + ~rules:[job_rule ~changes:changeset_octez ()] + [ + "dune exec scripts/ci/update_records/update.exe -- --log-file \ + tezt-fetch-records.log --test-arg from=last-merged-pipeline --info"; + ] + ~after_script:["./scripts/ci/filter_corrupted_records.sh"] + (* Allow failure of this job, since Tezt can use the records + stored in the repo as backup for balancing. *) + ~allow_failure:Yes + ~artifacts: + (artifacts + ~expire_in:(Hours 4) + ~when_:Always + [ + "tezt-fetch-records.log"; + "tezt/records/*.json"; + (* Keep broken records for debugging *) + "tezt/records/*.json.broken"; + ]) + +let job_tezt ?rules ?parallel ?(tags = ["gcp_tezt"]) ~name ~tezt_tests + ?(retry = 2) ?(tezt_retry = 1) ?(tezt_parallel = 1) ?(tezt_variant = "") + ?(before_script = before_script ~source_version:true ~eval_opam:true []) + ~dependencies () : job = + let variables = + [ + ("JUNIT", "tezt-junit.xml"); + ("TEZT_VARIANT", tezt_variant); + ("TESTS", tezt_tests); + ("TEZT_RETRY", string_of_int tezt_retry); + ("TEZT_PARALLEL", string_of_int tezt_parallel); + ] + in + let artifacts = + artifacts + ~name:("coverage-files-" ^ Predefined_vars.(show ci_job_id)) + ~reports:(reports ~junit:"$JUNIT" ()) + [ + "selected_tezts.tsv"; + "tezt.log"; + "tezt-*.log"; + "tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json"; + "$JUNIT"; + ] + (* The record artifacts [tezt-results-$CI_NODE_INDEX.json] + should be stored for as long as a given commit on master is + expected to be HEAD in order to support auto-balancing. At + the time of writing, we have approximately 6 merges per day, + so 1 day should more than enough. However, we set it to 3 + days to keep records over the weekend. The tezt artifacts + (including records and coverage) take up roughly 2MB / + job. Total artifact storage becomes [N*P*T*W] where [N] is + the days of retention (3 atm), [P] the number of pipelines + per day (~200 atm), [T] the number of Tezt jobs per pipeline + (60) and [W] the artifact size per tezt job (2MB). This makes + 35GB which is less than 0.5% than our + {{:https://gitlab.com/tezos/tezos/-/artifacts}total artifact + usage}. *) + ~expire_in:(Days 3) + ~when_:Always + in + let print_variables = + [ + "TESTS"; + "JUNIT"; + "CI_NODE_INDEX"; + "CI_NODE_TOTAL"; + "TEZT_PARALLEL"; + "TEZT_VARIANT"; + ] + in + let retry = if retry = 0 then None else Some retry in + job + ~image:Images.runtime_e2etest_dependencies + ~name + ?parallel + ~tags + ~stage:Stages.test + ?rules + ~artifacts + ~variables + ~dependencies + ?retry + ~before_script + [ + (* Print [print_variables] in a shell-friendly manner for easier debugging *) + "echo \"" + ^ String.concat + " " + (List.map (fun var -> sf {|%s=\"${%s}\"|} var var) print_variables) + ^ "\""; + (* Store the list of tests that have been scheduled for execution for later debugging. + It is imperative this this first call to tezt receives any flags passed to the + second call that affect test selection. *) + "_build/default/tezt/tests/main.exe ${TESTS} --from-record tezt/records \ + --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} --list-tsv > \ + selected_tezts.tsv"; + (* For Tezt tests, there are multiple timeouts: + - --global-timeout is the internal timeout of Tezt, which only works if tests + are cooperative; + - the "timeout" command, which we set to send SIGTERM to Tezt 60s after --global-timeout + in case tests are not cooperative; + - the "timeout" command also sends SIGKILL 60s after having sent SIGTERM in case + Tezt is still stuck; + - the CI timeout. + The use of the "timeout" command is to make sure that Tezt eventually exits, + because if the CI timeout is reached, there are no artefacts, + and thus no logs to investigate. + See also: https://gitlab.com/gitlab-org/gitlab/-/issues/19818 *) + "./scripts/ci/exit_code.sh timeout -k 60 1860 ./scripts/ci/exit_code.sh \ + _build/default/tezt/tests/main.exe ${TESTS} --color --log-buffer-size \ + 5000 --log-file tezt.log --global-timeout 1800 \ + --on-unknown-regression-files fail --junit ${JUNIT} --from-record \ + tezt/records --job ${CI_NODE_INDEX:-1}/${CI_NODE_TOTAL:-1} --record \ + tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json --job-count \ + ${TEZT_PARALLEL:-3} --retry ${TEZT_RETRY:-1}"; + "./scripts/ci/merge_coverage.sh"; + ] + +let job_documentation_linkcheck = + job_external + @@ job + ~name:"documentation:linkcheck" + ~image:Images.runtime_build_test_dependencies + ~stage:Stages.doc + ~dependencies:(Dependent []) + ~rules: + [ + job_rule ~if_:Rules.schedule_extended_tests ~when_:Always (); + job_rule ~if_:(Rules.has_mr_label "ci--docs") (); + job_rule ~when_:Manual (); + ] + ~before_script: + (before_script + ~source_version:true + ~eval_opam:true + ~init_python_venv:true + []) + ~allow_failure:Yes + ["make all"; "make -C docs redirectcheck"; "make -C docs linkcheck"] + +let job_documentation_build_all = + job_external + @@ job + ~name:"documentation:build_all" + ~image:Images.runtime_build_test_dependencies + ~stage:Stages.doc + ~dependencies:(Dependent [Job trigger]) + (* Warning: the [documentation:linkcheck] job must have at least the same + restrictions in the rules as [documentation:build_all], otherwise the CI + may complain that [documentation:linkcheck] depends on [documentation:build_all] + which does not exist. *) + ~rules:[job_rule ~changes:changeset_octez_docs ()] + ~before_script:(before_script ~eval_opam:true ~init_python_venv:true []) + ~artifacts: + (artifacts + ~expose_as:"Documentation - excluding old protocols" + ~expire_in:(Weeks 1) + (* Path must be terminated with / to expose artifact (gitlab-org/gitlab#/36706) *) + ["docs/_build/"]) + ["./.gitlab/ci/jobs/doc/documentation:build_all.sh"] + +let job_install_python ~name ~image = + job + ~name + ~image + ~stage:Stages.doc + ~dependencies:(Dependent [Job trigger]) + ~rules: + [ + job_rule ~if_:Rules.schedule_extended_tests ~when_:Always (); + job_rule + ~if_:Rules.merge_request + ~changes:["docs/developer/install-python-debian-ubuntu.sh"] + ~when_:On_success + (); + job_rule ~if_:(Rules.has_mr_label "ci--docs") (); + job_rule ~when_:Manual ~allow_failure:Yes (); + ] + [ + "./docs/developer/install-python-debian-ubuntu.sh \ + ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} \ + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master}"; + ] + +let jobs_install_python = + jobs_external + ~path:"doc/oc.install_python.yml" + [ + job_install_python + ~name:"oc.install_python_focal" + ~image:Images.ubuntu_focal; + job_install_python + ~name:"oc.install_python_jammy" + ~image:Images.ubuntu_jammy; + job_install_python + ~name:"oc.install_python_bullseye" + ~image:Images.debian_bullseye; + ] + +let job_sanity_ci = + job_external + @@ job + ~name:"sanity_ci" + ~image:Images.runtime_build_dependencies + ~stage:Stages.sanity + ~before_script:(before_script ~take_ownership:true ~eval_opam:true []) + [ + "make -C manifest check"; + "./scripts/lint.sh --check-gitlab-ci-yml"; + (* Check that the opam-repo images' Alpine version corresponds to + the value in scripts/version.sh. *) + "./scripts/ci/check_alpine_version.sh"; + (* Check that .gitlab-ci.yml is up to date. *) + "make -C ci check"; + ] + +let changeset_docker_files = ["build.Dockerfile"; "Dockerfile"] + +let job_docker_hadolint = + job_external + @@ job + ~name:"docker:hadolint" + ~image:Images.hadolint + ~stage:Stages.sanity + ~rules: + [ + job_rule + ~if_:Rules.merge_request + ~changes:changeset_docker_files + ~allow_failure:Yes + (); + ] + ["hadolint build.Dockerfile"; "hadolint Dockerfile"] + +let changeset_ocaml_files = + ["src/**/*"; "tezt/**/*"; ".gitlab/**/*"; ".gitlab-ci.yml"; "devtools/**/*"] + +let job_ocaml_check = + job_external + @@ job + ~name:"ocaml-check" + ~image:Images.runtime_build_dependencies + ~stage:Stages.build + ~dependencies:(Dependent [Job trigger]) + ~rules:[job_rule ~changes:changeset_ocaml_files ()] + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + []) + ["dune build @check"] + +(* Misc checks *) + +(* The linting job runs over the set of [source_directories] + defined in [scripts/lint.sh] that must be included here: *) +let changeset_lint_files = + [ + "src/**/*"; + "tezt/**/*"; + "devtools/**/*"; + "scripts/**/*"; + "docs/**/*"; + "contrib/**/*"; + "etherlink/**/*"; + ".gitlab-ci.yml"; + ".gitlab/**/*"; + ] + +let job_oc_misc_checks = + job_external + @@ job + ~name:"oc.misc_checks" + ~image:Images.runtime_build_test_dependencies + ~stage:Stages.test + ~dependencies:(Dependent [Job trigger]) + ~rules:[job_rule ~changes:changeset_lint_files ()] + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + ~init_python_venv:true + []) + [ + "./scripts/ci/lint_misc_check.sh"; + "scripts/check_wasm_pvm_regressions.sh check"; + ] + +let job_oc_commit_titles = + job_external + @@ job + ~name:"commit_titles" + ~image:Images.runtime_prebuild_dependencies + ~stage:Stages.test + ~dependencies:(Dependent [Job trigger]) + (* ./scripts/ci/check_commit_messages.sh exits with code 65 when a git history contains invalid commits titles in situations where that is allowed. *) + ["./scripts/ci/check_commit_messages.sh || exit $?"] + ~allow_failure:(With_exit_codes [65]) + +let changeset_kaitai_files = + ["src/**/*"; "contrib/*kaitai*/**/*"; ".gitlab/**/*"; ".gitlab-ci.yml"] + +(* check that ksy files are still up-to-date with octez *) +let job_kaitai_checks = + job_external + @@ job + ~name:"kaitai_checks" + ~image:Images.runtime_build_dependencies + ~stage:Stages.test + ~dependencies:(Dependent [Job trigger]) + ~rules:[job_rule ~changes:changeset_kaitai_files ()] + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + [ + "make -C ${CI_PROJECT_DIR} check-kaitai-struct-files || (echo 'Octez \ + encodings and Kaitai files seem to be out of sync. You might need to \ + run `make check-kaitai-struct-files` and commit the resulting diff.' \ + ; false)"; + ] + +(* check that ksy files are still up-to-date with octez *) +let job_kaitai_e2e_checks = + job_external + @@ job + ~name:"kaitai_e2e_checks" + ~image:Images.runtime_client_libs_dependencies + ~stage:Stages.test + ~dependencies:(Dependent [Job job_kaitai_checks]) + ~rules:[job_rule ~changes:changeset_kaitai_files ()] + ~before_script: + (before_script ~source_version:true ~install_js_deps:true []) + [ + "./contrib/kaitai-struct-files/scripts/kaitai_e2e.sh \ + contrib/kaitai-struct-files/files contrib/kaitai-struct-files/input"; + ] + +let changeset_lift_limits_patch = + [ + "src/bin_tps_evaluation/lift_limits.patch"; + "src/proto_alpha/lib_protocol/main.ml"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + +let job_oc_check_lift_limits_patch = + job_external + @@ job + ~name:"oc.check_lift_limits_patch" + ~image:Images.runtime_build_dependencies + ~stage:Stages.test + ~dependencies:(Dependent [Job trigger]) + ~rules:[job_rule ~changes:changeset_lift_limits_patch ()] + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + [ + (* Check that the patch only modifies the + src/proto_alpha/lib_protocol. If not, the rules above have to be + updated. *) + "[ $(git apply --numstat src/bin_tps_evaluation/lift_limits.patch | \ + cut -f3) = \"src/proto_alpha/lib_protocol/main.ml\" ]"; + "git apply src/bin_tps_evaluation/lift_limits.patch"; + "dune build @src/proto_alpha/lib_protocol/check"; + ] + +let job_misc_opam_checks = + job_external + @@ job + ~name:"misc_opam_checks" + ~image:Images.runtime_build_dependencies + ~stage:Stages.test + ~retry:2 + ~dependencies:(Dependent [Job trigger]) + ~rules:[job_rule ~changes:changeset_octez ()] + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + [ + (* checks that all deps of opam packages are already installed *) + "./scripts/opam-check.sh"; + ] + ~artifacts: + (artifacts ~when_:Always ["opam_repo.patch"] ~expire_in:(Days 1)) + +let changeset_semgrep_files = + [ + "src/**/*"; + "tezt/**/*"; + "devtools/**/*"; + "scripts/semgrep/**/*"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + +let job_semgrep = + job_external + @@ job + ~name:"oc.semgrep" + ~image:Images.semgrep_agent + ~stage:Stages.test + ~dependencies:(Dependent [Job trigger]) + ~rules:[job_rule ~changes:changeset_semgrep_files ()] + [ + "echo \"OCaml code linting. For information on how to reproduce \ + locally, check out scripts/semgrep/README.md\""; + "sh ./scripts/semgrep/lint-all-ocaml-sources.sh"; + ] + +let changeset_unit_test_arm64 = ["src/**/*"; ".gitlab/**/*"; ".gitlab-ci.yml"] + +let jobs_unit_tests = + let build_dependencies = function + | Amd64 -> + Dependent + [Job job_build_x86_64_release; Job job_build_x86_64_exp_dev_extra] + | Arm64 -> + Dependent + [Job job_build_arm64_release; Job job_build_arm64_exp_dev_extra] + in + let unit_test ?(image = Images.runtime_build_dependencies) ?timeout ?parallel + ~arch ~name ?(enable_coverage = true) + ?(rules = [job_rule ~changes:changeset_octez ()]) ~make_targets () : job = + let arch_string = + match arch with Tezos_ci.Amd64 -> "x86_64" | Arm64 -> "arm64" + in + let script = + ["make $MAKE_TARGETS"] + @ if enable_coverage then ["./scripts/ci/merge_coverage.sh"] else [] + in + let dependencies = build_dependencies arch in + let variables = + [("ARCH", arch_string); ("MAKE_TARGETS", String.concat " " make_targets)] + @ + (* When parallel is set to non-zero (translating to the + [parallel:] clause), set the variable + [DISTRIBUTE_TESTS_TO_PARALLELS] to [true], so that + [scripts/test_wrapper.sh] partitions the set of @runtest + targets to build. *) + match parallel with + | Some n when n > 1 -> [("DISTRIBUTE_TESTS_TO_PARALLELS", "true")] + | _ -> [] + in + let job = + job + ?timeout + ?parallel + ~retry:2 + ~name + ~stage:Stages.test + ~image + ~arch + ~dependencies + ~rules + ~variables + ~artifacts: + (artifacts + ~name:"$CI_JOB_NAME-$CI_COMMIT_SHA-${ARCH}" + ["test_results"] + ~reports:(reports ~junit:"test_results/*.xml" ()) + ~expire_in:(Days 1) + ~when_:Always) + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + script + in + if enable_coverage then + job |> job_enable_coverage_instrumentation |> job_enable_coverage_output + else job + in + let oc_unit_non_proto_x86_64 = + unit_test + ~name:"oc.unit:non-proto-x86_64" + ~arch:Amd64 (* The [lib_benchmark] unit tests require Python *) + ~image:Images.runtime_build_test_dependencies + ~make_targets:["test-nonproto-unit"] + () + in + let oc_unit_other_x86_64 = + (* Runs unit tests for contrib. *) + unit_test + ~name:"oc.unit:other-x86_64" + ~arch:Amd64 + ~make_targets:["test-other-unit"] + () + in + let oc_unit_proto_x86_64 = + (* Runs unit tests for contrib. *) + unit_test + ~name:"oc.unit:proto-x86_64" + ~arch:Amd64 + ~make_targets:["test-proto-unit"] + () + in + let oc_unit_non_proto_arm64 = + unit_test + ~name:"oc.unit:non-proto-arm64" + ~parallel:2 + ~arch:Arm64 (* The [lib_benchmark] unit tests require Python *) + ~image:Images.runtime_build_test_dependencies + ~rules:[job_rule ~changes:changeset_unit_test_arm64 ()] + ~make_targets:["test-nonproto-unit"; "test-webassembly"] + (* No coverage for arm64 jobs -- the code they test is a + subset of that tested by x86_64 unit tests. *) + ~enable_coverage:false + () + in + let oc_unit_webassembly_x86_64 = + job + ~name:"oc.unit:webassembly-x86_64" + ~arch:Amd64 (* The wasm tests are written in Python *) + ~image:Images.runtime_build_test_dependencies + ~stage:Stages.test + ~dependencies:(build_dependencies Amd64) + ~rules:[job_rule ~changes:changeset_octez ()] + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + (* TODO: https://gitlab.com/tezos/tezos/-/issues/4663 + This test takes around 2 to 4min to complete, but it sometimes + hangs. We use a timeout to retry the test in this case. The + underlying issue should be fixed eventually, turning this timeout + unnecessary. *) + ~timeout:(Minutes 20) + ["make test-webassembly"] + in + let oc_unit_js_components = + job + ~name:"oc.unit:js_components" + ~arch:Amd64 + ~image:Images.runtime_build_test_dependencies + ~stage:Stages.test + ~dependencies:(build_dependencies Amd64) + ~rules:[job_rule ~changes:changeset_octez ()] + ~retry:2 + ~variables:[("RUNTEZTALIAS", "true")] + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + ~install_js_deps:true + []) + ["make test-js"] + in + let oc_unit_protocol_compiles = + job + ~name:"oc.unit:protocol_compiles" + ~arch:Amd64 + ~image:Images.runtime_build_dependencies + ~stage:Stages.test + ~dependencies:(build_dependencies Amd64) + ~rules:[job_rule ~changes:changeset_octez ()] + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + ["dune build @runtest_compile_protocol"] + in + jobs_external ~path:"test/oc.unit.yml" + @@ [ + oc_unit_non_proto_x86_64; + oc_unit_other_x86_64; + oc_unit_proto_x86_64; + oc_unit_non_proto_arm64; + oc_unit_webassembly_x86_64; + oc_unit_js_components; + oc_unit_protocol_compiles; + ] + +let job_oc_integration_compiler_rejections = + job_external + @@ job + ~name:"oc.integration:compiler-rejections" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~rules:[job_rule ~changes:changeset_octez ()] + ~dependencies: + (Dependent + [Job job_build_x86_64_release; Job job_build_x86_64_exp_dev_extra]) + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + ["dune build @runtest_rejections"] + +let changeset_script_snapshot_alpha_and_link = + [ + "src/proto_alpha/**/*"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + "scripts/snapshot_alpha_and_link.sh"; + "scripts/snapshot_alpha.sh"; + "scripts/user_activated_upgrade.sh"; + ] + +let job_oc_script_snapshot_alpha_and_link = + job_external + @@ job + ~name:"oc.script:snapshot_alpha_and_link" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~rules: + [ + job_rule + ~if_:Rules.merge_request + ~changes:changeset_script_snapshot_alpha_and_link + (); + ] + (* Note: this job actually probably doesn't need the oc.build_x86_64 job + to have finished, but we don't want to start before oc.build_x86_64 has finished either. + However, when oc.build_x86_64-* don't exist, we don't need to wait for them. *) + ~dependencies: + (Dependent + [ + Job trigger; + Optional job_build_x86_64_release; + Optional job_build_x86_64_exp_dev_extra; + ]) + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + []) + ["./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh"] + +let job_oc_script_test_gen_genesis = + job_external + @@ job + ~name:"oc.script:test-gen-genesis" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~rules:[job_rule ~changes:changeset_octez ()] + ~dependencies:(Dependent [Job trigger]) + ~before_script:(before_script ~eval_opam:true ["cd scripts/gen-genesis"]) + ["dune build gen_genesis.exe"] + +let job_oc_script_test_release_versions = + job_external + @@ job + ~name:"oc.script:test_release_versions" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~rules:[job_rule ~changes:changeset_octez ()] + ~dependencies: + (Dependent + [Job job_build_x86_64_release; Job job_build_x86_64_exp_dev_extra]) + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + []) + ["./scripts/test_release_version.sh"] + +let changeset_script_b58_prefix = + [ + "scripts/b58_prefix/b58_prefix.py"; + "scripts/b58_prefix/test_b58_prefix.py"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + +let job_oc_script_b58_prefix = + job_external + @@ job + ~name:"oc.script:b58_prefix" + ~stage:Stages.test + (* Requires Python. Can be changed to a python image, but using + the build docker image to keep in sync with the python + version used for the tests *) + ~image:Images.runtime_build_test_dependencies + ~rules:[job_rule ~changes:changeset_script_b58_prefix ()] + ~dependencies:(Dependent [Job trigger]) + ~before_script: + (before_script ~source_version:true ~init_python_venv:true []) + [ + "poetry run pylint scripts/b58_prefix/b58_prefix.py \ + --disable=missing-docstring --disable=invalid-name"; + "poetry run pytest scripts/b58_prefix/test_b58_prefix.py"; + ] + +let changeset_test_liquidity_baking_scripts = + [ + "src/**/*"; + "scripts/ci/test_liquidity_baking_scripts.sh"; + "scripts/check-liquidity-baking-scripts.sh"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + +let job_oc_test_liquidity_baking_scripts = + job_external + @@ job + ~name:"oc.test-liquidity-baking-scripts" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~rules:[job_rule ~changes:changeset_test_liquidity_baking_scripts ()] + ~dependencies: + (Dependent + [ + Artifacts job_build_x86_64_release; + Artifacts job_build_x86_64_exp_dev_extra; + ]) + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + ["./scripts/ci/test_liquidity_baking_scripts.sh"] + +let jobs_tezt = + let dependencies = + Dependent + [ + Artifacts job_build_x86_64_release; + Artifacts job_build_x86_64_exp_dev_extra; + Artifacts job_build_kernels; + Artifacts job_tezt_fetch_records; + ] + in + let rules = [job_rule ~changes:changeset_octez ()] in + let coverage_expiry = Days 3 in + let tezt : job = + job_enable_coverage_output ~expire_in:coverage_expiry + @@ job_tezt + ~name:"tezt" + (* Exclude tests with tags 'ci_disabled', 'flaky' and `memory_{3,4}k`. + See tezt/lib_tezos/tag.mli for more information. *) + ~tezt_tests:"/ci_disabled /flaky /memory_3k /memory_4k /time_sensitive" + ~tezt_parallel:3 + ~parallel:60 + ~rules + ~dependencies + () + in + let tezt_memory_4k : job = + job_enable_coverage_output ~expire_in:coverage_expiry + @@ job_tezt + ~name:"tezt-memory-4k" + ~tezt_tests:"memory_4k" + ~tezt_variant:"-memory_4k" + ~parallel:4 + ~dependencies + ~rules + () + in + let tezt_memory_3k : job = + job_enable_coverage_output ~expire_in:coverage_expiry + @@ job_tezt + ~name:"tezt-memory-3k" + ~tezt_tests:"memory_3k" + ~tezt_variant:"-memory_3k" + ~parallel:1 + ~dependencies + ~rules + () + in + let tezt_time_sensitive : job = + (* the following tests are executed with [~tezt_parallel:1] to ensure + that other tests do not affect their executions. However, these + tests are not particularly cpu/memory-intensive hence they do not + need to run on a particular machine contrary to performance + regression tests. *) + job_enable_coverage_output ~expire_in:coverage_expiry + @@ job_tezt + ~name:"tezt-time-sensitive" + ~tezt_tests:"time_sensitive" + ~tezt_variant:"-time_sensitive" + ~parallel:1 + ~dependencies + () + in + let tezt_static_binaries : job = + job_tezt (* TODO: this job might as well run on [gcp_tezt] *) + ~tags:["gcp"] + ~name:"tezt:static-binaries" + ~tezt_tests:"cli" + ~tezt_parallel:3 + ~retry:0 + ~dependencies: + (Dependent + [ + Artifacts job_build_x86_64_exp_dev_extra; + Artifacts job_static_x86_64_experimental; + Artifacts job_tezt_fetch_records; + ]) + ~rules + ~before_script:(before_script ["mv octez-binaries/x86_64/octez-* ."]) + () + in + jobs_external + ~path:"test/tezt.yml" + [ + tezt; + tezt_memory_4k; + tezt_memory_3k; + tezt_time_sensitive; + tezt_static_binaries; + ] + +let changeset_test_kernels = + [ + ".gitlab-ci.yml"; + "kernels.mk"; + "src/kernel_*/**/*"; + "src/risc_v/**/*"; + "etherlink/kernel_evm/**/*"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + +let job_test_kernels : job = + job_external @@ enable_kernels + @@ job + ~name:"test_kernels" + ~image:Images.rust_toolchain + ~stage:Stages.test + ~dependencies:(Dependent [Job trigger]) + ~rules:[job_rule ~changes:changeset_test_kernels ()] + ["make -f kernels.mk check"; "make -f kernels.mk test"] + ~cache:[{key = "kernels"; paths = ["cargo/"]}] + +(* This job fetches coverage files by precedent test stage. It creates + the html, summary and cobertura reports. It also provide a coverage % + for the merge request. *) +let job_unified_coverage_before_merging : job = + let dependencies = List.rev !jobs_with_coverage_output in + job_external ~directory:"coverage" ~filename_suffix:"before_merging" + @@ job_enable_coverage_report + @@ job + ~image:Images.runtime_e2etest_dependencies + ~name:"oc.unified_coverage" + ~stage:Stages.test_coverage + ~rules: + [ + job_rule ~if_:Rules.triggered_by_marge_bot ~when_:Never (); + job_rule ~changes:changeset_octez (); + ] + ~variables: + [ + (* This inhibites the Makefile's opam version check, which + this job's opam-less image + ([runtime_e2etest_dependencies]) cannot pass. *) + ("TEZOS_WITHOUT_OPAM", "true"); + ] + ~dependencies:(Staged dependencies) + (* On the development branches, we compute coverage. + TODO: https://gitlab.com/tezos/tezos/-/issues/6173 + We propagate the exit code to temporarily allow corrupted coverage files. *) + ["./scripts/ci/report_coverage.sh || exit $?"] + ~allow_failure:(With_exit_codes [64]) + +(* Register pipelines types. Pipelines types are used to generate + workflow rules and includes of the files where the jobs of the + pipeline is defined. At the moment, all these pipelines are defined + manually in .yml, but will eventually be generated. *) +let () = + (* Matches release tags, e.g. [v1.2.3] or [v1.2.3-rc4]. *) + let release_tag_re = "/^v\\d+\\.\\d+(?:\\-rc\\d+)?$/" in + (* Matches beta release tags, e.g. [v1.2.3-beta5]. *) + let beta_release_tag_re = "/^v\\d+\\.\\d+\\-beta\\d*$/" in + let open Rules in + let open Pipeline in + (* Matches either release tags or beta release tags, e.g. [v1.2.3], + [v1.2.3-rc4] or [v1.2.3-beta5]. *) + let has_any_release_tag = + If.(has_tag_match release_tag_re || has_tag_match beta_release_tag_re) + in + let has_non_release_tag = + If.(Predefined_vars.ci_commit_tag != null && not has_any_release_tag) + in + register + "before_merging" + If.(on_tezos_namespace && merge_request) + ~jobs: + ((* Stage: sanity *) + let sanity = [job_sanity_ci; job_docker_hadolint] in + (* Stage: package *) + let package = job_opam_prepare :: jobs_opam_package in + (* Stage: build *) + let build = + [ + job_ocaml_check; + job_static_x86_64_experimental; + job_build_arm64_exp_dev_extra; + job_build_arm64_release; + job_build_x86_64_exp_dev_extra; + job_build_x86_64_release; + job_build_kernels; + job_docker_amd64_test_manual; + job_docker_arm64_test_manual; + job_tezt_fetch_records; + ] + @ jobs_build_bin_packages_manual + in + (* Stage: test *) + let test = + [ + job_oc_commit_titles; + job_kaitai_checks; + job_kaitai_e2e_checks; + job_oc_check_lift_limits_patch; + job_oc_misc_checks; + job_misc_opam_checks; + job_semgrep; + job_oc_integration_compiler_rejections; + job_oc_script_test_gen_genesis; + job_oc_script_test_release_versions; + job_oc_script_b58_prefix; + job_oc_test_liquidity_baking_scripts; + job_oc_script_snapshot_alpha_and_link; + job_test_kernels; + ] + @ jobs_unit_tests @ jobs_install_octez @ jobs_tezt + in + (* Stage: test_coverage *) + let test_coverage = [job_unified_coverage_before_merging] in + (* Stage: doc *) + let doc = + [job_documentation_build_all; job_documentation_linkcheck] + @ jobs_install_python + in + sanity @ package @ build @ test @ test_coverage @ doc) ; + register + "latest_release" + ~jobs:[job_docker_promote_to_latest ~ci_docker_hub:true] + If.(on_tezos_namespace && push && on_branch "latest-release") ; + register + "latest_release_test" + If.(not_on_tezos_namespace && push && on_branch "latest-release-test") + ~jobs:[job_docker_promote_to_latest ~ci_docker_hub:false] ; + register + "master_branch" + If.(on_tezos_namespace && push && on_branch "master") + ~jobs: + (let job_docker_amd64 : job = job_docker_build ~arch:Amd64 Experimental in + let job_docker_arm64 : job = job_docker_build ~arch:Arm64 Experimental in + (* Here we use this hack to publish the Octez documentation on + {{:gitlab.io}} because we want to publish the doc for the project + [tezos] under {{:https://tezos.gitlab.io}} and not + {{:https://tezos.gitlab.io/tezos}} The latter follows the GitLab + URL convention of + [https://.gitlab.io//]. + + Notice that we push only if [CI_COMMIT_REF_NAME] is really [master]. + This allows to test the release workflow *) + let publish_documentation = + job + ~name:"publish:documentation" + ~image:Images.runtime_build_test_dependencies + ~stage:Stages.doc + ~dependencies:(Dependent []) + ~before_script: + (before_script + ~eval_opam:true + (* Load the environment poetry previously created in the docker image. + Give access to the Python dependencies/executables. *) + ~init_python_venv:true + [ + {|echo "${CI_PK_GITLAB_DOC}" > ~/.ssh/id_ed25519|}; + {|echo "${CI_KH}" > ~/.ssh/known_hosts|}; + {|chmod 400 ~/.ssh/id_ed25519|}; + ]) + ~interruptible:false + ~rules:[job_rule ~changes:changeset_octez_docs ~when_:On_success ()] + ["./scripts/ci/doc_publish.sh"] + in + let unified_coverage_default = + job_enable_coverage_report + @@ job + ~image:Images.runtime_build_test_dependencies + ~name:"oc.unified_coverage" + ~stage:Stages.test_coverage + ~variables: + [ + ("PROJECT", Predefined_vars.(show ci_project_path)); + ("DEFAULT_BRANCH", Predefined_vars.(show ci_commit_sha)); + ] + ~allow_failure:Yes + [ + (* sets COVERAGE_OUTPUT *) + ". ./scripts/version.sh"; + (* On the project default branch, we fetch coverage from the last merged MR *) + "mkdir -p _coverage_report"; + "dune exec scripts/ci/download_coverage/download.exe -- -a \ + from=last-merged-pipeline --info --log-file \ + _coverage_report/download_coverage.log"; + "./scripts/ci/report_coverage.sh"; + ] + in + (* Smart Rollup: Kernel SDK + + See [src/kernel_sdk/RELEASE.md] for more information. *) + let publish_kernel_sdk = + job + ~name:"publish_kernel_sdk" + ~image:Images.rust_toolchain + ~stage:Stages.manual + ~when_:Manual + ~allow_failure:Yes + ~dependencies:(Dependent []) + ~interruptible:false + ~variables: + [("CARGO_HOME", Predefined_vars.(show ci_project_dir) // "cargo")] + ~cache:[{key = "kernels"; paths = ["cargo/"]}] + [ + "make -f kernels.mk publish-sdk-deps"; + (* Manually set SSL_CERT_DIR as default setting points to empty dir *) + "SSL_CERT_DIR=/etc/ssl/certs CC=clang make -f kernels.mk \ + publish-sdk"; + ] + in + [ + (* Stage: build *) + job_static_x86_64_experimental; + job_build_static_binaries ~arch:Arm64 (); + job_build_arm64_release; + job_build_arm64_exp_dev_extra; + job_docker_amd64; + job_docker_arm64; + (* Stage: test_coverage *) + unified_coverage_default; + (* Stage: doc *) + publish_documentation; + (* Stage: prepare_release *) + job_docker_merge_manifests + ~ci_docker_hub:true + ~job_docker_amd64 + ~job_docker_arm64; + (* Stage: manual *) + publish_kernel_sdk; + ]) ; + register + "release_tag" + If.(on_tezos_namespace && push && has_tag_match release_tag_re) + ~jobs:(release_tag_pipeline Release_tag) ; + register + "beta_release_tag" + If.(on_tezos_namespace && push && has_tag_match beta_release_tag_re) + ~jobs:(release_tag_pipeline Beta_release_tag) ; + register + "release_tag_test" + If.(not_on_tezos_namespace && push && has_any_release_tag) + ~jobs:(release_tag_pipeline ~test:true Release_tag) ; + register + "non_release_tag" + If.(on_tezos_namespace && push && has_non_release_tag) + ~jobs:(release_tag_pipeline Non_release_tag) ; + register + "non_release_tag_test" + If.(not_on_tezos_namespace && push && has_non_release_tag) + ~jobs:(release_tag_pipeline ~test:true Non_release_tag) ; + register + "schedule_extended_test" + schedule_extended_tests + ~jobs: + (let tezt_flaky_dependencies = + [ + job_build_x86_64_release; + job_build_x86_64_exp_dev_extra; + job_build_kernels; + job_tezt_fetch_records; + ] + in + let job_tezt_flaky : job = + job_tezt + ~name:"tezt_flaky" + ~tezt_tests:"flaky" + (* To handle flakiness, consider tweaking [~tezt_parallel] (passed to + Tezt's '--job-count'), and [~tezt_retry] (passed to Tezt's + '--retry') *) + ~retry:2 + ~tezt_retry:3 + ~tezt_parallel:1 + ~parallel:1 + ~dependencies: + (Dependent + (List.map (fun job -> Artifacts job) tezt_flaky_dependencies)) + () + in + [job_build_arm64_release; job_build_arm64_exp_dev_extra] + (* These jobs are necessary to run flaky tezts *) + @ tezt_flaky_dependencies + (* Stage: packaging *) + @ (job_opam_prepare :: jobs_opam_package) + (* Stage: test *) + @ jobs_install_octez (* Flaky tezts *) + @ [job_tezt_flaky; job_documentation_linkcheck] + @ jobs_install_python) + +(* Split pipelines and writes image templates *) +let config = + (* Split pipelines types into workflow and includes *) + let workflow, includes = Pipeline.workflow_includes () in + (* Write image templates. + + This is a temporary stop-gap and only necessary for jobs that are + not define in OCaml. Once all jobs have been migrated, this can + be removed. *) + let image_templates_include = + let filename = ".gitlab/ci/jobs/shared/images.yml" in + let image_template (name, image_path) : string * Yaml.value = + let name = ".image_template__" ^ name in + (name, `O [("image", `String (Image.name image_path))]) + in + let config : Yaml.value = `O (List.map image_template (Image.all ())) in + Base.write_yaml ~header:Tezos_ci.header filename config ; + {local = filename; rules = []} + in + let includes = + image_templates_include + :: {local = ".gitlab/ci/jobs/shared/templates.yml"; rules = []} + :: includes + in + Pipeline.write () ; + [ + Workflow workflow; + Default default; + Variables variables; + Stages (Stage.to_string_list ()); + Job trigger; + Include includes; + ] + +let () = + let filename = Base.(project_root // ".gitlab-ci.yml") in + To_yaml.to_file ~header:Tezos_ci.header ~filename config diff --git a/ci/bin/rules.ml b/ci/bin/rules.ml new file mode 100644 index 0000000000000000000000000000000000000000..819a73ac193ec3301baf212e3e168bf1f0a28754 --- /dev/null +++ b/ci/bin/rules.ml @@ -0,0 +1,50 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +open Gitlab_ci +open Gitlab_ci.If + +(** The source of a pipeline. *) +type pipeline_source = Schedule | Merge_request_event | Push + +(** Convert at {!pipeline_source} to string. *) +let pipeline_source_to_string = function + | Schedule -> "schedule" + | Merge_request_event -> "merge_request_event" + | Push -> "push" + +let pipeline_source_eq pipeline_source = + Predefined_vars.ci_pipeline_source + == str (pipeline_source_to_string pipeline_source) + +let merge_request = pipeline_source_eq Merge_request_event + +let push = pipeline_source_eq Push + +let scheduled = pipeline_source_eq Schedule + +let schedule_extended_tests = + scheduled && var "TZ_SCHEDULE_KIND" == str "EXTENDED_TESTS" + +let on_master = Predefined_vars.ci_commit_branch == str "master" + +let on_branch branch = Predefined_vars.ci_commit_branch == str branch + +let on_tezos_namespace = Predefined_vars.ci_project_namespace == str "tezos" + +let not_on_tezos_namespace = Predefined_vars.ci_project_namespace != str "tezos" + +let has_tag_match tag = Predefined_vars.ci_commit_tag =~ tag + +let assigned_to_marge_bot = + Predefined_vars.ci_merge_request_assignees =~! "/nomadic-margebot/" + +let triggered_by_marge_bot = + Predefined_vars.gitlab_user_login == str "nomadic-margebot" + +let has_mr_label label = + Predefined_vars.ci_merge_request_labels =~ "/(?:^|,)" ^ label ^ "(?:$|,)/" diff --git a/ci/bin/rules.mli b/ci/bin/rules.mli new file mode 100644 index 0000000000000000000000000000000000000000..71a4f33e1d66bfa562b55960a08a688693876cca --- /dev/null +++ b/ci/bin/rules.mli @@ -0,0 +1,54 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +open Gitlab_ci + +(** A set of commonly used rules used for defining pipeline types and their inclusion. + + For more info, refer to + {{:https://docs.gitlab.com/ee/ci/variables/predefined_variables.html}Predefined + variables reference}. +*) + +(** A rule that is true if [CI_PIPELINE_SOURCE] is [merge_request_event]. *) +val merge_request : If.t + +(** A rule that is true if [CI_PIPELINE_SOURCE] is [push]. *) +val push : If.t + +(** A rule that is true if [CI_PIPELINE_SOURCE] is [scheduled]. *) +val scheduled : If.t + +(** A rule that is true for scheduled extended test pipelines. + + Such pipelines have [CI_PIPELINE_SOURCE] set to [scheduled] and + [TZ_SCHEDULE_KIND] set to [EXTENDED_TESTS]. *) +val schedule_extended_tests : If.t + +(** A rule that is true if [CI_COMMIT_BRANCH] is a given branch. *) +val on_branch : string -> If.t + +(** A rule that is true if [CI_COMMIT_BRANCH] is [master]. *) +val on_master : If.t + +(** A rule that is true if [CI_PROJECT_NAMESPACE] is [tezos]. *) +val on_tezos_namespace : If.t + +(** A rule that is true if [CI_PROJECT_NAMESPACE] is not [tezos]. *) +val not_on_tezos_namespace : If.t + +(** A rule that is true if [CI_COMMIT_TAG] matches the given regexp. *) +val has_tag_match : string -> If.t + +(** A rule that is true if the comma-separated list [CI_MERGE_REQUEST_LABELS] contains a given label. *) +val has_mr_label : string -> If.t + +(** A rule that is true if [CI_MERGE_REQUEST_ASSIGNEES] contains [nomadic-margebot]. *) +val assigned_to_marge_bot : If.t + +(** A rule that is true if [CI_USER_LOGIN] equals [nomadic-margebot]. *) +val triggered_by_marge_bot : If.t diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml new file mode 100644 index 0000000000000000000000000000000000000000..c4e60cb73db40148fe006bdaf5255e4231ac8747 --- /dev/null +++ b/ci/bin/tezos_ci.ml @@ -0,0 +1,381 @@ +open Gitlab_ci.Util + +let header = + {|# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +|} + +let () = Printexc.register_printer @@ function Failure s -> Some s | _ -> None + +let failwith fmt = Format.kasprintf (fun s -> failwith s) fmt + +module Stage = struct + type t = Stage of string + + let stages : t list ref = ref [] + + let register name = + let stage = Stage name in + if List.mem stage !stages then + failwith "[Stage.register] attempted to register stage %S twice" name + else ( + stages := stage :: !stages ; + stage) + + let name (Stage name) = name + + let to_string_list () = List.map name (List.rev !stages) +end + +module Pipeline = struct + type t = { + name : string; + if_ : Gitlab_ci.If.t; + variables : Gitlab_ci.Types.variables option; + jobs : Gitlab_ci.Types.job list; + } + + let pipelines : t list ref = ref [] + + let filename : name:string -> string = + fun ~name -> sf ".gitlab/ci/pipelines/%s.yml" name + + let register ?variables ?(jobs = []) name if_ = + let pipeline : t = {variables; if_; name; jobs} in + (* TODO: check that stages have not been crossed. *) + (* TODO: check that there are no dependencies on jobs that do not produce artifacts (makes no sense) *) + if List.exists (fun {name = name'; _} -> name' = name) !pipelines then + failwith + "[Pipeline.register] attempted to register pipeline %S twice" + name + else pipelines := pipeline :: !pipelines + + let all () = List.rev !pipelines + + (* Perform a set of static checks on the full pipeline before writing it. *) + let precheck {name = pipeline_name; jobs; _} = + let job_by_name : (string, Gitlab_ci.Types.job) Hashtbl.t = + Hashtbl.create 5 + in + (* Populate [job_by_name] and check that no two different jobs have the same name. *) + List.iter + (fun (job : Gitlab_ci.Types.job) -> + match Hashtbl.find_opt job_by_name job.name with + | None -> Hashtbl.add job_by_name job.name job + | Some _ -> + failwith + "[%s] the job '%s' is included twice" + pipeline_name + job.name) + jobs ; + (* Check usage of [needs:] & [depends:] *) + Fun.flip List.iter jobs @@ fun job -> + (* Get the [needs:] / [dependencies:] of job *) + let opt_set l = + List.fold_right + String_set.add + (Option.value ~default:[] l) + String_set.empty + in + let needs = + match job.needs with + | Some needs -> + List.fold_right + (fun Gitlab_ci.Types.{job; optional} mandatory_needs -> + if not optional then String_set.add job mandatory_needs + else mandatory_needs) + needs + String_set.empty + | None -> String_set.empty + in + let dependencies = opt_set job.dependencies in + (* Check that dependencies are a subset of needs. + Note: this is already enforced by the smart constructor {!job} + defined below. Is it redundant? Nothing enforces the usage if + this smart constructor at this point.*) + String_set.iter + (fun dependency -> + if not (String_set.mem dependency needs) then + failwith + "[%s] the job '%s' has a [dependency:] on '%s' which is not \ + included in it's [need:]" + pipeline_name + job.name + dependency) + dependencies ; + (* Check that needed jobs (which thus includes dependencies) are defined *) + ( Fun.flip String_set.iter needs @@ fun need -> + match Hashtbl.find_opt job_by_name need with + | Some _needed_job -> + (* TODO: check rule implication *) + () + | None when need = "trigger" -> + (* TODO: special handling for trigger *) + () + | None -> + (* TODO: handle optional needs *) + failwith + "[%s] job '%s' has a need on '%s' which is not defined in this \ + pipeline." + pipeline_name + job.name + need ) ; + (* Check that all [dependencies:] are on jobs that produce artifacts *) + ( Fun.flip String_set.iter dependencies @@ fun dependency -> + match Hashtbl.find_opt job_by_name dependency with + | Some {artifacts = Some {paths = _ :: _; _}; _} + | Some {artifacts = Some {reports = Some {dotenv = Some _; _}; _}; _} -> + (* This is fine: we depend on a job that define non-report artifacts, or a dotenv file. *) + () + | Some _ -> + failwith + "[%s] the job '%s' has a [dependency:] on '%s' which produces \ + neither regular, [paths:] artifacts or a dotenv report." + pipeline_name + job.name + dependency + | None -> + (* This case is precluded by the dependency analysis above. *) + assert false ) ; + (* TODO: check for cycles *) + (* TODO: if a job rule is manual, make a warning if allow_failure is not set to true? *) + () + + let write () = + all () + |> List.iter @@ fun ({name; jobs; _} as pipeline) -> + if not (Sys.getenv_opt "CI_DISABLE_PRECHECK" = Some "true") then + precheck pipeline ; + match jobs with + | [] -> () + | _ :: _ -> + let filename = filename ~name in + let config = List.map (fun j -> Gitlab_ci.Types.Job j) jobs in + Gitlab_ci.To_yaml.to_file ~header ~filename config + + let workflow_includes () : + Gitlab_ci.Types.workflow * Gitlab_ci.Types.include_ list = + let workflow_rule_of_pipeline = function + | {name; if_; variables; jobs = _} -> + (* Add [PIPELINE_TYPE] to the variables of the workflow rules, so + that it can be added to the pipeline [name] *) + let variables = + ("PIPELINE_TYPE", name) :: Option.value ~default:[] variables + in + workflow_rule ~if_ ~variables ~when_:Always () + in + let include_of_pipeline = function + | {name; if_; variables = _; jobs = _} -> + (* Note that variables associated to the pipeline are not + set in the include rule, they are set in the workflow + rule *) + let rule = include_rule ~if_ ~when_:Always () in + Gitlab_ci.Types.{local = filename ~name; rules = [rule]} + in + let pipelines = all () in + let workflow = + let rules = List.map workflow_rule_of_pipeline pipelines in + Gitlab_ci.Types.{rules; name = Some "[$PIPELINE_TYPE] $CI_COMMIT_TITLE"} + in + let includes = List.map include_of_pipeline pipelines in + (workflow, includes) +end + +module Image = struct + type t = Gitlab_ci.Types.image + + let images : t String_map.t ref = ref String_map.empty + + let register ~name ~image_path = + let image : t = Image image_path in + if String_map.mem name !images then + failwith "[Image.register] attempted to register image %S twice" name + else ( + images := String_map.add name image !images ; + image) + + let name (Gitlab_ci.Types.Image name) = name + + let all () = String_map.bindings !images +end + +type arch = Amd64 | Arm64 + +type dependency = + | Job of Gitlab_ci.Types.job + | Optional of Gitlab_ci.Types.job + | Artifacts of Gitlab_ci.Types.job + +type dependencies = + | Staged of Gitlab_ci.Types.job list + | Dependent of dependency list + +type git_strategy = Fetch | Clone | No_strategy + +let enc_git_strategy = function + | Fetch -> "fetch" + | Clone -> "clone" + | No_strategy -> "none" + +let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache + ?interruptible ?(dependencies = Staged []) ?services ?variables ?rules + ?timeout ?tags ?git_strategy ?when_ ?coverage ?retry ?parallel ~image ~stage + ~name script : Gitlab_ci.Types.job = + (match (rules, when_) with + | Some _, Some _ -> + failwith + "[job] do not use [when_] and [rules] at the same time in job '%s' -- \ + it's confusing." + name + | _ -> ()) ; + let tags = + Some + (match (arch, tags) with + | Some arch, None -> + [(match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64")] + | None, Some tags -> tags + | None, None -> + (* By default, we assume Amd64 runners as given by the [gcp] tag. *) + ["gcp"] + | Some _, Some _ -> + failwith + "[job] cannot specify both [arch] and [tags] at the same time in \ + job '%s'." + name) + in + let stage = Some (Stage.name stage) in + let script = Some script in + if parallel = Some 0 then + failwith + "[job] the argument to [parallel] must be strictly positive in job '%s'." + name ; + let needs, dependencies = + let expand_job = function + | Gitlab_ci.Types.{name; parallel; _} -> ( + match parallel with + | None -> [name] + | Some n -> List.map (fun i -> sf "%s %d/%d" name i n) (range 1 n)) + in + match dependencies with + | Staged dependencies -> + (None, Some (List.concat_map expand_job dependencies)) + | Dependent dependencies -> + let rec loop (needs, dependencies) = function + | dep :: deps -> + let job_expanded = + match dep with + | Job j | Optional j | Artifacts j -> List.rev (expand_job j) + in + let needs ~optional = + List.map + (fun name -> Gitlab_ci.Types.{job = name; optional}) + job_expanded + @ needs + in + let needs, dependencies = + match dep with + | Job _ -> (needs ~optional:false, dependencies) + | Optional _ -> (needs ~optional:true, dependencies) + | Artifacts _ -> + (needs ~optional:false, job_expanded @ dependencies) + in + loop (needs, dependencies) deps + | [] -> + (* Note that [dependencies] is always filled, because we want to + fetch no dependencies by default ([dependencies = Some + []]), whereas the absence of [dependencies = None] would + fetch all the dependencies of the preceding jobs. *) + (Some (List.rev needs), Some (List.rev dependencies)) + in + loop ([], []) dependencies + in + (* https://docs.gitlab.com/ee/ci/yaml/#needs *) + (match needs with + | Some needs when List.length needs > 50 -> + failwith + "[job] attempted to add %d [needs] to the job '%s' -- GitLab imposes a \ + limit of 50." + (List.length needs) + name + | _ -> ()) ; + let variables = + match git_strategy with + | Some strategy -> + Some + (("GIT_STRATEGY", enc_git_strategy strategy) + :: Option.value ~default:[] variables) + | None -> variables + in + (match retry with + | Some retry when retry < 0 || retry > 2 -> + failwith + "Invalid [retry] value '%d' for job '%s': must be 0, 1 or 2." + retry + name + | _ -> ()) ; + { + name; + after_script; + allow_failure; + artifacts; + before_script; + cache; + image = Some image; + interruptible; + needs; + dependencies; + rules; + script; + services; + stage; + variables; + timeout; + tags; + when_; + coverage; + retry; + parallel; + } + +let external_jobs = ref String_set.empty + +let job_external ?directory ?filename_suffix (job : Gitlab_ci.Types.job) : + Gitlab_ci.Types.job = + let stage = + match job.stage with + | Some stage -> stage + | None -> + (* Test is the name of the default stage in GitLab CI *) + "test" + in + let basename = + match filename_suffix with + | None -> job.name + | Some suffix -> job.name ^ "-" ^ suffix + in + let directory = Option.value ~default:stage directory in + let filename = sf ".gitlab/ci/jobs/%s/%s.yml" directory basename in + if String_set.mem filename !external_jobs then + failwith + "Attempted to write external job %s twice -- perhaps you need to set \ + filename_suffix?" + filename + else ( + external_jobs := String_set.add filename !external_jobs ; + let config = [Gitlab_ci.Types.Job job] in + Gitlab_ci.To_yaml.to_file ~header ~filename config ; + job) + +let jobs_external ~path (jobs : Gitlab_ci.Types.job list) : + Gitlab_ci.Types.job list = + let filename = sf ".gitlab/ci/jobs/%s" path in + if String_set.mem filename !external_jobs then + failwith + "[job_external] attempted to write external job file %s twice." + filename + else ( + external_jobs := String_set.add filename !external_jobs ; + let config = List.map (fun job -> Gitlab_ci.Types.Job job) jobs in + Gitlab_ci.To_yaml.to_file ~header ~filename config ; + jobs) diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli new file mode 100644 index 0000000000000000000000000000000000000000..bc531d4648ee098ffbfe07db2c663c2593e8f4da --- /dev/null +++ b/ci/bin/tezos_ci.mli @@ -0,0 +1,222 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(* A string that should be prepended to all generated files. + + Warns not to modify the generated files, and refers to the generator. *) +val header : string + +(** A facility for registering pipeline stages. *) +module Stage : sig + (* Represents a pipeline stage *) + type t + + (** Register a stage. + + Fails if a stage of the same name has already been registered. *) + val register : string -> t + + (** Name of a stage *) + val name : t -> string + + (** Returns the list of registered stages, in order of registration, as a list of strings. + + This is appropriate to use with the [Stages] constructor of + {!Gitlab_ci.Types.config_element} generating a [stages:] + element. *) + val to_string_list : unit -> string list +end + +(** A facility for registering pipelines. *) +module Pipeline : sig + (* Register a pipeline. + + [register ?variables name rule] will register a pipeline [name] + that runs when [rule] is true. + + If [variables] is set, then these variables will be added to the + [workflow:] clause for this pipeline in the top-level [.gitlab-ci.yml]. + + If [jobs] is not set, then the pipeline is a legacy, hand-written + .yml file, expected to be defined in + [.gitlab/ci/pipelines/NAME.yml]. If [jobs] is set, then the those + jobs will be generated to the same file when {!write} is + called. In both cases, this file will be included from the + top-level [.gitlab-ci.yml]. *) + val register : + ?variables:Gitlab_ci.Types.variables -> + ?jobs:Gitlab_ci.Types.job list -> + string -> + Gitlab_ci.If.t -> + unit + + (** Splits the set of registered pipelines into workflow rules and includes. + + The result of this function is used in the top-level + [.gitlab-ci.yml] to filter pipelines (using [workflow:] rules) + and to include the select pipeline (using [include:]). *) + val workflow_includes : + unit -> Gitlab_ci.Types.workflow * Gitlab_ci.Types.include_ list + + (** Writes the set of non-legacy registered pipelines. + + The string {!header} will be prepended to each written file. *) + val write : unit -> unit +end + +(** A facility for registering images for [image:] keywords. + + During the transition from hand-written [.gitlab-ci.yml] to + CI-in-OCaml, we write a set of templates corresponding to the + registered images, to make them available for hand-written jobs. *) +module Image : sig + (** Represents an image *) + type t = Gitlab_ci.Types.image + + (** Register an image of the given [name] and [image_path]. *) + val register : name:string -> image_path:string -> t + + (** The name of an image *) + val name : t -> string + + (** Returns the set of registered images as [name, image] tuples. *) + val all : unit -> (string * t) list +end + +(** Represents architectures. *) +type arch = Amd64 | Arm64 + +(** A job dependency. + + - A job that depends on [Job j] will not start until [j] finishes. + + - A job that depends on [Optional j] will not start until [j] + finishes, if it is present in the pipeline. For more information, + see + {{:https://docs.gitlab.com/ee/ci/yaml/#needsoptional}needs:optional}. + + - A job that depends on [Artefacts j] will not start until [j] finishes + and will also have the artefacts of [j] available. *) +type dependency = + | Job of Gitlab_ci.Types.job + | Optional of Gitlab_ci.Types.job + | Artifacts of Gitlab_ci.Types.job + +(** Job dependencies. + + - A [Staged artifact_deps] job implements the default GitLab CI behavior of + running once all jobs in the previous stage have terminated. Artifacts are + downloaded from the list of jobs in [artifact_deps] (by default, no + artifacts are downloaded). + - An [Dependent deps] job runs once all the jobs in [deps] have terminated. + To have a job run immediately, set [Dependent []] + + In practice, prefer using [Dependent]. Only use [Staged + artifact_deps] when the number of dependencies exceed the GitLab + imposed limit of 50 [needs:] per job. *) +type dependencies = + | Staged of Gitlab_ci.Types.job list + | Dependent of dependency list + +(** Values for the [GIT_STRATEGY] variable. + + This can be used to specify whether a job should [Fetch] or [Clone] + the git repository, or not get it at all with [No_strategy]. + + For more information, see + {{:https://docs.gitlab.com/ee/ci/runners/configure_runners.html#git-strategy}GIT_STRATEGY} *) +type git_strategy = + | Fetch (** Translates to [fetch]. *) + | Clone (** Translates to [clone]. *) + | No_strategy + (** Translates to []. + + Renamed to avoid clashes with {!Option.None}. *) + +(** GitLab CI/CD YAML representation of [git_strategy]. + + Translates {!git_strategy} to values of accepted by the GitLab + CI/CD YAML variable [GIT_STRATEGY]. *) +val enc_git_strategy : git_strategy -> string + +(** Define a job. + + This smart constructor for {!Gitlab_ci.Types.job} additionally: + + - Translates each {!dependency} to [needs:] and [dependencies:] + keywords as detailed in the documentation of {!dependency}. + - Adds [tags:] based on [arch] and [tags]: + + - If only [arch] is set to [Amd64] (resp. [Arm64]) then the tag + ["gcp"] (resp ["gcp_arm64"]) is set. + - If only [tags] is set, then it is passed as is to the job's [tags:] + field. + - Setting both [arch] and [tags] throws an error. + - Omitting both [arch] and [tags] is equivalent to setting + [~arch:Amd64] and omitting [tags]. + + - Throws a run-time error if both [rules] and [when_] are passed. A + [when_] field can always be represented by [rules] instead, so use + the latter for more complex conditions. *) +val job : + ?arch:arch -> + ?after_script:string list -> + ?allow_failure:Gitlab_ci.Types.allow_failure_job -> + ?artifacts:Gitlab_ci.Types.artifacts -> + ?before_script:string list -> + ?cache:Gitlab_ci.Types.cache list -> + ?interruptible:bool -> + ?dependencies:dependencies -> + ?services:Gitlab_ci.Types.service list -> + ?variables:Gitlab_ci.Types.variables -> + ?rules:Gitlab_ci.Types.job_rule list -> + ?timeout:Gitlab_ci.Types.time_interval -> + ?tags:string list -> + ?git_strategy:git_strategy -> + ?when_:Gitlab_ci.Types.when_job -> + ?coverage:string -> + ?retry:int -> + ?parallel:int -> + image:Image.t -> + stage:Stage.t -> + name:string -> + string list -> + Gitlab_ci.Types.job + +(** Generates a job to an external file. + + This function is meant to be used in the transition to CI-in-OCaml. + It writes {!header} and the given job to the file + [.gitlab/ci/jobs/DIRECTORY/NAME(-FILENAME_SUFFIX).yml]. + Directory defaults to the stage name if not set. + + This allows migrating all the jobs of a given pipeline, and + including the generated definition of those jobs in other + pipelines where it appears. + + The returned job is the same as the input, for ease of chaining. +*) +val job_external : + ?directory:string -> + ?filename_suffix:string -> + Gitlab_ci.Types.job -> + Gitlab_ci.Types.job + +(** Generates a set of jobs to the same external file. + + This function is meant to be used in the transition to CI-in-OCaml. + It writes {!header} and the given jobs to the file + [.gitlab/ci/jobs/PATH]. + + The use case is the same as [job_external] but for cases where it + is impractical to split a set of jobs into one file per job + (e.g. opam package test jobs). + + The returned set of jobs is the same as the input, for ease of + chaining. *) +val jobs_external : + path:string -> Gitlab_ci.Types.job list -> Gitlab_ci.Types.job list diff --git a/ci/lib_gitlab_ci/base.ml b/ci/lib_gitlab_ci/base.ml new file mode 100644 index 0000000000000000000000000000000000000000..7d7fb72049451d26158ca9bfe25a0ef4accbe226 --- /dev/null +++ b/ci/lib_gitlab_ci/base.ml @@ -0,0 +1,77 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(* A set of definitions borrowed from Tezt's [lib_core/base.ml] *) + +let sf = Format.asprintf + +let ( // ) = Filename.concat + +module String_set = Set.Make (String) +module String_map = Map.Make (String) + +let with_open_out file write_f = + let chan = open_out file in + try + write_f chan ; + close_out chan + with x -> + close_out chan ; + raise x + +let with_open_in file read_f = + let chan = open_in file in + try + let value = read_f chan in + close_in chan ; + value + with x -> + close_in chan ; + raise x + +let read_lines_from_file path = + with_open_in path @@ fun ch -> + let rec loop acc = + match input_line ch with + | exception End_of_file -> List.rev acc + | line -> loop (line :: acc) + in + loop [] + +let write_file filename ~contents = + with_open_out filename @@ fun ch -> output_string ch contents + +let project_root = + match Sys.getenv_opt "DUNE_SOURCEROOT" with + | Some x -> x + | None -> ( + match Sys.getenv_opt "PWD" with + | Some x -> x + | None -> + (* For some reason, under [dune runtest], [PWD] and + [getcwd] have different values. [getcwd] is in + [_build/default], and [PWD] is where [dune runtest] was + executed, which is closer to what we want. *) + Sys.getcwd ()) + +let write_yaml ?(header = "") filename yaml = + let contents = + header + ^ + match Yaml.(to_string ~encoding:`Utf8 ~scalar_style:`Plain yaml) with + | Ok s -> s + | Error (`Msg error_msg) -> + failwith + ("Could not convert JSON configuration to YAML string: " ^ error_msg) + in + write_file filename ~contents + +let range a b = + let rec range ?(acc = []) a b = + if b < a then acc else range ~acc:(b :: acc) a (b - 1) + in + range a b diff --git a/ci/lib_gitlab_ci/dune b/ci/lib_gitlab_ci/dune new file mode 100644 index 0000000000000000000000000000000000000000..d6788e41b5fb0614135fdabd37cb8f659d73a1d0 --- /dev/null +++ b/ci/lib_gitlab_ci/dune @@ -0,0 +1,3 @@ +(library + (name gitlab_ci) + (libraries yaml)) diff --git a/ci/lib_gitlab_ci/if.ml b/ci/lib_gitlab_ci/if.ml new file mode 100644 index 0000000000000000000000000000000000000000..c09542c9bfd3b89bc56c7fdfec91f03f7e83dee5 --- /dev/null +++ b/ci/lib_gitlab_ci/if.ml @@ -0,0 +1,89 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +open Base + +type var = Var of string + +let encode_var = function Var n -> "$" ^ n + +type term = Str of string | Null + +type t = + | And of (t * t) + | Or of (t * t) + | Eq of (var * term) + | Neq of (var * term) + | Match of (var * string) + | Unmatch of (var * string) + +let rec encode expr = + let prio = function + | Eq _ -> 1 + | Neq _ -> 1 + | Match _ -> 1 + | Unmatch _ -> 1 + | And _ -> 2 + | Or _ -> 3 + in + (* + Precedence: not > and > or > string, var + + And (Or a b) c -> (a || b) && c + Or a (And b c) -> a || b && c + Or (And a b) c -> a && b || c + *) + let paren_opt sub_expr = + let s = encode sub_expr in + if prio expr < prio sub_expr then "(" ^ s ^ ")" else s + in + let encode_term = function Null -> "null" | Str s -> sf {|"%s"|} s in + match expr with + | And (a, b) -> sf "%s && %s" (paren_opt a) (paren_opt b) + | Or (a, b) -> sf "%s || %s" (paren_opt a) (paren_opt b) + | Eq (a, b) -> sf "%s == %s" (encode_var a) (encode_term b) + | Neq (a, b) -> sf "%s != %s" (encode_var a) (encode_term b) + | Match (a, b) -> sf "%s =~ %s" (encode_var a) b + | Unmatch (a, b) -> sf "%s !~ %s" (encode_var a) b + +let var n = Var n + +let eq a b = Eq (a, b) + +let neq a b = Neq (a, b) + +let and_ a b = And (a, b) + +let or_ a b = Or (a, b) + +let str s = Str s + +let null = Null + +let match_ a b = Match (a, b) + +let unmatch a b = Unmatch (a, b) + +let ( == ) = eq + +let ( != ) = neq + +let ( && ) = and_ + +let ( || ) = or_ + +let ( =~ ) = match_ + +let ( =~! ) = unmatch + +let rec not = function + | And (a, b) -> Or (not a, not b) + | Or (a, b) -> And (not a, not b) + | Eq (x, b) -> Neq (x, b) + | Neq (x, b) -> Eq (x, b) + | Match (x, s) -> Unmatch (x, s) + | Unmatch (x, s) -> Match (x, s) diff --git a/ci/lib_gitlab_ci/if.mli b/ci/lib_gitlab_ci/if.mli new file mode 100644 index 0000000000000000000000000000000000000000..ed0cf8f67edcb5c7f3ec9e4c9df1c370cfbe3acc --- /dev/null +++ b/ci/lib_gitlab_ci/if.mli @@ -0,0 +1,67 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(** Predicates for GitLab [if:] expression, as used in [rules:] clauses. *) +type t + +(** Variables for GitLab [if:] expressions. *) +type var + +(** The string representation of a variable. + + In other words, [encode_var @@ "foo"] translates to ["$foo"]. *) +val encode_var : var -> string + +(** Terms for predicates in GitLab [if:] clauses. *) +type term + +(** The string representation of an [if:] expression. *) +val encode : t -> string + +(** [var name] is the [if:] expression [$name]. *) +val var : string -> var + +(** [str s] is the [if:] expression ["s"]. *) +val str : string -> term + +(** The [if:]-expression [null]. *) +val null : term + +(** Equality in [if:]-expressions. + + Example: [var "foo" == str "bar"] translates to [$foo == "bar"]. *) +val ( == ) : var -> term -> t + +(** Inequality in [if:]-expressions. + + Example: [var "foo" != str "bar"] translates to [$foo != "bar"]. *) +val ( != ) : var -> term -> t + +(** Conjunction of [if:]-expressions. *) +val ( && ) : t -> t -> t + +(** Disjunction of [if:]-expressions. *) +val ( || ) : t -> t -> t + +(** Pattern match on [if:]-expressions. + + Example: [var "foo" =~ str "/bar/"] translates to [$foo =~ "/bar/"]. *) +val ( =~ ) : var -> string -> t + +(** Negated pattern match on [if:]-expressions. + + Example: [var "foo" =~! str "/bar/"] translates to [$foo !~ "/bar/"]. *) +val ( =~! ) : var -> string -> t + +(** Negation of a predicate. + + If [t] evaluates to true, then [not t] evaluates to false. Note + that [if:] expressions have no native negation operator. Therefore + this function works by rewriting the expression using de Morgan's + laws and swapping (negated) operators for their (un)negated + counter-parts. *) +val not : t -> t diff --git a/ci/lib_gitlab_ci/predefined_vars.ml b/ci/lib_gitlab_ci/predefined_vars.ml new file mode 100644 index 0000000000000000000000000000000000000000..5e9a9f690cad350c210f48e6d3b1e5b74b1414f5 --- /dev/null +++ b/ci/lib_gitlab_ci/predefined_vars.ml @@ -0,0 +1,314 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +open If + +let show = If.encode_var + +let chat_channel = var "CHAT_CHANNEL" + +let chat_input = var "CHAT_INPUT" + +let chat_user_id = var "CHAT_USER_ID" + +let ci = var "CI" + +let ci_api_v4_url = var "CI_API_V4_URL" + +let ci_api_graphql_url = var "CI_API_GRAPHQL_URL" + +let ci_builds_dir = var "CI_BUILDS_DIR" + +let ci_commit_author = var "CI_COMMIT_AUTHOR" + +let ci_commit_before_sha = var "CI_COMMIT_BEFORE_SHA" + +let ci_commit_branch = var "CI_COMMIT_BRANCH" + +let ci_commit_description = var "CI_COMMIT_DESCRIPTION" + +let ci_commit_message = var "CI_COMMIT_MESSAGE" + +let ci_commit_ref_name = var "CI_COMMIT_REF_NAME" + +let ci_commit_ref_protected = var "CI_COMMIT_REF_PROTECTED" + +let ci_commit_ref_slug = var "CI_COMMIT_REF_SLUG" + +let ci_commit_sha = var "CI_COMMIT_SHA" + +let ci_commit_short_sha = var "CI_COMMIT_SHORT_SHA" + +let ci_commit_tag = var "CI_COMMIT_TAG" + +let ci_commit_tag_message = var "CI_COMMIT_TAG_MESSAGE" + +let ci_commit_timestamp = var "CI_COMMIT_TIMESTAMP" + +let ci_commit_title = var "CI_COMMIT_TITLE" + +let ci_concurrent_id = var "CI_CONCURRENT_ID" + +let ci_concurrent_project_id = var "CI_CONCURRENT_PROJECT_ID" + +let ci_config_path = var "CI_CONFIG_PATH" + +let ci_debug_trace = var "CI_DEBUG_TRACE" + +let ci_debug_services = var "CI_DEBUG_SERVICES" + +let ci_default_branch = var "CI_DEFAULT_BRANCH" + +let ci_dependency_proxy_direct_group_image_prefix = + var "CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX" + +let ci_dependency_proxy_group_image_prefix = + var "CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX" + +let ci_dependency_proxy_password = var "CI_DEPENDENCY_PROXY_PASSWORD" + +let ci_dependency_proxy_server = var "CI_DEPENDENCY_PROXY_SERVER" + +let ci_dependency_proxy_user = var "CI_DEPENDENCY_PROXY_USER" + +let ci_deploy_freeze = var "CI_DEPLOY_FREEZE" + +let ci_deploy_password = var "CI_DEPLOY_PASSWORD" + +let ci_deploy_user = var "CI_DEPLOY_USER" + +let ci_disposable_environment = var "CI_DISPOSABLE_ENVIRONMENT" + +let ci_environment_name = var "CI_ENVIRONMENT_NAME" + +let ci_environment_slug = var "CI_ENVIRONMENT_SLUG" + +let ci_environment_url = var "CI_ENVIRONMENT_URL" + +let ci_environment_action = var "CI_ENVIRONMENT_ACTION" + +let ci_environment_tier = var "CI_ENVIRONMENT_TIER" + +let ci_release_description = var "CI_RELEASE_DESCRIPTION" + +let ci_gitlab_fips_mode = var "CI_GITLAB_FIPS_MODE" + +let ci_has_open_requirements = var "CI_HAS_OPEN_REQUIREMENTS" + +let ci_job_id = var "CI_JOB_ID" + +let ci_job_image = var "CI_JOB_IMAGE" + +let ci_job_manual = var "CI_JOB_MANUAL" + +let ci_job_name = var "CI_JOB_NAME" + +let ci_job_name_slug = var "CI_JOB_NAME_SLUG" + +let ci_job_stage = var "CI_JOB_STAGE" + +let ci_job_status = var "CI_JOB_STATUS" + +let ci_job_timeout = var "CI_JOB_TIMEOUT" + +let ci_job_token = var "CI_JOB_TOKEN" + +let ci_job_url = var "CI_JOB_URL" + +let ci_job_started_at = var "CI_JOB_STARTED_AT" + +let ci_kubernetes_active = var "CI_KUBERNETES_ACTIVE" + +let ci_node_index = var "CI_NODE_INDEX" + +let ci_node_total = var "CI_NODE_TOTAL" + +let ci_open_merge_requests = var "CI_OPEN_MERGE_REQUESTS" + +let ci_pages_domain = var "CI_PAGES_DOMAIN" + +let ci_pages_url = var "CI_PAGES_URL" + +let ci_pipeline_id = var "CI_PIPELINE_ID" + +let ci_pipeline_iid = var "CI_PIPELINE_IID" + +let ci_pipeline_source = var "CI_PIPELINE_SOURCE" + +let ci_pipeline_triggered = var "CI_PIPELINE_TRIGGERED" + +let ci_pipeline_url = var "CI_PIPELINE_URL" + +let ci_pipeline_created_at = var "CI_PIPELINE_CREATED_AT" + +let ci_pipeline_name = var "CI_PIPELINE_NAME" + +let ci_project_dir = var "CI_PROJECT_DIR" + +let ci_project_id = var "CI_PROJECT_ID" + +let ci_project_name = var "CI_PROJECT_NAME" + +let ci_project_namespace = var "CI_PROJECT_NAMESPACE" + +let ci_project_namespace_id = var "CI_PROJECT_NAMESPACE_ID" + +let ci_project_path_slug = var "CI_PROJECT_PATH_SLUG" + +let ci_project_path = var "CI_PROJECT_PATH" + +let ci_project_repository_languages = var "CI_PROJECT_REPOSITORY_LANGUAGES" + +let ci_project_root_namespace = var "CI_PROJECT_ROOT_NAMESPACE" + +let ci_project_title = var "CI_PROJECT_TITLE" + +let ci_project_description = var "CI_PROJECT_DESCRIPTION" + +let ci_project_url = var "CI_PROJECT_URL" + +let ci_project_visibility = var "CI_PROJECT_VISIBILITY" + +let ci_project_classification_label = var "CI_PROJECT_CLASSIFICATION_LABEL" + +let ci_registry = var "CI_REGISTRY" + +let ci_registry_image = var "CI_REGISTRY_IMAGE" + +let ci_registry_password = var "CI_REGISTRY_PASSWORD" + +let ci_registry_user = var "CI_REGISTRY_USER" + +let ci_repository_url = var "CI_REPOSITORY_URL" + +let ci_runner_description = var "CI_RUNNER_DESCRIPTION" + +let ci_runner_executable_arch = var "CI_RUNNER_EXECUTABLE_ARCH" + +let ci_runner_id = var "CI_RUNNER_ID" + +let ci_runner_revision = var "CI_RUNNER_REVISION" + +let ci_runner_short_token = var "CI_RUNNER_SHORT_TOKEN" + +let ci_runner_tags = var "CI_RUNNER_TAGS" + +let ci_runner_version = var "CI_RUNNER_VERSION" + +let ci_server_host = var "CI_SERVER_HOST" + +let ci_server_name = var "CI_SERVER_NAME" + +let ci_server_port = var "CI_SERVER_PORT" + +let ci_server_protocol = var "CI_SERVER_PROTOCOL" + +let ci_server_shell_ssh_host = var "CI_SERVER_SHELL_SSH_HOST" + +let ci_server_shell_ssh_port = var "CI_SERVER_SHELL_SSH_PORT" + +let ci_server_revision = var "CI_SERVER_REVISION" + +let ci_server_tls_ca_file = var "CI_SERVER_TLS_CA_FILE" + +let ci_server_tls_cert_file = var "CI_SERVER_TLS_CERT_FILE" + +let ci_server_tls_key_file = var "CI_SERVER_TLS_KEY_FILE" + +let ci_server_url = var "CI_SERVER_URL" + +let ci_server_version_major = var "CI_SERVER_VERSION_MAJOR" + +let ci_server_version_minor = var "CI_SERVER_VERSION_MINOR" + +let ci_server_version_patch = var "CI_SERVER_VERSION_PATCH" + +let ci_server_version = var "CI_SERVER_VERSION" + +let ci_server = var "CI_SERVER" + +let ci_shared_environment = var "CI_SHARED_ENVIRONMENT" + +let ci_template_registry_host = var "CI_TEMPLATE_REGISTRY_HOST" + +let gitlab_ci = var "GITLAB_CI" + +let gitlab_features = var "GITLAB_FEATURES" + +let gitlab_user_email = var "GITLAB_USER_EMAIL" + +let gitlab_user_id = var "GITLAB_USER_ID" + +let gitlab_user_login = var "GITLAB_USER_LOGIN" + +let gitlab_user_name = var "GITLAB_USER_NAME" + +let kubeconfig = var "KUBECONFIG" + +let trigger_payload = var "TRIGGER_PAYLOAD" + +let ci_merge_request_approved = var "CI_MERGE_REQUEST_APPROVED" + +let ci_merge_request_assignees = var "CI_MERGE_REQUEST_ASSIGNEES" + +let ci_merge_request_diff_base_sha = var "CI_MERGE_REQUEST_DIFF_BASE_SHA" + +let ci_merge_request_diff_id = var "CI_MERGE_REQUEST_DIFF_ID" + +let ci_merge_request_event_type = var "CI_MERGE_REQUEST_EVENT_TYPE" + +let ci_merge_request_description = var "CI_MERGE_REQUEST_DESCRIPTION" + +let ci_merge_request_description_is_truncated = + var "CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED" + +let ci_merge_request_id = var "CI_MERGE_REQUEST_ID" + +let ci_merge_request_iid = var "CI_MERGE_REQUEST_IID" + +let ci_merge_request_labels = var "CI_MERGE_REQUEST_LABELS" + +let ci_merge_request_milestone = var "CI_MERGE_REQUEST_MILESTONE" + +let ci_merge_request_project_id = var "CI_MERGE_REQUEST_PROJECT_ID" + +let ci_merge_request_project_path = var "CI_MERGE_REQUEST_PROJECT_PATH" + +let ci_merge_request_project_url = var "CI_MERGE_REQUEST_PROJECT_URL" + +let ci_merge_request_ref_path = var "CI_MERGE_REQUEST_REF_PATH" + +let ci_merge_request_source_branch_name = + var "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" + +let ci_merge_request_source_branch_protected = + var "CI_MERGE_REQUEST_SOURCE_BRANCH_PROTECTED" + +let ci_merge_request_source_branch_sha = + var "CI_MERGE_REQUEST_SOURCE_BRANCH_SHA" + +let ci_merge_request_source_project_id = + var "CI_MERGE_REQUEST_SOURCE_PROJECT_ID" + +let ci_merge_request_source_project_path = + var "CI_MERGE_REQUEST_SOURCE_PROJECT_PATH" + +let ci_merge_request_source_project_url = + var "CI_MERGE_REQUEST_SOURCE_PROJECT_URL" + +let ci_merge_request_squash_on_merge = var "CI_MERGE_REQUEST_SQUASH_ON_MERGE" + +let ci_merge_request_target_branch_name = + var "CI_MERGE_REQUEST_TARGET_BRANCH_NAME" + +let ci_merge_request_target_branch_protected = + var "CI_MERGE_REQUEST_TARGET_BRANCH_PROTECTED" + +let ci_merge_request_target_branch_sha = + var "CI_MERGE_REQUEST_TARGET_BRANCH_SHA" + +let ci_merge_request_title = var "CI_MERGE_REQUEST_TITLE" diff --git a/ci/lib_gitlab_ci/predefined_vars.mli b/ci/lib_gitlab_ci/predefined_vars.mli new file mode 100644 index 0000000000000000000000000000000000000000..f22cc7b813ae9e818124706ed8bf46a76523ec94 --- /dev/null +++ b/ci/lib_gitlab_ci/predefined_vars.mli @@ -0,0 +1,1300 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(** Predefined CI/CD variables in all pipelines. + + This contains a subset of the + {{:https://docs.gitlab.com/ee/ci/variables/predefined_variables.html} + predefined variables}. *) + +(** String representation of a variable with the sigil-sign. + + A handy alias of [If.encode_var]. *) +val show : If.var -> string + +(** Corresponds to [CHAT_CHANNEL]. + + The Source chat channel that triggered the ChatOps command. + + Context: [Pipeline]. Available since GitLab [10.6]. + Available in [all] runners. *) +val chat_channel : If.var + +(** Corresponds to [CHAT_INPUT]. + + The additional arguments passed with the ChatOps command. + + Context: [Pipeline]. Available since GitLab [10.6]. + Available in [all] runners. *) +val chat_input : If.var + +(** Corresponds to [CHAT_USER_ID]. + + The chat service’s user ID of the user who triggered the ChatOps command. + + Context: [Pipeline]. Available since GitLab [14.4]. + Available in [all] runners. *) +val chat_user_id : If.var + +(** Corresponds to [CI]. + + Available for all jobs executed in CI/CD. true when available. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [0.4] runners. *) +val ci : If.var + +(** Corresponds to [CI_API_V4_URL]. + + The GitLab API v4 root URL. + + Context: [Pipeline]. Available since GitLab [11.7]. + Available in [all] runners. *) +val ci_api_v4_url : If.var + +(** Corresponds to [CI_API_GRAPHQL_URL]. + + The GitLab API GraphQL root URL. + + Context: [Pipeline]. Available since GitLab [15.11]. + Available in [all] runners. *) +val ci_api_graphql_url : If.var + +(** Corresponds to [CI_BUILDS_DIR]. + + The top-level directory where builds are executed. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [11.10] runners. *) +val ci_builds_dir : If.var + +(** Corresponds to [CI_COMMIT_AUTHOR]. + + The author of the commit in Name format. + + Context: [Pipeline]. Available since GitLab [13.11]. + Available in [all] runners. *) +val ci_commit_author : If.var + +(** Corresponds to [CI_COMMIT_BEFORE_SHA]. + + The previous latest commit present on a branch or tag. Is always + 0000000000000000000000000000000000000000 for merge request pipelines, the + first commit in pipelines for branches or tags, or when manually running a + pipeline. + + Context: [Pipeline]. Available since GitLab [11.2]. + Available in [all] runners. *) +val ci_commit_before_sha : If.var + +(** Corresponds to [CI_COMMIT_BRANCH]. + + The commit branch name. Available in branch pipelines, including pipelines + for the default branch. Not available in merge request pipelines or tag + pipelines. + + Context: [Pipeline]. Available since GitLab [12.6]. + Available in [0.5] runners. *) +val ci_commit_branch : If.var + +(** Corresponds to [CI_COMMIT_DESCRIPTION]. + + The description of the commit. If the title is shorter than 100 characters, + the message without the first line. + + Context: [Pipeline]. Available since GitLab [10.8]. + Available in [all] runners. *) +val ci_commit_description : If.var + +(** Corresponds to [CI_COMMIT_MESSAGE]. + + The full commit message. + + Context: [Pipeline]. Available since GitLab [10.8]. + Available in [all] runners. *) +val ci_commit_message : If.var + +(** Corresponds to [CI_COMMIT_REF_NAME]. + + The branch or tag name for which project is built. + + Context: [Pipeline]. Available since GitLab [9.0]. + Available in [all] runners. *) +val ci_commit_ref_name : If.var + +(** Corresponds to [CI_COMMIT_REF_PROTECTED]. + + true if the job is running for a protected reference, false otherwise. + + Context: [Pipeline]. Available since GitLab [11.11]. + Available in [all] runners. *) +val ci_commit_ref_protected : If.var + +(** Corresponds to [CI_COMMIT_REF_SLUG]. + + CI_COMMIT_REF_NAME in lowercase, shortened to 63 bytes, and with everything + except 0-9 and a-z replaced with -. No leading / trailing -. Use in URLs, + host names and domain names. + + Context: [Pipeline]. Available since GitLab [9.0]. + Available in [all] runners. *) +val ci_commit_ref_slug : If.var + +(** Corresponds to [CI_COMMIT_SHA]. + + The commit revision the project is built for. + + Context: [Pipeline]. Available since GitLab [9.0]. + Available in [all] runners. *) +val ci_commit_sha : If.var + +(** Corresponds to [CI_COMMIT_SHORT_SHA]. + + The first eight characters of CI_COMMIT_SHA. + + Context: [Pipeline]. Available since GitLab [11.7]. + Available in [all] runners. *) +val ci_commit_short_sha : If.var + +(** Corresponds to [CI_COMMIT_TAG]. + + The commit tag name. Available only in pipelines for tags. + + Context: [Pipeline]. Available since GitLab [9.0]. + Available in [0.5] runners. *) +val ci_commit_tag : If.var + +(** Corresponds to [CI_COMMIT_TAG_MESSAGE]. + + The commit tag message. Available only in pipelines for tags. + + Context: [Pipeline]. Available since GitLab [15.5]. + Available in [all] runners. *) +val ci_commit_tag_message : If.var + +(** Corresponds to [CI_COMMIT_TIMESTAMP]. + + The timestamp of the commit in the ISO 8601 format. For example, + 2022-01-31T16:47:55Z. + + Context: [Pipeline]. Available since GitLab [13.4]. + Available in [all] runners. *) +val ci_commit_timestamp : If.var + +(** Corresponds to [CI_COMMIT_TITLE]. + + The title of the commit. The full first line of the message. + + Context: [Pipeline]. Available since GitLab [10.8]. + Available in [all] runners. *) +val ci_commit_title : If.var + +(** Corresponds to [CI_CONCURRENT_ID]. + + The unique ID of build execution in a single executor. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [11.10] runners. *) +val ci_concurrent_id : If.var + +(** Corresponds to [CI_CONCURRENT_PROJECT_ID]. + + The unique ID of build execution in a single executor and project. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [11.10] runners. *) +val ci_concurrent_project_id : If.var + +(** Corresponds to [CI_CONFIG_PATH]. + + The path to the CI/CD configuration file. Defaults to .gitlab-ci.yml. + Read-only inside a running pipeline. + + Context: [Pipeline]. Available since GitLab [9.4]. + Available in [0.5] runners. *) +val ci_config_path : If.var + +(** Corresponds to [CI_DEBUG_TRACE]. + + true if debug logging (tracing) is enabled. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [1.7] runners. *) +val ci_debug_trace : If.var + +(** Corresponds to [CI_DEBUG_SERVICES]. + + true if service container logging is enabled. + + Context: [Pipeline]. Available since GitLab [15.7]. + Available in [15.7] runners. *) +val ci_debug_services : If.var + +(** Corresponds to [CI_DEFAULT_BRANCH]. + + The name of the project’s default branch. + + Context: [Pipeline]. Available since GitLab [12.4]. + Available in [all] runners. *) +val ci_default_branch : If.var + +(** Corresponds to [CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX]. + + The direct group image prefix for pulling images through the Dependency + Proxy. + + Context: [Pipeline]. Available since GitLab [14.3]. + Available in [all] runners. *) +val ci_dependency_proxy_direct_group_image_prefix : If.var + +(** Corresponds to [CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX]. + + The top-level group image prefix for pulling images through the Dependency + Proxy. + + Context: [Pipeline]. Available since GitLab [13.7]. + Available in [all] runners. *) +val ci_dependency_proxy_group_image_prefix : If.var + +(** Corresponds to [CI_DEPENDENCY_PROXY_PASSWORD]. + + The password to pull images through the Dependency Proxy. + + Context: [Pipeline]. Available since GitLab [13.7]. + Available in [all] runners. *) +val ci_dependency_proxy_password : If.var + +(** Corresponds to [CI_DEPENDENCY_PROXY_SERVER]. + + The server for logging in to the Dependency Proxy. This is equivalent to + $CI_SERVER_HOST:$CI_SERVER_PORT. + + Context: [Pipeline]. Available since GitLab [13.7]. + Available in [all] runners. *) +val ci_dependency_proxy_server : If.var + +(** Corresponds to [CI_DEPENDENCY_PROXY_USER]. + + The username to pull images through the Dependency Proxy. + + Context: [Pipeline]. Available since GitLab [13.7]. + Available in [all] runners. *) +val ci_dependency_proxy_user : If.var + +(** Corresponds to [CI_DEPLOY_FREEZE]. + + Only available if the pipeline runs during a deploy freeze window. true + when available. + + Context: [Pipeline]. Available since GitLab [13.2]. + Available in [all] runners. *) +val ci_deploy_freeze : If.var + +(** Corresponds to [CI_DEPLOY_PASSWORD]. + + The authentication password of the GitLab Deploy Token, if the project has + one. + + Context: [Jobs only]. Available since GitLab [10.8]. + Available in [all] runners. *) +val ci_deploy_password : If.var + +(** Corresponds to [CI_DEPLOY_USER]. + + The authentication username of the GitLab Deploy Token, if the project has + one. + + Context: [Jobs only]. Available since GitLab [10.8]. + Available in [all] runners. *) +val ci_deploy_user : If.var + +(** Corresponds to [CI_DISPOSABLE_ENVIRONMENT]. + + Only available if the job is executed in a disposable environment + (something that is created only for this job and disposed of/destroyed + after the execution - all executors except shell and ssh). true when + available. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [10.1] runners. *) +val ci_disposable_environment : If.var + +(** Corresponds to [CI_ENVIRONMENT_NAME]. + + The name of the environment for this job. Available if environment:name is + set. + + Context: [Pipeline]. Available since GitLab [8.15]. + Available in [all] runners. *) +val ci_environment_name : If.var + +(** Corresponds to [CI_ENVIRONMENT_SLUG]. + + The simplified version of the environment name, suitable for inclusion in + DNS, URLs, Kubernetes labels, and so on. Available if environment:name is + set. The slug is truncated to 24 characters. A random suffix is + automatically added to uppercase environment names. + + Context: [Pipeline]. Available since GitLab [8.15]. + Available in [all] runners. *) +val ci_environment_slug : If.var + +(** Corresponds to [CI_ENVIRONMENT_URL]. + + The URL of the environment for this job. Available if environment:url is + set. + + Context: [Pipeline]. Available since GitLab [9.3]. + Available in [all] runners. *) +val ci_environment_url : If.var + +(** Corresponds to [CI_ENVIRONMENT_ACTION]. + + The action annotation specified for this job’s environment. Available if + environment:action is set. Can be start, prepare, or stop. + + Context: [Pipeline]. Available since GitLab [13.11]. + Available in [all] runners. *) +val ci_environment_action : If.var + +(** Corresponds to [CI_ENVIRONMENT_TIER]. + + The deployment tier of the environment for this job. + + Context: [Pipeline]. Available since GitLab [14.0]. + Available in [all] runners. *) +val ci_environment_tier : If.var + +(** Corresponds to [CI_RELEASE_DESCRIPTION]. + + The description of the release. Available only on pipelines for tags. + Description length is limited to first 1024 characters. + + Context: [Pipeline]. Available since GitLab [15.5]. + Available in [all] runners. *) +val ci_release_description : If.var + +(** Corresponds to [CI_GITLAB_FIPS_MODE]. + + Only available if FIPS mode is enabled in the GitLab instance. true when + available. + + Context: [Pipeline]. Available since GitLab [14.10]. + Available in [all] runners. *) +val ci_gitlab_fips_mode : If.var + +(** Corresponds to [CI_HAS_OPEN_REQUIREMENTS]. + + Only available if the pipeline’s project has an open requirement. true + when available. + + Context: [Pipeline]. Available since GitLab [13.1]. + Available in [all] runners. *) +val ci_has_open_requirements : If.var + +(** Corresponds to [CI_JOB_ID]. + + The internal ID of the job, unique across all jobs in the GitLab instance. + + Context: [Jobs only]. Available since GitLab [9.0]. + Available in [all] runners. *) +val ci_job_id : If.var + +(** Corresponds to [CI_JOB_IMAGE]. + + The name of the Docker image running the job. + + Context: [Pipeline]. Available since GitLab [12.9]. + Available in [12.9] runners. *) +val ci_job_image : If.var + +(** Corresponds to [CI_JOB_MANUAL]. + + Only available if the job was started manually. true when available. + + Context: [Pipeline]. Available since GitLab [8.12]. + Available in [all] runners. *) +val ci_job_manual : If.var + +(** Corresponds to [CI_JOB_NAME]. + + The name of the job. + + Context: [Pipeline]. Available since GitLab [9.0]. + Available in [0.5] runners. *) +val ci_job_name : If.var + +(** Corresponds to [CI_JOB_NAME_SLUG]. + + CI_JOB_NAME in lowercase, shortened to 63 bytes, and with everything except + 0-9 and a-z replaced with -. No leading / trailing -. Use in paths. + + Context: [Pipeline]. Available since GitLab [15.4]. + Available in [all] runners. *) +val ci_job_name_slug : If.var + +(** Corresponds to [CI_JOB_STAGE]. + + The name of the job’s stage. + + Context: [Pipeline]. Available since GitLab [9.0]. + Available in [0.5] runners. *) +val ci_job_stage : If.var + +(** Corresponds to [CI_JOB_STATUS]. + + The status of the job as each runner stage is executed. Use with + after_script. Can be success, failed, or canceled. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [13.5] runners. *) +val ci_job_status : If.var + +(** Corresponds to [CI_JOB_TIMEOUT]. + + The job timeout, in seconds. + + Context: [Jobs only]. Available since GitLab [15.7]. + Available in [15.7] runners. *) +val ci_job_timeout : If.var + +(** Corresponds to [CI_JOB_TOKEN]. + + A token to authenticate with certain API endpoints. The token is valid as + long as the job is running. + + Context: [Jobs only]. Available since GitLab [9.0]. + Available in [1.2] runners. *) +val ci_job_token : If.var + +(** Corresponds to [CI_JOB_URL]. + + The job details URL. + + Context: [Jobs only]. Available since GitLab [11.1]. + Available in [0.5] runners. *) +val ci_job_url : If.var + +(** Corresponds to [CI_JOB_STARTED_AT]. + + The UTC datetime when a job started, in ISO 8601 format. For example, + 2022-01-31T16:47:55Z. + + Context: [Jobs only]. Available since GitLab [13.10]. + Available in [all] runners. *) +val ci_job_started_at : If.var + +(** Corresponds to [CI_KUBERNETES_ACTIVE]. + + Only available if the pipeline has a Kubernetes cluster available for + deployments. true when available. + + Context: [Pipeline]. Available since GitLab [13.0]. + Available in [all] runners. *) +val ci_kubernetes_active : If.var + +(** Corresponds to [CI_NODE_INDEX]. + + The index of the job in the job set. Only available if the job uses + parallel. + + Context: [Pipeline]. Available since GitLab [11.5]. + Available in [all] runners. *) +val ci_node_index : If.var + +(** Corresponds to [CI_NODE_TOTAL]. + + The total number of instances of this job running in parallel. Set to 1 if + the job does not use parallel. + + Context: [Pipeline]. Available since GitLab [11.5]. + Available in [all] runners. *) +val ci_node_total : If.var + +(** Corresponds to [CI_OPEN_MERGE_REQUESTS]. + + A comma-separated list of up to four merge requests that use the current + branch and project as the merge request source. Only available in branch + and merge request pipelines if the branch has an associated merge request. + For example, gitlab-org/gitlab!333,gitlab-org/gitlab-foss!11. + + Context: [Pipeline]. Available since GitLab [13.8]. + Available in [all] runners. *) +val ci_open_merge_requests : If.var + +(** Corresponds to [CI_PAGES_DOMAIN]. + + The configured domain that hosts GitLab Pages. + + Context: [Pipeline]. Available since GitLab [11.8]. + Available in [all] runners. *) +val ci_pages_domain : If.var + +(** Corresponds to [CI_PAGES_URL]. + + The URL for a GitLab Pages site. Always a subdomain of CI_PAGES_DOMAIN. + + Context: [Pipeline]. Available since GitLab [11.8]. + Available in [all] runners. *) +val ci_pages_url : If.var + +(** Corresponds to [CI_PIPELINE_ID]. + + The instance-level ID of the current pipeline. This ID is unique across all + projects on the GitLab instance. + + Context: [Jobs only]. Available since GitLab [8.10]. + Available in [all] runners. *) +val ci_pipeline_id : If.var + +(** Corresponds to [CI_PIPELINE_IID]. + + The project-level IID (internal ID) of the current pipeline. This ID is + unique only within the current project. + + Context: [Pipeline]. Available since GitLab [11.0]. + Available in [all] runners. *) +val ci_pipeline_iid : If.var + +(** Corresponds to [CI_PIPELINE_SOURCE]. + + How the pipeline was triggered. Can be push, web, schedule, api, external, + chat, webide, merge_request_event, external_pull_request_event, + parent_pipeline, trigger, or pipeline. For a description of each value, see + Common if clauses for rules, which uses this variable to control when jobs + run. + + Context: [Pipeline]. Available since GitLab [10.0]. + Available in [all] runners. *) +val ci_pipeline_source : If.var + +(** Corresponds to [CI_PIPELINE_TRIGGERED]. + + true if the job was triggered. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_pipeline_triggered : If.var + +(** Corresponds to [CI_PIPELINE_URL]. + + The URL for the pipeline details. + + Context: [Jobs only]. Available since GitLab [11.1]. + Available in [0.5] runners. *) +val ci_pipeline_url : If.var + +(** Corresponds to [CI_PIPELINE_CREATED_AT]. + + The UTC datetime when the pipeline was created, in ISO 8601 format. For + example, 2022-01-31T16:47:55Z. + + Context: [Pipeline]. Available since GitLab [13.10]. + Available in [all] runners. *) +val ci_pipeline_created_at : If.var + +(** Corresponds to [CI_PIPELINE_NAME]. + + The pipeline name defined in workflow:name + + Context: [Pipeline]. Available since GitLab [16.3]. + Available in [all] runners. *) +val ci_pipeline_name : If.var + +(** Corresponds to [CI_PROJECT_DIR]. + + The full path the repository is cloned to, and where the job runs from. If + the GitLab Runner builds_dir parameter is set, this variable is set + relative to the value of builds_dir. For more information, see the Advanced + GitLab Runner configuration. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_project_dir : If.var + +(** Corresponds to [CI_PROJECT_ID]. + + The ID of the current project. This ID is unique across all projects on the + GitLab instance. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_project_id : If.var + +(** Corresponds to [CI_PROJECT_NAME]. + + The name of the directory for the project. For example if the project URL + is gitlab.example.com/group-name/project-1, CI_PROJECT_NAME is project-1. + + Context: [Pipeline]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_project_name : If.var + +(** Corresponds to [CI_PROJECT_NAMESPACE]. + + The project namespace (username or group name) of the job. + + Context: [Pipeline]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_project_namespace : If.var + +(** Corresponds to [CI_PROJECT_NAMESPACE_ID]. + + The project namespace ID of the job. + + Context: [Pipeline]. Available since GitLab [15.7]. + Available in [0.5] runners. *) +val ci_project_namespace_id : If.var + +(** Corresponds to [CI_PROJECT_PATH_SLUG]. + + $CI_PROJECT_PATH in lowercase with characters that are not a-z or 0-9 + replaced with - and shortened to 63 bytes. Use in URLs and domain names. + + Context: [Pipeline]. Available since GitLab [9.3]. + Available in [all] runners. *) +val ci_project_path_slug : If.var + +(** Corresponds to [CI_PROJECT_PATH]. + + The project namespace with the project name included. + + Context: [Pipeline]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_project_path : If.var + +(** Corresponds to [CI_PROJECT_REPOSITORY_LANGUAGES]. + + A comma-separated, lowercase list of the languages used in the repository. + For example ruby,javascript,html,css. The maximum number of languages is + limited to 5. An issue proposes to increase the limit. + + Context: [Pipeline]. Available since GitLab [12.3]. + Available in [all] runners. *) +val ci_project_repository_languages : If.var + +(** Corresponds to [CI_PROJECT_ROOT_NAMESPACE]. + + The root project namespace (username or group name) of the job. For + example, if CI_PROJECT_NAMESPACE is + root-group/child-group/grandchild-group, CI_PROJECT_ROOT_NAMESPACE is + root-group. + + Context: [Pipeline]. Available since GitLab [13.2]. + Available in [0.5] runners. *) +val ci_project_root_namespace : If.var + +(** Corresponds to [CI_PROJECT_TITLE]. + + The human-readable project name as displayed in the GitLab web interface. + + Context: [Pipeline]. Available since GitLab [12.4]. + Available in [all] runners. *) +val ci_project_title : If.var + +(** Corresponds to [CI_PROJECT_DESCRIPTION]. + + The project description as displayed in the GitLab web interface. + + Context: [Pipeline]. Available since GitLab [15.1]. + Available in [all] runners. *) +val ci_project_description : If.var + +(** Corresponds to [CI_PROJECT_URL]. + + The HTTP(S) address of the project. + + Context: [Pipeline]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_project_url : If.var + +(** Corresponds to [CI_PROJECT_VISIBILITY]. + + The project visibility. Can be internal, private, or public. + + Context: [Pipeline]. Available since GitLab [10.3]. + Available in [all] runners. *) +val ci_project_visibility : If.var + +(** Corresponds to [CI_PROJECT_CLASSIFICATION_LABEL]. + + The project external authorization classification label. + + Context: [Pipeline]. Available since GitLab [14.2]. + Available in [all] runners. *) +val ci_project_classification_label : If.var + +(** Corresponds to [CI_REGISTRY]. + + Address of the container registry server, formatted as [:]. For + example: registry.gitlab.example.com. Only available if the container + registry is enabled for the GitLab instance. + + Context: [Pipeline]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_registry : If.var + +(** Corresponds to [CI_REGISTRY_IMAGE]. + + Base address for the container registry to push, pull, or tag project’s + images, formatted as [:]/. For example: + registry.gitlab.example.com/my_group/my_project. Image names must follow + the container registry naming convention. Only available if the container + registry is enabled for the project. + + Context: [Pipeline]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_registry_image : If.var + +(** Corresponds to [CI_REGISTRY_PASSWORD]. + + The password to push containers to the GitLab project’s container + registry. Only available if the container registry is enabled for the + project. This password value is the same as the CI_JOB_TOKEN and is valid + only as long as the job is running. Use the CI_DEPLOY_PASSWORD for + long-lived access to the registry + + Context: [Jobs only]. Available since GitLab [9.0]. + Available in [all] runners. *) +val ci_registry_password : If.var + +(** Corresponds to [CI_REGISTRY_USER]. + + The username to push containers to the project’s GitLab container + registry. Only available if the container registry is enabled for the + project. + + Context: [Jobs only]. Available since GitLab [9.0]. + Available in [all] runners. *) +val ci_registry_user : If.var + +(** Corresponds to [CI_REPOSITORY_URL]. + + The full path to Git clone (HTTP) the repository with a CI/CD job token, in + the format + https://gitlab-ci-token:$CI_JOB_TOKEN@gitlab.example.com/my-group/my-project + .git. + + Context: [Jobs only]. Available since GitLab [9.0]. + Available in [all] runners. *) +val ci_repository_url : If.var + +(** Corresponds to [CI_RUNNER_DESCRIPTION]. + + The description of the runner. + + Context: [Jobs only]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_runner_description : If.var + +(** Corresponds to [CI_RUNNER_EXECUTABLE_ARCH]. + + The OS/architecture of the GitLab Runner executable. Might not be the same + as the environment of the executor. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [10.6] runners. *) +val ci_runner_executable_arch : If.var + +(** Corresponds to [CI_RUNNER_ID]. + + The unique ID of the runner being used. + + Context: [Jobs only]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_runner_id : If.var + +(** Corresponds to [CI_RUNNER_REVISION]. + + The revision of the runner running the job. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [10.6] runners. *) +val ci_runner_revision : If.var + +(** Corresponds to [CI_RUNNER_SHORT_TOKEN]. + + The runner’s unique ID, used to authenticate new job requests. In GitLab + 14.9 and later, the token contains a prefix, and the first 17 characters + are used. Prior to 14.9, the first eight characters are used. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [12.3] runners. *) +val ci_runner_short_token : If.var + +(** Corresponds to [CI_RUNNER_TAGS]. + + A comma-separated list of the runner tags. + + Context: [Jobs only]. Available since GitLab [8.10]. + Available in [0.5] runners. *) +val ci_runner_tags : If.var + +(** Corresponds to [CI_RUNNER_VERSION]. + + The version of the GitLab Runner running the job. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [10.6] runners. *) +val ci_runner_version : If.var + +(** Corresponds to [CI_SERVER_HOST]. + + The host of the GitLab instance URL, without protocol or port. For example + gitlab.example.com. + + Context: [Pipeline]. Available since GitLab [12.1]. + Available in [all] runners. *) +val ci_server_host : If.var + +(** Corresponds to [CI_SERVER_NAME]. + + The name of CI/CD server that coordinates jobs. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_server_name : If.var + +(** Corresponds to [CI_SERVER_PORT]. + + The port of the GitLab instance URL, without host or protocol. For example + 8080. + + Context: [Pipeline]. Available since GitLab [12.8]. + Available in [all] runners. *) +val ci_server_port : If.var + +(** Corresponds to [CI_SERVER_PROTOCOL]. + + The protocol of the GitLab instance URL, without host or port. For example + https. + + Context: [Pipeline]. Available since GitLab [12.8]. + Available in [all] runners. *) +val ci_server_protocol : If.var + +(** Corresponds to [CI_SERVER_SHELL_SSH_HOST]. + + The SSH host of the GitLab instance, used for access to Git repositories + via SSH. For example gitlab.com. + + Context: [Pipeline]. Available since GitLab [15.11]. + Available in [all] runners. *) +val ci_server_shell_ssh_host : If.var + +(** Corresponds to [CI_SERVER_SHELL_SSH_PORT]. + + The SSH port of the GitLab instance, used for access to Git repositories + via SSH. For example 22. + + Context: [Pipeline]. Available since GitLab [15.11]. + Available in [all] runners. *) +val ci_server_shell_ssh_port : If.var + +(** Corresponds to [CI_SERVER_REVISION]. + + GitLab revision that schedules jobs. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_server_revision : If.var + +(** Corresponds to [CI_SERVER_TLS_CA_FILE]. + + File containing the TLS CA certificate to verify the GitLab server when + tls-ca-file set in runner settings. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_server_tls_ca_file : If.var + +(** Corresponds to [CI_SERVER_TLS_CERT_FILE]. + + File containing the TLS certificate to verify the GitLab server when + tls-cert-file set in runner settings. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_server_tls_cert_file : If.var + +(** Corresponds to [CI_SERVER_TLS_KEY_FILE]. + + File containing the TLS key to verify the GitLab server when tls-key-file + set in runner settings. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_server_tls_key_file : If.var + +(** Corresponds to [CI_SERVER_URL]. + + The base URL of the GitLab instance, including protocol and port. For + example https://gitlab.example.com:8080. + + Context: [Pipeline]. Available since GitLab [12.7]. + Available in [all] runners. *) +val ci_server_url : If.var + +(** Corresponds to [CI_SERVER_VERSION_MAJOR]. + + The major version of the GitLab instance. For example, if the GitLab + version is 13.6.1, the CI_SERVER_VERSION_MAJOR is 13. + + Context: [Pipeline]. Available since GitLab [11.4]. + Available in [all] runners. *) +val ci_server_version_major : If.var + +(** Corresponds to [CI_SERVER_VERSION_MINOR]. + + The minor version of the GitLab instance. For example, if the GitLab + version is 13.6.1, the CI_SERVER_VERSION_MINOR is 6. + + Context: [Pipeline]. Available since GitLab [11.4]. + Available in [all] runners. *) +val ci_server_version_minor : If.var + +(** Corresponds to [CI_SERVER_VERSION_PATCH]. + + The patch version of the GitLab instance. For example, if the GitLab + version is 13.6.1, the CI_SERVER_VERSION_PATCH is 1. + + Context: [Pipeline]. Available since GitLab [11.4]. + Available in [all] runners. *) +val ci_server_version_patch : If.var + +(** Corresponds to [CI_SERVER_VERSION]. + + The full version of the GitLab instance. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_server_version : If.var + +(** Corresponds to [CI_SERVER]. + + Available for all jobs executed in CI/CD. yes when available. + + Context: [Jobs only]. Available since GitLab [all]. + Available in [all] runners. *) +val ci_server : If.var + +(** Corresponds to [CI_SHARED_ENVIRONMENT]. + + Only available if the job is executed in a shared environment (something + that is persisted across CI/CD invocations, like the shell or ssh + executor). true when available. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [10.1] runners. *) +val ci_shared_environment : If.var + +(** Corresponds to [CI_TEMPLATE_REGISTRY_HOST]. + + The host of the registry used by CI/CD templates. Defaults to + registry.gitlab.com. + + Context: [Pipeline]. Available since GitLab [15.3]. + Available in [all] runners. *) +val ci_template_registry_host : If.var + +(** Corresponds to [GITLAB_CI]. + + Available for all jobs executed in CI/CD. true when available. + + Context: [Pipeline]. Available since GitLab [all]. + Available in [all] runners. *) +val gitlab_ci : If.var + +(** Corresponds to [GITLAB_FEATURES]. + + The comma-separated list of licensed features available for the GitLab + instance and license. + + Context: [Pipeline]. Available since GitLab [10.6]. + Available in [all] runners. *) +val gitlab_features : If.var + +(** Corresponds to [GITLAB_USER_EMAIL]. + + The email of the user who started the pipeline, unless the job is a manual + job. In manual jobs, the value is the email of the user who started the job. + + Context: [Pipeline]. Available since GitLab [8.12]. + Available in [all] runners. *) +val gitlab_user_email : If.var + +(** Corresponds to [GITLAB_USER_ID]. + + The numeric ID of the user who started the pipeline, unless the job is a + manual job. In manual jobs, the value is the ID of the user who started the + job. + + Context: [Pipeline]. Available since GitLab [8.12]. + Available in [all] runners. *) +val gitlab_user_id : If.var + +(** Corresponds to [GITLAB_USER_LOGIN]. + + The username of the user who started the pipeline, unless the job is a + manual job. In manual jobs, the value is the username of the user who + started the job. + + Context: [Pipeline]. Available since GitLab [10.0]. + Available in [all] runners. *) +val gitlab_user_login : If.var + +(** Corresponds to [GITLAB_USER_NAME]. + + The display name of the user who started the pipeline, unless the job is a + manual job. In manual jobs, the value is the name of the user who started + the job. + + Context: [Pipeline]. Available since GitLab [10.0]. + Available in [all] runners. *) +val gitlab_user_name : If.var + +(** Corresponds to [KUBECONFIG]. + + The path to the kubeconfig file with contexts for every shared agent + connection. Only available when a GitLab agent is authorized to access the + project. + + Context: [Pipeline]. Available since GitLab [14.2]. + Available in [all] runners. *) +val kubeconfig : If.var + +(** Corresponds to [TRIGGER_PAYLOAD]. + + The webhook payload. Only available when a pipeline is triggered with a + webhook. + + Context: [Pipeline]. Available since GitLab [13.9]. + Available in [all] runners. *) +val trigger_payload : If.var + +(** {2 Predefined variables for merge request pipelines} *) + +(** Corresponds to [CI_MERGE_REQUEST_APPROVED]. + + Approval status of the merge request. true when merge request approvals is + available and the merge request has been approved. + + Context: merge requests. Available since GitLab [14.1]. + Available in [all] runners. *) +val ci_merge_request_approved : If.var + +(** Corresponds to [CI_MERGE_REQUEST_ASSIGNEES]. + + Comma-separated list of usernames of assignees for the merge request. + + Context: merge requests. Available since GitLab [11.9]. + Available in [all] runners. *) +val ci_merge_request_assignees : If.var + +(** Corresponds to [CI_MERGE_REQUEST_DIFF_BASE_SHA]. + + The base SHA of the merge request diff. + + Context: merge requests. Available since GitLab [13.7]. + Available in [all] runners. *) +val ci_merge_request_diff_base_sha : If.var + +(** Corresponds to [CI_MERGE_REQUEST_DIFF_ID]. + + The version of the merge request diff. + + Context: merge requests. Available since GitLab [13.7]. + Available in [all] runners. *) +val ci_merge_request_diff_id : If.var + +(** Corresponds to [CI_MERGE_REQUEST_EVENT_TYPE]. + + The event type of the merge request. Can be detached, merged_result or + merge_train. + + Context: merge requests. Available since GitLab [12.3]. + Available in [all] runners. *) +val ci_merge_request_event_type : If.var + +(** Corresponds to [CI_MERGE_REQUEST_DESCRIPTION]. + + The description of the merge request. If the description is more than 2700 + characters long, only the first 2700 characters are stored in the variable. + + Context: merge requests. Available since GitLab [16.7]. + Available in [all] runners. *) +val ci_merge_request_description : If.var + +(** Corresponds to [CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED]. + + true if CI_MERGE_REQUEST_DESCRIPTION is truncated down to 2700 characters + because the description of the merge request is too long. + + Context: merge requests. Available since GitLab [16.8]. + Available in [all] runners. *) +val ci_merge_request_description_is_truncated : If.var + +(** Corresponds to [CI_MERGE_REQUEST_ID]. + + The instance-level ID of the merge request. This is a unique ID across all + projects on the GitLab instance. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_id : If.var + +(** Corresponds to [CI_MERGE_REQUEST_IID]. + + The project-level IID (internal ID) of the merge request. This ID is unique + for the current project, and is the number used in the merge request URL, + page title, and other visible locations. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_iid : If.var + +(** Corresponds to [CI_MERGE_REQUEST_LABELS]. + + Comma-separated label names of the merge request. + + Context: merge requests. Available since GitLab [11.9]. + Available in [all] runners. *) +val ci_merge_request_labels : If.var + +(** Corresponds to [CI_MERGE_REQUEST_MILESTONE]. + + The milestone title of the merge request. + + Context: merge requests. Available since GitLab [11.9]. + Available in [all] runners. *) +val ci_merge_request_milestone : If.var + +(** Corresponds to [CI_MERGE_REQUEST_PROJECT_ID]. + + The ID of the project of the merge request. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_project_id : If.var + +(** Corresponds to [CI_MERGE_REQUEST_PROJECT_PATH]. + + The path of the project of the merge request. For example + namespace/awesome-project. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_project_path : If.var + +(** Corresponds to [CI_MERGE_REQUEST_PROJECT_URL]. + + The URL of the project of the merge request. For example, + http://192.168.10.15:3000/namespace/awesome-project. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_project_url : If.var + +(** Corresponds to [CI_MERGE_REQUEST_REF_PATH]. + + The ref path of the merge request. For example, refs/merge-requests/1/head. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_ref_path : If.var + +(** Corresponds to [CI_MERGE_REQUEST_SOURCE_BRANCH_NAME]. + + The source branch name of the merge request. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_source_branch_name : If.var + +(** Corresponds to [CI_MERGE_REQUEST_SOURCE_BRANCH_PROTECTED]. + + true when the source branch of the merge request is protected. + + Context: merge requests. Available since GitLab [16.4]. + Available in [all] runners. *) +val ci_merge_request_source_branch_protected : If.var + +(** Corresponds to [CI_MERGE_REQUEST_SOURCE_BRANCH_SHA]. + + The HEAD SHA of the source branch of the merge request. The variable is + empty in merge request pipelines. The SHA is present only in merged results + pipelines. + + Context: merge requests. Available since GitLab [11.9]. + Available in [all] runners. *) +val ci_merge_request_source_branch_sha : If.var + +(** Corresponds to [CI_MERGE_REQUEST_SOURCE_PROJECT_ID]. + + The ID of the source project of the merge request. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_source_project_id : If.var + +(** Corresponds to [CI_MERGE_REQUEST_SOURCE_PROJECT_PATH]. + + The path of the source project of the merge request. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_source_project_path : If.var + +(** Corresponds to [CI_MERGE_REQUEST_SOURCE_PROJECT_URL]. + + The URL of the source project of the merge request. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_source_project_url : If.var + +(** Corresponds to [CI_MERGE_REQUEST_SQUASH_ON_MERGE]. + + true when the squash on merge option is set. + + Context: merge requests. Available since GitLab [16.4]. + Available in [all] runners. *) +val ci_merge_request_squash_on_merge : If.var + +(** Corresponds to [CI_MERGE_REQUEST_TARGET_BRANCH_NAME]. + + The target branch name of the merge request. + + Context: merge requests. Available since GitLab [11.6]. + Available in [all] runners. *) +val ci_merge_request_target_branch_name : If.var + +(** Corresponds to [CI_MERGE_REQUEST_TARGET_BRANCH_PROTECTED]. + + true when the target branch of the merge request is protected. + + Context: merge requests. Available since GitLab [15.2]. + Available in [all] runners. *) +val ci_merge_request_target_branch_protected : If.var + +(** Corresponds to [CI_MERGE_REQUEST_TARGET_BRANCH_SHA]. + + The HEAD SHA of the target branch of the merge request. The variable is + empty in merge request pipelines. The SHA is present only in merged results + pipelines. + + Context: merge requests. Available since GitLab [11.9]. + Available in [all] runners. *) +val ci_merge_request_target_branch_sha : If.var + +(** Corresponds to [CI_MERGE_REQUEST_TITLE]. + + The title of the merge request. + + Context: merge requests. Available since GitLab [11.9]. + Available in [all] runners. *) +val ci_merge_request_title : If.var diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml new file mode 100644 index 0000000000000000000000000000000000000000..3e50cea0ac064ecc321c397a08ab3a795ae3a125 --- /dev/null +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -0,0 +1,265 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +open Yaml +open Yaml.Util +open Types + +(* Helpers *) + +let opt name f = function Some v -> [(name, f v)] | None -> [] + +let obj_flatten fields = `O (List.concat fields) + +let key name f value : (string * value) list = [(name, f value)] + +let array f values = `A (List.map f values) + +(* Equivalent to [array f values] unless [values] is a singleton [x], + in which case it is encoded as [f x]. + + This is useful for more succint encoding of fields like [cache:] + that can either take an array of values, or a single value. *) +let array1 f values = + match values with [value] -> f value | _ -> array f values + +let strings ss : value = array string ss + +let int i = float (float_of_int i) + +(* Translation elements *) + +let enc_if expr = string @@ If.encode expr + +let enc_variables (vars : variables) : value = + `O (List.map (fun (name, value) -> (name, `String value)) vars) + +let enc_when : when_ -> value = function + | Always -> `String "always" + | Never -> `String "never" + | On_success -> `String "on_success" + | Manual -> `String "manual" + | Delayed _ -> `String "delayed" + +let enc_when_workflow : when_workflow -> value = function + | Always -> `String "always" + | Never -> `String "never" + +let enc_when_artifact : when_artifact -> value = function + | Always -> `String "always" + | On_failure -> `String "on_failure" + | On_success -> `String "on_success" + +let enc_when_job : when_job -> value = function + | Always -> `String "always" + | On_success -> `String "on_success" + | Manual -> `String "manual" + +let enc_workflow_rule : workflow_rule -> value = + fun {changes; if_; variables; when_} -> + obj_flatten + [ + opt "changes" strings changes; + opt "if" enc_if if_; + opt "variables" enc_variables variables; + key "when" enc_when_workflow when_; + ] + +let enc_allow_failure_rule (allow_failure : allow_failure_rule) : value = + match allow_failure with Yes -> `Bool true | No -> `Bool false + +let enc_time_interval interval = + `String + (match interval with + | Seconds 1 -> "1 second" + | Seconds x -> string_of_int x ^ " seconds" + | Minutes 1 -> "1 minute" + | Minutes x -> string_of_int x ^ " minutes" + | Hours 1 -> "1 hour" + | Hours x -> string_of_int x ^ " hours" + | Days 1 -> "1 day" + | Days x -> string_of_int x ^ " days" + | Weeks 1 -> "1 week" + | Weeks x -> string_of_int x ^ " weeks" + | Months 1 -> "1 month" + | Months x -> string_of_int x ^ " months" + | Years 1 -> "1 year" + | Years x -> string_of_int x ^ " years") + +let enc_job_rule : job_rule -> value = + fun {changes; if_; variables; when_; allow_failure} -> + let start_in = + match when_ with Delayed start_in -> Some start_in | _ -> None + in + obj_flatten + [ + opt "changes" strings changes; + opt "if" enc_if if_; + opt "variables" enc_variables variables; + key "when" enc_when when_; + opt "allow_failure" enc_allow_failure_rule allow_failure; + opt "start_in" enc_time_interval start_in; + ] + +let enc_include_rule : include_rule -> value = + fun {changes; if_; when_} -> + obj_flatten + [ + opt "changes" strings changes; + opt "if" enc_if if_; + key "when" enc_when_workflow when_; + ] + +let enc_workflow_rules : workflow_rule list -> value = array enc_workflow_rule + +let enc_job_rules : job_rule list -> value = array enc_job_rule + +let enc_include_rules : include_rule list -> value = array enc_include_rule + +let enc_workflow : workflow -> value = function + | {name; rules} -> + obj_flatten [opt "name" string name; key "rules" enc_workflow_rules rules] + +let enc_stages stages : value = strings stages + +let enc_image (Image image) = string image + +let enc_default ({image; interruptible} : default) : value = + obj_flatten + [opt "image" enc_image image; opt "interruptible" bool interruptible] + +let enc_coverage : coverage_report -> value = + fun {coverage_format; path} -> + obj_flatten + [ + key + "coverage_format" + (function Cobertura -> `String "cobertura") + coverage_format; + key "path" string path; + ] + +let enc_report : reports -> value = + fun {dotenv; junit; coverage_report} -> + obj_flatten + [ + opt "dotenv" string dotenv; + opt "junit" string junit; + opt "coverage_report" enc_coverage coverage_report; + ] + +let enc_artifacts : artifacts -> value = + fun {expire_in; paths; reports; when_; expose_as; name} -> + obj_flatten + [ + opt "name" string name; + opt "expire_in" enc_time_interval expire_in; + key "paths" strings paths; + opt "reports" enc_report reports; + opt "when" enc_when_artifact when_; + opt "expose_as" string expose_as; + ] + +let enc_cache : cache -> value = + fun {key = k; paths} -> + obj_flatten [key "key" string k; key "paths" strings paths] + +let enc_service ({name} : service) : value = `String name + +let enc_services (ss : service list) : value = array enc_service ss + +let enc_allow_failure_job (allow_failure : allow_failure_job) : value = + match allow_failure with + | Yes -> `Bool true + | No -> `Bool false + | With_exit_codes codes -> `O [("exit_codes", array1 int codes)] + +let enc_needs (needs : need list) : value = + (* Use terse encoding unless optional is set to true for at least one need *) + let enc_need = + if List.for_all (fun {job = _; optional} -> optional = false) needs then + fun {job; optional = _} -> `String job + else fun {job; optional} -> + `O + ([("job", `String job)] + @ if optional then [("optional", `Bool true)] else []) + in + array enc_need needs + +let enc_job : job -> value = + fun { + name = _; + after_script; + allow_failure; + artifacts; + before_script; + cache; + image; + interruptible; + needs; + dependencies; + rules; + script; + services; + stage; + variables; + timeout; + tags; + when_; + coverage; + retry; + parallel; + } -> + obj_flatten + [ + opt "image" enc_image image; + opt "stage" string stage; + opt "tags" (array string) tags; + opt "rules" enc_job_rules rules; + opt "needs" enc_needs needs; + opt "dependencies" strings dependencies; + opt "allow_failure" enc_allow_failure_job allow_failure; + opt "timeout" enc_time_interval timeout; + opt "cache" (array1 enc_cache) cache; + opt "interruptible" bool interruptible; + opt "before_script" strings before_script; + opt "script" strings script; + opt "after_script" strings after_script; + opt "services" enc_services services; + opt "variables" enc_variables variables; + opt "artifacts" enc_artifacts artifacts; + opt "when" enc_when_job when_; + opt "coverage" string coverage; + opt "retry" int retry; + opt "parallel" int parallel; + ] + +let enc_includes : include_ list -> value = + fun includes -> + let enc_includes ({local; rules} : include_) = + match rules with + | [] -> `String local + | _ :: _ -> + `O [("local", `String local); ("rules", enc_include_rules rules)] + in + match includes with + | [] -> failwith "empty includes" + | [{local; rules = []}] -> `String local + | inc -> array enc_includes inc + +let config_element : config_element -> string * value = function + | Workflow wf -> ("workflow", enc_workflow wf) + | Stages ss -> ("stages", enc_stages ss) + | Variables vars -> ("variables", enc_variables vars) + | Default def -> ("default", enc_default def) + | Job j -> (j.name, enc_job j) + | Include i -> ("include", enc_includes i) + +let to_yaml (config : config) : value = `O (List.map config_element config) + +let to_file ?header ~filename config = + Base.write_yaml ?header filename (to_yaml config) diff --git a/ci/lib_gitlab_ci/to_yaml.mli b/ci/lib_gitlab_ci/to_yaml.mli new file mode 100644 index 0000000000000000000000000000000000000000..9a1013210cfd19c1380b16f3122b682899d0d2e1 --- /dev/null +++ b/ci/lib_gitlab_ci/to_yaml.mli @@ -0,0 +1,14 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(** The YAML representation of a GitLab CI configuration. *) +val to_yaml : Types.config -> Yaml.value + +(** Writes the YAML representation of a GitLab CI configuration to a file. + + If set, [?header] is prepended to the file. *) +val to_file : ?header:string -> filename:string -> Types.config -> unit diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml new file mode 100644 index 0000000000000000000000000000000000000000..5ef64876be51ee71e7978a63ef70aadcbae52c7f --- /dev/null +++ b/ci/lib_gitlab_ci/types.ml @@ -0,0 +1,148 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(** The AST of GitLab CI configurations. + + For reference, see GitLab's {{:https://docs.gitlab.com/ee/ci/yaml/} CI/CD YAML syntax reference}. *) + +type variables = (string * string) list + +type time_interval = + | Seconds of int + | Minutes of int + | Hours of int + | Days of int + | Weeks of int + | Months of int + | Years of int + +(** Represents values of the [when:] field in job rules. *) +type when_ = Always | Never | On_success | Manual | Delayed of time_interval + +(** Represents values of the [when:] field of jobs. *) +type when_job = Always | On_success | Manual + +(** Represents values of the [when:] field in [workflow:] and [include:] rules. *) +type when_workflow = Always | Never + +(** Represents values of the [job:allow_failure:] field of rules. *) +type allow_failure_job = Yes | No | With_exit_codes of int list + +(** Represents values of the [rules:allow_failure:] field of rules. + + GitLab does not enable allowing a set of exit codes in rules, + as is possible in a job's [allow_failure] field. *) +type allow_failure_rule = Yes | No + +(** Represents a job rule. *) +type job_rule = { + changes : string list option; + if_ : If.t option; + variables : variables option; + when_ : when_; + allow_failure : allow_failure_rule option; +} + +(** Represents a workflow rule. *) +type workflow_rule = { + changes : string list option; + if_ : If.t option; + variables : variables option; + when_ : when_workflow; +} + +(** Represents an include rule. *) +type include_rule = { + changes : string list option; + if_ : If.t option; + when_ : when_workflow; +} + +type coverage_format = Cobertura + +type coverage_report = {coverage_format : coverage_format; path : string} + +type reports = { + dotenv : string option; + junit : string option; + coverage_report : coverage_report option; +} + +type image = Image of string + +type when_artifact = Always | On_success | On_failure + +type artifacts = { + expire_in : time_interval option; + paths : string list; + reports : reports option; + when_ : when_artifact option; + expose_as : string option; + name : string option; +} + +type default = {image : image option; interruptible : bool option} + +type cache = {key : string; paths : string list} + +type service = {name : string} + +type need = {job : string; optional : bool} + +type job = { + name : string; + (** Note that [name] does not translate to the a field in a job, but + instead to the key in the top-level that identifies the job. *) + after_script : string list option; + allow_failure : allow_failure_job option; + artifacts : artifacts option; + before_script : string list option; + cache : cache list option; + image : image option; + interruptible : bool option; + needs : need list option; + dependencies : string list option; + rules : job_rule list option; + script : string list option; + services : service list option; + stage : string option; + variables : variables option; + timeout : time_interval option; + tags : string list option; + when_ : when_job option; + coverage : string option; + (** Note: the job field [coverage] is not to be confused with + {!coverage_report}. + {{:https://docs.gitlab.com/ee/ci/yaml/#coverage}This + coverage field} is used to specify a regular expression that + can be used to capture coverage information from the job's + trace. On the other hand, {!coverage_report} is used to + expose the captured coverage information as a report in a + job's artifacts + ({{:https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscoverage_report}ref}). *) + retry : int option; + parallel : int option; +} + +type workflow = {rules : workflow_rule list; name : string option} + +type include_ = {local : string; rules : include_rule list} + +type config_element = + | Workflow of workflow (** Corresponds to a [workflow:] key. *) + | Stages of string list (** Corresponds to a [stages:] key. *) + | Variables of variables (** Corresponds to a [variables:] key. *) + | Default of default (** Corresponds to a [default:] key. *) + | Job of job (** Corresponds to a job, identified by it's key. *) + | Include of include_ list (** Corresponds to a [include:] key *) + +(** A GitLab CI/CD configuration. + + Note that a configuration can consists of a sequence of + [config_element]s. The same element can occur multiple times, and + their order has semantic significance (for instance, with [include:]). *) +type config = config_element list diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml new file mode 100644 index 0000000000000000000000000000000000000000..8419049fae49aa11e346ae0ea5810fd6bc06e426 --- /dev/null +++ b/ci/lib_gitlab_ci/util.ml @@ -0,0 +1,49 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +open Types + +let default ?image ?interruptible () : default = {image; interruptible} + +let job_rule ?changes ?if_ ?variables ?(when_ : when_ = On_success) + ?allow_failure () : job_rule = + (* Swap the + {{:https://docs.gitlab.com/ee/ci/yaml/#allow_failure}default} of + [allow_failure] for manual rules. This makes the default case + non-blocking, and blocking rules have to be demanded + explicitly. *) + let allow_failure = + match (when_, allow_failure) with + | Manual, None -> Some Yes + | _ -> allow_failure + in + {changes; if_; variables; when_; allow_failure} + +let workflow_rule ?changes ?if_ ?variables ?(when_ : when_workflow = Always) () + : workflow_rule = + {changes; if_; variables; when_} + +let include_rule ?changes ?if_ ?(when_ : when_workflow = Always) () : + include_rule = + {changes; if_; when_} + +let artifacts ?expire_in ?reports ?when_ ?expose_as ?name paths = + (match (reports, paths) with + | Some {dotenv = None; junit = None; coverage_report = None}, [] -> + failwith + "Attempted to register an artifact with no reports or paths -- this \ + doesn't make any sense" + | _ -> ()) ; + {expire_in; paths; reports; when_; expose_as; name} + +let reports ?dotenv ?junit ?coverage_report () = + (match (dotenv, junit, coverage_report) with + | None, None, None -> + failwith + "Attempted to register a empty [reports] -- this doesn't make any sense" + | _ -> ()) ; + {dotenv; junit; coverage_report} diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli new file mode 100644 index 0000000000000000000000000000000000000000..866cc02c12f6ad72e43f53529aeb6cb42ef669df --- /dev/null +++ b/ci/lib_gitlab_ci/util.mli @@ -0,0 +1,85 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(** Smart constructors for values of {!Types} *) + +open Types + +(** Constructs a [default:] configuration element. *) +val default : ?image:image -> ?interruptible:bool -> unit -> default + +(** Constructs a job rule. + + [when_] defaults to [On_success]. + + If [when_] is set to [Manual] then the default [allow_failure] + will be overwritten to allow failure, to avoid blocking jobs. + This typically makes sense unless you truly want a job to block + the execution of all later jobs (i.e. for a trigger-type job). If + you want to make such a job, set [~allow_failure] explicitly: + [job_rule ~when_:Manual ~allow_failure:false ()]. *) +val job_rule : + ?changes:string list -> + ?if_:If.t -> + ?variables:variables -> + ?when_:when_ -> + ?allow_failure:allow_failure_rule -> + unit -> + job_rule + +(** Constructs a workflow rule. + + [when_] defaults to [Always]. *) +val workflow_rule : + ?changes:string list -> + ?if_:If.t -> + ?variables:variables -> + ?when_:when_workflow -> + unit -> + workflow_rule + +(** Constructs an include rule. + + Include rules do not permit [variables] and there is consequently + no such parameter. + + [when_] defaults to [Always]. *) +val include_rule : + ?changes:string list -> + ?if_:If.t -> + ?when_:when_workflow -> + unit -> + include_rule + +(* [artifacts paths] Construct an [artifacts:] clause storing [paths]. + + - [expire_in:] is omitted if [expire_in] is [None]. + - [reports:] is omitted if [reports] is [None]. + - [when:] is omitted if [when_] is [None]. + - [expose_as:] is omitted if [expose_as] is [None]. + + At least one of [paths] or [reports] must be non-empty. *) +val artifacts : + ?expire_in:time_interval -> + ?reports:reports -> + ?when_:when_artifact -> + ?expose_as:string -> + ?name:string -> + string list -> + artifacts + +(* Construct an [reports:] clause for [artifacts:]. + + - [dotenv:] is omitted if [dotenv] is [None]. + - [junit:] is omitted if [junit] is [None]. + - [coverage_report:] is omitted if [coverage_report] is [None]. *) +val reports : + ?dotenv:string -> + ?junit:string -> + ?coverage_report:coverage_report -> + unit -> + reports diff --git a/ci/makefile b/ci/makefile new file mode 100644 index 0000000000000000000000000000000000000000..0a093b60203722e40c987300305fa3ebd0cf4418 --- /dev/null +++ b/ci/makefile @@ -0,0 +1,24 @@ +.PHONY: all +all: + (cd .. && make -C manifest && ${MAKE} -C ci generate) + +.PHONY: generate +generate: + (cd .. && . ./scripts/version.sh && dune exec ci/bin/main.exe) + +.PHONY: docker-generate +docker-generate: + (root=$(shell pwd)/../; cd ../ && . ./scripts/version.sh && docker run -w$${root} -v$${root}:$${root} --entrypoint opam registry.gitlab.com/tezos/opam-repository:runtime-build-dependencies--$${opam_repository_tag} exec -- make -C ci generate) + +# Used in the CI to verify that [.gitlab-ci.yml] is up to date. +.PHONY: check +check: + @git diff --exit-code HEAD -- ../.gitlab-ci.yml || (echo "Cannot check generated [.gitlab-ci.yml] file, some changes are uncommitted"; exit 1) + @$(MAKE) all + @git diff --exit-code HEAD -- ../.gitlab-ci.yml > /dev/null || ( \ + echo "Repository not clean after 'make -C ci'."; \ + echo "You should not edit generated GitLab CI .yml files directly."; \ + echo "Edit ci/bin/main.ml instead."; \ + echo "Then run 'make -C ci' and commit the difference."; \ + exit 1 \ + ) diff --git a/docs/developer/guidelines.rst b/docs/developer/guidelines.rst index 1c4ceaef60fab343e83fc6d3ca6747b5abd27c2a..00f2e0328031efd5ed297fb4d42c77864825f567 100644 --- a/docs/developer/guidelines.rst +++ b/docs/developer/guidelines.rst @@ -443,11 +443,7 @@ To ensure that your OCaml code is well formatted, set up correctly your editor: + no trailing whitespaces + indent correctly (e.g. use lisp-mode for dune files) -Many of these checks can be run with ``make check-python-linting``. - Some of these checks can be executed with a `pre-commit hook `_ -which is installed with -``ln -sr scripts/pre_commit/pre_commit.py .git/hooks/pre-commit`` (see :doc:`pre_commit_hook` for more details). Exposing internals diff --git a/docs/developer/pre_commit_hook.rst b/docs/developer/pre_commit_hook.rst index 78f412bd9f5492f5e339caa38e20a0a06445b035..83475ce30e25faf399cd9b9a4e1a82b0e2e28158 100644 --- a/docs/developer/pre_commit_hook.rst +++ b/docs/developer/pre_commit_hook.rst @@ -1,25 +1,6 @@ Pre-Commit Hook =============== -The `pre-commit hook `__ -is a script located in :src:`scripts/pre_commit/pre_commit.py`, automatically -executed before any Git commit. -It executes modified :doc:`Tezt ` tests automatically. It looks for staged files -(the default) or modified files (if ``--unstaged`` is passed) in -``tezt/tests`` and calls ``tezt`` on those files. This avoids -pushing commits that will break the CI. It is also handy to execute -the relevant subset of tests by calling -``./scripts/pre_commit/pre_commit.py [--unstaged]`` manually. - -Using the pre-commit hook requires an installed Python environment, as -described in :doc:`python_environment`. - -We refer to the header of ``pre_commit.py`` and its ``--help`` flag -for additional instructions. - -Using pre-commit.com -~~~~~~~~~~~~~~~~~~~~ - `Pre-commit `_ is a framework for managing and maintaining multi-language pre-commit Git hooks. Using this framework you can specify a list of hooks you want and pre-commit manages the installation and execution of any hooks before every commit. pre-commit is specifically designed to not require root access. diff --git a/docs/developer/tezt.rst b/docs/developer/tezt.rst index 1ab4cc4627456fde1d9375c1608711079186cba2..2f4d0172c6ba57ffd1473527448b3509f97006e1 100644 --- a/docs/developer/tezt.rst +++ b/docs/developer/tezt.rst @@ -309,18 +309,3 @@ Regression tests are registered with ``Regression.register`` instead of ``Test.register``. Use ``Regression.capture`` or ``Regression.hooks`` to capture output that you want to be stable. Regression tests can be used both in unit tests and integration tests. - -Pre-commit hook ---------------- - -The `pre-commit `_ -hook located in :src:`scripts/pre_commit/pre_commit.py` -executes modified Tezt tests automatically. It looks for staged files -(the default) or modified files (if ``--unstaged`` is passed) in -:src:`tezt/tests` and executes them. This avoids -pushing commits that will break the CI. It is also handy to execute -the relevant subset of tests by calling -``./scripts/pre_commit/pre_commit.py [--unstaged]`` manually. - -We refer to the header of ``pre_commit.py`` and its ``--help`` flag -for additional instructions. diff --git a/docs/developer/tools.rst b/docs/developer/tools.rst index 403a9c693cae42a48befda2c8d15a299702a5b11..d709933b0feef6216773440e05f70331ad9545b7 100644 --- a/docs/developer/tools.rst +++ b/docs/developer/tools.rst @@ -6,7 +6,7 @@ Some of these tools are included in the Octez repository, because of a close cou They provide, for example, support for profiling or for benchmarking different subsystems of Octez. On the other hand, contributing to the development of the Octez repository requires installing some additional infrastructure, which is not needed by regular Octez users. -For instance, developers need Python for building the documentation, and also because :src:`the pre-commit hook ` (which executes some custom checks before committing changes) is currently written in Python. +For instance, developers need Python for building the documentation. The tools for platform developers, as well as the configuration of the additional infrastructure, are documented in the following pages. diff --git a/manifest/main.ml b/manifest/main.ml index b0b92072ba90cc33b11303a7bef34d01fa17bd25..d6dad216daf34193346d7ca03eeaf61becfb0a87 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -8773,6 +8773,8 @@ let exclude filename = | ["opam"; "mandatory-for-make.opam"] -> true (* opam-repository is used by scripts/opam-release.sh *) | "opam-repository" :: _ -> true + (* CI stuff *) + | "ci" :: _ -> true | _ -> false let () = diff --git a/manifest/manifest.ml b/manifest/manifest.ml index 251126482ca2722ab837c6beacf11055f49b6bbb..cfbbe002c655fef651a2eac2a466936c4d08655a 100644 --- a/manifest/manifest.ml +++ b/manifest/manifest.ml @@ -3850,46 +3850,7 @@ let packages_dir, release, remove_extra_files, manifezt = in (!packages_dir, release, !remove_extra_files, manifezt) -let print_opam_job_rules fmt batch_index pipeline_type marge_restriction = - Format.fprintf - fmt - {|@..rules_template__trigger_%s_opam_batch_%d: - rules: - # Run on scheduled builds. - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: delayed - start_in: %d minutes - # Run when there is label on the merge request - - if: '$CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/' - when: delayed - start_in: %d minutes - # Run on merge requests when opam changes are detected. - - if: '%s' - changes: - - "**/dune" - - "**/dune.inc" - - "**/*.dune.inc" - - "**/dune-project" - - "**/dune-workspace" - - "**/*.opam" - - .gitlab/ci/jobs/packaging/opam:prepare.yml - - .gitlab/ci/jobs/packaging/opam_package.yml - - manifest/manifest.ml - - manifest/main.ml - - scripts/opam-prepare-repo.sh - - scripts/version.sh - when: delayed - start_in: %d minutes - - when: never # default -|} - pipeline_type - batch_index - batch_index - batch_index - marge_restriction - batch_index - -let generate_opam_ci opam_release_graph = +let generate_opam_ci_input opam_release_graph = (* We only need to test released packages, since those are the only one that will need to pass the public Opam CI. *) let contain_executables package = @@ -3945,38 +3906,18 @@ let generate_opam_ci opam_release_graph = List.sort by_name l in (* Now [packages] is a list of [batch_index, package_name] - where [batch_index] is 0 for packages that we do not need to test. *) - write ".gitlab/ci/jobs/packaging/opam_package.yml" @@ fun fmt -> - pp_do_not_edit ~comment_start:"#" fmt () ; - (* Output one template per batch. *) - let marge_restriction_exec = - "$CI_PIPELINE_SOURCE == \"merge_request_event\"" - in - let marge_restriction_all = - marge_restriction_exec ^ " && $GITLAB_USER_LOGIN == \"nomadic-margebot\"" - in - for batch_index = 1 to batch_count do - print_opam_job_rules fmt batch_index "exec" marge_restriction_exec ; - print_opam_job_rules fmt batch_index "all" marge_restriction_all - done ; - - (* Output one job per released package. *) + where [batch_index] is 0 for packages that we do not need to test. + Write the set of packages and whether they are executables to [script-inputs], + for consumption by the CI generator. *) + write "script-inputs/ci-opam-package-tests" @@ fun fmt -> let output_job (batch_index, package_name, is_executable) = if batch_index > 0 then Format.fprintf fmt - {|@.opam:%s: - extends: - - .opam_template - - .rules_template__trigger_%s_opam_batch_%d - variables: - package: %s -|} + "%s\t%s\t%d\n" package_name (if is_executable then "exec" else "all") batch_index - package_name - else Format.fprintf fmt "@.# Ignoring unreleased package %s.\n" package_name in List.iter output_job packages @@ -4436,7 +4377,7 @@ let generate ~make_tezt_exe ~tezt_exe_deps ~default_profile ~add_to_meta_package generate_dune_project_files () ; generate_package_json_file () ; let opam_release_graph = compute_opam_release_graph () in - generate_opam_ci opam_release_graph ; + generate_opam_ci_input opam_release_graph ; generate_executable_list "script-inputs/released-executables" Released ; generate_executable_list "script-inputs/experimental-executables" diff --git a/script-inputs/ci-opam-package-tests b/script-inputs/ci-opam-package-tests new file mode 100644 index 0000000000000000000000000000000000000000..c33fb10d601a34a331a2660cd07b2fbc1b9f76a1 --- /dev/null +++ b/script-inputs/ci-opam-package-tests @@ -0,0 +1,90 @@ +bls12-381 all 7 +octez-accuser-Proxford exec 1 +octez-accuser-PtNairob exec 1 +octez-alcotezt all 7 +octez-baker-Proxford exec 1 +octez-baker-PtNairob exec 1 +octez-client exec 1 +octez-codec exec 1 +octez-crawler all 4 +octez-dac-client exec 1 +octez-dac-node exec 1 +octez-distributed-internal all 7 +octez-distributed-lwt-internal all 7 +octez-injector all 2 +octez-internal-libs all 7 +octez-l2-libs all 6 +octez-libs all 7 +octez-node exec 1 +octez-node-config all 4 +octez-proto-libs all 6 +octez-protocol-000-Ps9mPmXa-libs all 2 +octez-protocol-001-PtCJ7pwo-libs all 2 +octez-protocol-002-PsYLVpVv-libs all 2 +octez-protocol-003-PsddFKi3-libs all 3 +octez-protocol-004-Pt24m4xi-libs all 3 +octez-protocol-005-PsBabyM1-libs all 3 +octez-protocol-006-PsCARTHA-libs all 3 +octez-protocol-007-PsDELPH1-libs all 3 +octez-protocol-008-PtEdo2Zk-libs all 3 +octez-protocol-009-PsFLoren-libs all 3 +octez-protocol-010-PtGRANAD-libs all 3 +octez-protocol-011-PtHangz2-libs all 3 +octez-protocol-012-Psithaca-libs all 3 +octez-protocol-013-PtJakart-libs all 3 +octez-protocol-014-PtKathma-libs all 3 +octez-protocol-015-PtLimaPt-libs all 3 +octez-protocol-016-PtMumbai-libs all 2 +octez-protocol-017-PtNairob-libs all 2 +octez-protocol-018-Proxford-libs all 2 +octez-protocol-alpha-libs all 2 +octez-protocol-compiler exec 6 +octez-proxy-server exec 1 +octez-rpc-process all 4 +octez-shell-libs all 6 +octez-signer exec 4 +octez-smart-rollup-node exec 1 +octez-smart-rollup-node-Proxford all 1 +octez-smart-rollup-node-PtNairob all 2 +octez-smart-rollup-node-alpha all 2 +octez-smart-rollup-node-lib all 2 +octez-smart-rollup-wasm-debugger exec 1 +octez-smart-rollup-wasm-debugger-lib all 2 +octez-smart-rollup-wasm-debugger-plugin all 7 +octez-version exec 6 +tezos-benchmark all 7 +tezos-client-demo-counter all 4 +tezos-client-genesis all 4 +tezos-dac-client-lib all 4 +tezos-dac-lib all 4 +tezos-dac-node-lib all 2 +tezos-dal-node-lib all 4 +tezos-dal-node-services all 7 +tezos-openapi all 7 +tezos-protocol-000-Ps9mPmXa all 4 +tezos-protocol-001-PtCJ7pwo all 4 +tezos-protocol-002-PsYLVpVv all 4 +tezos-protocol-003-PsddFKi3 all 4 +tezos-protocol-004-Pt24m4xi all 5 +tezos-protocol-005-PsBABY5H all 5 +tezos-protocol-005-PsBabyM1 all 5 +tezos-protocol-006-PsCARTHA all 5 +tezos-protocol-007-PsDELPH1 all 5 +tezos-protocol-008-PtEdo2Zk all 5 +tezos-protocol-008-PtEdoTez all 5 +tezos-protocol-009-PsFLoren all 5 +tezos-protocol-010-PtGRANAD all 5 +tezos-protocol-011-PtHangz2 all 5 +tezos-protocol-012-Psithaca all 5 +tezos-protocol-013-PtJakart all 5 +tezos-protocol-014-PtKathma all 5 +tezos-protocol-015-PtLimaPt all 6 +tezos-protocol-016-PtMumbai all 6 +tezos-protocol-017-PtNairob all 6 +tezos-protocol-018-Proxford all 6 +tezos-protocol-alpha all 6 +tezos-protocol-demo-counter all 6 +tezos-protocol-demo-noops all 6 +tezos-protocol-genesis all 6 +tezos-proxy-server-config all 7 +tezt-tezos all 7 diff --git a/scripts/README.md b/scripts/README.md index 2f3399a0afe1c41870a6b1cdede74d11cab044eb..33006f21e3e8bad166f3d9b5f9e741e4a72fc371 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -12,7 +12,6 @@ In particular, this includes scripts for: (`update_opam_repo.sh`, `opam-*.sh`) * generate base58 prefixes (`b58_prefix/`) * generate configuration code (in OCaml) to bootstrap a new network (`gen-genesis/`) -* running quick checks as a git hook before commiting (`pre_commit/`) * preparing the environment for migration tests (`prepare_migration_test.ml`) * releasing static Octez binaries (`release/`) * snapshotting protocols, linking them to the build system (`snapshot_alpha.sh`, `link_protocol.sh`, `snapshot_alpha_and_link.sh`) diff --git a/scripts/lint.sh b/scripts/lint.sh index 646c6eae6c6a010c2f94a542c36af53f9e320d99..952afec20c9b9159c1fec65eb98b7dc51e027bf4 100755 --- a/scripts/lint.sh +++ b/scripts/lint.sh @@ -33,6 +33,8 @@ say() { declare -a source_directories +# Make sure that the set of source_directories here are also reflected in +# [changeset_lint_files] in [ci/bin/main.ml]. source_directories=(src docs/doc_gen tezt devtools contrib etherlink) # Set of newline-separated basic regular expressions to exclude from --check-licenses-git-new. license_check_exclude=$( diff --git a/scripts/pre_commit/pre_commit.py b/scripts/pre_commit/pre_commit.py deleted file mode 100755 index 02d998bf4e4b7a5d6c9bc4a4f0680e6b0ff721dc..0000000000000000000000000000000000000000 --- a/scripts/pre_commit/pre_commit.py +++ /dev/null @@ -1,258 +0,0 @@ -#!/usr/bin/env python3 -""" -Script to be executed before committing, to do things fast. -The point is to avoid pushing commits that will trigger silly -CI failures, to save CI runs and have a faster feedback loop (by having -local feedback as opposed to gitlab CI feedback). -To be fast this script is incomplete: it doesn't check everything -that gitlab CI will check; but it is correct: what it checks is required -for gitlab CI to pass. - -For the moment this script: - -* executes tezt tests of staged *.ml files in "tezt/tests" that contain - the string "let run () =". The point is to execute a required subset - of the CI and this is most useful when working on the tezt tests - themselves. -* checks formatting of staged *.ml and *.mli in - a fast manner (because it only checks exactly those files not the entire - worktree). - -The first point is blocking, if the corresponding check fails -the commit is aborted. - -Installation: `ln -sr scripts/pre_commit/pre_commit.py .git/hooks/pre-commit` - -You can pass "--lint-only" to avoid executing tezt tests, -so that the hook is always fast. In this case, install it as follows: - -``` -cd .git/hooks -echo '#!/usr/bin/env bash' > pre-commit -echo './scripts/pre_commit/pre_commit.py --lint-only "$@"' >> pre-commit -chmod +x pre-commit -``` - -You can call the hook manually on modified but not yet staged files -to make sure an upcoming call to `git commit` will succeed: -`./scripts/pre_commit/pre_commit.py --unstaged [--lint-only]?` -""" - -import os -import re -import subprocess -import sys -from typing import List, Tuple - -_LINT_ONLY = "--lint-only" -_UNSTAGED = "--unstaged" - - -def _git_diff(staged_or_modified: bool, extension: str) -> List[str]: - """ - Args: - extension: the extension of files considered, such as "py" or "ml" - staged_or_modified (bool) Whether to consider staged files (True) - or modified ones (False) - Returns: A list of relevant versioned files that are staged or modified - """ - git_cmd = ["git", "diff"] - if staged_or_modified: - git_cmd += ["--cached"] - git_cmd += ["--name-only", "--diff-filter=ACMR", "*." + extension] - git_diff_result = subprocess.run( - git_cmd, stdout=subprocess.PIPE, universal_newlines=True, check=True - ) - # The comprehension filters empty lines - return [x for x in git_diff_result.stdout.split("\n") if x] - - -def _git_diff_many( - staged_or_modified: bool, extensions: List[str] -) -> List[str]: - """ - Args: - extensions: the extensions to consider such as ["ml", "mli"] - staged_or_modified (bool) Whether to consider staged files (True) - or modified ones (False) - Returns: A list of relevant versioned files that are staged or modified - """ - result = [] - for extension in extensions: - result.extend(_git_diff(staged_or_modified, extension)) - return result - - -def _ocamlformat_check(files: List[str]) -> bool: - """ - Args: - files (list(str)): The files on which to call ocamlformat - staged_or_modified (bool) Whether staged files are considered (True) - or modified ones (False) - Returns: Whether all files are correctly formatted (True) or not (False). - """ - result = True - - if not files: - # Nothing to do - return result - - formatting_fails: List[str] = [] - unknown_fails: List[str] = [] - - for file_ in files: - cmd = ["ocamlformat", "--check", file_] - print(" ".join(cmd)) - res = subprocess.run( - cmd, check=False, text=True, stderr=subprocess.PIPE - ) - if res.returncode > 0: - # If the file is solely badly formatted (as opposed to not - # being parseable), ocamlformat will write nothing to stderr. - # We use that to distinguish the two cases. - (unknown_fails if res.stderr else formatting_fails).append(file_) - result = False - - if unknown_fails: - plural = "" if len(unknown_fails) == 1 else "s" - print( - f"Formatting of the following file{plural}" - " could not be verified:", - file=sys.stderr, - ) - for file_ in sorted(unknown_fails): - print(f" {file_}", file=sys.stderr) - print( - "This likely means the concerned files" - " are syntactically invalid. Please fix them.", - file=sys.stderr, - ) - - if formatting_fails: - plural = "" if len(formatting_fails) == 1 else "s" - print(f"Badly formatted file{plural}:", file=sys.stderr) - for file_ in sorted(formatting_fails): - print(f" {file_}", file=sys.stderr) - formatting_fails = [ - f'"{f}"' if " " in f else f for f in formatting_fails - ] - fix = "ocamlformat --inplace " + " ".join(formatting_fails) - print(f"To fix that, run from the repo's root: {fix}", file=sys.stderr) - - return result - - -def _call_tezt(files: List[str], staged_or_modified: bool) -> int: - """ - Args: - files (list(str)): All {ml,mli} files to consider. Filtering - for tezt has NOT been done yet. - staged_or_modified (bool) Whether staged files are considered (True) - or modified ones (False) - Returns: - The maximum of return codes - """ - tezt_test_dir = "tezt/tests" - if not os.path.isdir(tezt_test_dir): - print( - f"Unexpectedly, {tezt_test_dir} directory cannot be found", - file=sys.stderr, - ) - return 1 - - tezt_files = [] - for file_ in files: - if not file_.startswith(tezt_test_dir): - continue - if not file_.endswith(".ml"): - continue - with open(file_, mode="r", encoding="utf-8") as handle: - pattern = re.escape("let register () =") - match = re.search(pattern, handle.read()) - if match is None: - continue - # remove tezt/tests/ - to_add = file_[len(tezt_test_dir) + len(os.sep):] - tezt_files.append(to_add) - - adjective = "staged" if staged_or_modified else "modified" - - if not tezt_files: - print(f"No {adjective} file relevant to tezt found") - return 0 - - return_code = 0 - - for tezt_file in tezt_files: - cmd = [ - "dune", "exec", "tezt/tests/main.exe", - "--", "--file", - tezt_file - ] - print("> " + " ".join(cmd)) - cmd_result = subprocess.run(cmd, check=False) - return_code = max(return_code, cmd_result.returncode) - - return return_code - - -# I don't use argsparse to avoid adding a non-system dependency -def _parse_arguments() -> Tuple[bool, bool]: - """ - Returns: A tuple with three Booleans: - 1/ Whether staged (True) or modified (False) files should be considered - 2/ Whether --lint-only was passed - 3/ Whether the hook should test itself instead of doing its normal - operations - """ - staged = _UNSTAGED not in sys.argv - lint_only = _LINT_ONLY in sys.argv - return (staged, lint_only) - - -def _print_help(): - """Prints the help and exits if "--help" or "-h" was given""" - if "-h" not in sys.argv and "--help" not in sys.argv: - return - print( - "Usage: ./scripts/pre_commit/pre_commit.py [-h|--help]" - f" [{_LINT_ONLY}]" - f" [{_UNSTAGED}]" - ) - print( - f"""This hooks does the following: -1/ Executes tezt tests of staged *.ml files (disable by passing {_LINT_ONLY}) -2/ Formats staged *{{ml,mli}} files - (and update the commit if possible with formatting changes) -Pass {_UNSTAGED} to do all this on unstaged files""" - ) - sys.exit(0) - - -def main() -> int: - """The main""" - _print_help() - - staged, lint_only = _parse_arguments() - adjective = "staged" if staged else "modified" - - return_code = 0 - ml_extensions = ["ml", "mli"] - relevant_ocaml_files = _git_diff_many(staged, ml_extensions) - if relevant_ocaml_files: - ocamlformat_res = _ocamlformat_check(relevant_ocaml_files) - return_code = max(return_code, 0 if ocamlformat_res else 1) - if lint_only: - print(f"{_LINT_ONLY} passed: not calling tezt") - else: - tezt_rc = _call_tezt(relevant_ocaml_files, staged) - return_code = max(return_code, tezt_rc) - else: - extensions = "{" + ",".join(ml_extensions) + "}" - print(f"No {adjective} *.{extensions} relevant file found") - - return return_code - - -if __name__ == "__main__": - sys.exit(main()) diff --git a/scripts/version.sh b/scripts/version.sh index 8ac0c939f179b289a9fb9143fac772b06e51f8c1..fb585d1528bc01330358a04ad9d2deb84e637d74 100755 --- a/scripts/version.sh +++ b/scripts/version.sh @@ -21,7 +21,9 @@ export recommended_node_version=18.18.2 # The Alpine minor version used to build the opam-repository images # and used to run the `trigger` job in the CI. This value SHOULD # correspond to the Alpine minor version given by the `trigger` job's -# `image:`. +# `image:`, which is ensured by running `make -C ci`. This value +# SHOULD also correspond to the Alpine minor version used to build the +# opam-repository images. This is checked in the job [sanity_ci]. export alpine_version='3.18' ## full_opam_repository is a commit hash of the public OPAM repository, i.e. @@ -29,7 +31,8 @@ export alpine_version='3.18' export full_opam_repository_tag=2314da5646931ec7f643bdc9aaa39177971ac857 ## opam_repository is an additional, tezos-specific opam repository. -## This value MUST be the same as `build_deps_image_version` in `.gitlab-ci.yml` +## This value MUST be the same as `build_deps_image_version` in `.gitlab-ci.yml`. +## To update `.gitlab-ci.yml`, run `make -C ci`. export opam_repository_url=https://gitlab.com/tezos/opam-repository export opam_repository_tag="${OPAM_REPOSITORY_TAG:-5d7889150ef8283a4610bfc85d5b66a159d72d2e}" export opam_repository_git="$opam_repository_url.git"