From e80655993a315f54ab36e31788a1996f16a57331 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 21 Nov 2023 17:18:33 +0100 Subject: [PATCH 001/134] Add initial version of [ci] --- ci/README.md | 21 ++ ci/bin/dune | 4 + ci/bin/main.ml | 280 +++++++++++++++++++++++++++ ci/bin/rules.ml | 44 +++++ ci/bin/rules.mli | 45 +++++ ci/bin/tezos_ci.ml | 133 +++++++++++++ ci/bin/tezos_ci.mli | 109 +++++++++++ ci/lib_gitlab_ci/base.ml | 62 ++++++ ci/lib_gitlab_ci/dune | 3 + ci/lib_gitlab_ci/if.ml | 83 ++++++++ ci/lib_gitlab_ci/if.mli | 47 +++++ ci/lib_gitlab_ci/predefined_vars.ml | 24 +++ ci/lib_gitlab_ci/predefined_vars.mli | 36 ++++ ci/lib_gitlab_ci/to_yaml.ml | 167 ++++++++++++++++ ci/lib_gitlab_ci/to_yaml.mli | 14 ++ ci/lib_gitlab_ci/types.ml | 100 ++++++++++ ci/lib_gitlab_ci/util.ml | 20 ++ ci/lib_gitlab_ci/util.mli | 48 +++++ ci/makefile | 16 ++ scripts/version.sh | 3 +- 20 files changed, 1258 insertions(+), 1 deletion(-) create mode 100644 ci/README.md create mode 100644 ci/bin/dune create mode 100644 ci/bin/main.ml create mode 100644 ci/bin/rules.ml create mode 100644 ci/bin/rules.mli create mode 100644 ci/bin/tezos_ci.ml create mode 100644 ci/bin/tezos_ci.mli create mode 100644 ci/lib_gitlab_ci/base.ml create mode 100644 ci/lib_gitlab_ci/dune create mode 100644 ci/lib_gitlab_ci/if.ml create mode 100644 ci/lib_gitlab_ci/if.mli create mode 100644 ci/lib_gitlab_ci/predefined_vars.ml create mode 100644 ci/lib_gitlab_ci/predefined_vars.mli create mode 100644 ci/lib_gitlab_ci/to_yaml.ml create mode 100644 ci/lib_gitlab_ci/to_yaml.mli create mode 100644 ci/lib_gitlab_ci/types.ml create mode 100644 ci/lib_gitlab_ci/util.ml create mode 100644 ci/lib_gitlab_ci/util.mli create mode 100644 ci/makefile diff --git a/ci/README.md b/ci/README.md new file mode 100644 index 000000000000..63d4146e62bc --- /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 000000000000..de8f89d5bde7 --- /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 000000000000..1489621ae1f8 --- /dev/null +++ b/ci/bin/main.ml @@ -0,0 +1,280 @@ +(*****************************************************************************) +(* *) +(* 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 + +let generation_header = + {|# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +|} + +(* 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) +end + +(* 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 + (); + job_rule ~when_:Always (); + ] + ~allow_failure:false + ~timeout:(Minutes 10) + ~name:"trigger" + [ + "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"; + ] + +(* 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 + (* Matches either release tags or beta release tags, e.g. [v1.2.3], + [v1.2.3-rc4] or [v1.2.3-beta5]. *) + let any_release_tag_re = "/^v\\d+\\.\\d+(?:\\-(rc|beta)\\d*)?$/" in + let open Rules in + let open Pipeline in + register "before_merging" If.(on_tezos_namespace && merge_request) ; + register + "latest_release" + If.(on_tezos_namespace && push && on_branch "latest-release") ; + register + "latest_release_test" + If.(not_on_tezos_namespace && push && on_branch "latest-release-test") ; + register "master_branch" If.(on_tezos_namespace && push && on_branch "master") ; + register + "release_tag" + If.(on_tezos_namespace && push && has_tag_match release_tag_re) ; + register + "beta_release_tag" + If.(on_tezos_namespace && push && has_tag_match beta_release_tag_re) ; + register + "release_tag_test" + If.(not_on_tezos_namespace && push && has_tag_match any_release_tag_re) ; + register + "non_release_tag" + If.(on_tezos_namespace && push && has_tag_not_match any_release_tag_re) ; + register + "non_release_tag_test" + If.(not_on_tezos_namespace && push && has_tag_not_match any_release_tag_re) ; + register + "schedule_extended_test" + If.(scheduled && var "TZ_SCHEDULE_KIND" == str "EXTENDED_TESTS") + +(* 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:generation_header filename config ; + {local = filename; rules = []} + in + let includes = + image_templates_include + :: {local = ".gitlab/ci/jobs/shared/templates.yml"; rules = []} + :: includes + in + [ + 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:generation_header ~filename config diff --git a/ci/bin/rules.ml b/ci/bin/rules.ml new file mode 100644 index 000000000000..95dc237d5d3c --- /dev/null +++ b/ci/bin/rules.ml @@ -0,0 +1,44 @@ +(*****************************************************************************) +(* *) +(* 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 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 has_tag_not_match tag = + Predefined_vars.(ci_commit_tag != null && ci_commit_tag =~! tag) + +let assigned_to_marge_bot = + Predefined_vars.ci_merge_request_assignees =~! "/nomadic-margebot/" diff --git a/ci/bin/rules.mli b/ci/bin/rules.mli new file mode 100644 index 000000000000..871ffae273da --- /dev/null +++ b/ci/bin/rules.mli @@ -0,0 +1,45 @@ +(*****************************************************************************) +(* *) +(* 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 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] is defined and matches the given regexp. *) +val has_tag_match : string -> If.t + +(** A rule that is true if [CI_COMMIT_TAG] is defined but does not matches the given regexp. *) +val has_tag_not_match : string -> If.t + +(** A rule that is true if [CI_MERGE_REQUEST_ASSIGNEES] equals [nomadic-margebot]. *) +val assigned_to_marge_bot : If.t diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml new file mode 100644 index 000000000000..62f4e4aee2b8 --- /dev/null +++ b/ci/bin/tezos_ci.ml @@ -0,0 +1,133 @@ +open Gitlab_ci.Util + +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 (sf "[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; + } + + let pipelines : t list ref = ref [] + + let register ?variables name if_ = + let pipeline : t = {variables; if_; name} in + if List.exists (fun {name = name'; _} -> name' = name) !pipelines then + failwith + (sf "[Pipeline.register] attempted to register pipeline %S twice" name) + else pipelines := pipeline :: !pipelines + + let all () = List.rev !pipelines + + let workflow_includes () : + Gitlab_ci.Types.workflow * Gitlab_ci.Types.include_ list = + let workflow_rule_of_pipeline = function + | {name; if_; variables} -> + (* 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 = _} -> + (* 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 = sf ".gitlab/ci/pipelines/%s.yml" 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 (sf "[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 + | Artifacts of Gitlab_ci.Types.job + +let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script + ?cache ?image ?interruptible ?(dependencies = []) ?services ?variables + ?rules ?timeout ?(tags = []) ~stage ~name script : Gitlab_ci.Types.job = + let tags = + Some ((match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64") :: tags) + in + let stage = Some (Stage.name stage) in + let script = Some script in + let needs, dependencies = + let to_opt = function [] -> None | xs -> Some xs in + let rec loop (needs, dependencies) = function + | Job j :: deps -> loop (j.name :: needs, dependencies) deps + | Artifacts j :: deps -> + loop (j.name :: needs, j.name :: 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. *) + (to_opt @@ List.rev needs, Some (List.rev dependencies)) + in + loop ([], []) dependencies + in + { + name; + after_script; + allow_failure; + artifacts; + before_script; + cache; + image; + interruptible; + needs; + dependencies; + rules; + script; + services; + stage; + variables; + timeout; + tags; + } diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli new file mode 100644 index 000000000000..63238677655d --- /dev/null +++ b/ci/bin/tezos_ci.mli @@ -0,0 +1,109 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(** 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. The pipeline is expected to be + defined in [.gitlab/ci/pipelines/NAME.yml] which will be included + from the top-level [.gitlab-ci.yml]. + + If [variables] is set, then these variables will be added to the + [workflow:] clause for this pipeline in the top-level [.gitlab-ci.yml]. *) + val register : + ?variables:Gitlab_ci.Types.variables -> 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 +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 + +(** Job dependencies. + + - A job that depends on [Job j] will not start until [j] finishes. + + - 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 + | Artifacts of Gitlab_ci.Types.job + +(** 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]. *) +val job : + ?arch:arch -> + ?after_script:string list -> + ?allow_failure:bool -> + ?artifacts:Gitlab_ci.Types.artifacts -> + ?before_script:string list -> + ?cache:Gitlab_ci.Types.cache -> + ?image:Image.t -> + ?interruptible:bool -> + ?dependencies:dependency list -> + ?services:Gitlab_ci.Types.service list -> + ?variables:Gitlab_ci.Types.variables -> + ?rules:Gitlab_ci.Types.when_ Gitlab_ci.Types.rule list -> + ?timeout:Gitlab_ci.Types.timeout -> + ?tags:string list -> + stage:Stage.t -> + name:string -> + string list -> + Gitlab_ci.Types.job diff --git a/ci/lib_gitlab_ci/base.ml b/ci/lib_gitlab_ci/base.ml new file mode 100644 index 000000000000..0fd014dee89b --- /dev/null +++ b/ci/lib_gitlab_ci/base.ml @@ -0,0 +1,62 @@ +(*****************************************************************************) +(* *) +(* 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 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 diff --git a/ci/lib_gitlab_ci/dune b/ci/lib_gitlab_ci/dune new file mode 100644 index 000000000000..d6788e41b5fb --- /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 000000000000..a07503f8f598 --- /dev/null +++ b/ci/lib_gitlab_ci/if.ml @@ -0,0 +1,83 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +open Base + +type t = + | Var of string + | And of (t * t) + | Or of (t * t) + | Eq of (t * t) + | Match of (t * string) + | Unmatch of (t * string) + | Neq of (t * t) + | Str of string + | Null + +let rec encode expr = + let prio = function + | Null -> 0 + | Var _ -> 0 + | Str _ -> 0 + | 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 + match expr with + | Null -> "null" + | Var n -> "$" ^ n + | 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" (paren_opt a) (paren_opt b) + | Neq (a, b) -> sf "%s != %s" (paren_opt a) (paren_opt b) + | Match (a, b) -> sf "%s =~ %s" (paren_opt a) b + | Unmatch (a, b) -> sf "%s !~ %s" (paren_opt a) b + | Str s -> sf {|"%s"|} s + +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 diff --git a/ci/lib_gitlab_ci/if.mli b/ci/lib_gitlab_ci/if.mli new file mode 100644 index 000000000000..e6b789af3256 --- /dev/null +++ b/ci/lib_gitlab_ci/if.mli @@ -0,0 +1,47 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +(** Type of a GitLab [if:] expression, as used in [rules:] clauses. *) +type t + +(** The string representation of an [if:] expression. *) +val encode : t -> string + +(** [var name] is the [if:] expression [$name]. *) +val var : string -> t + +(** [str s] is the [if:] expression ["s"]. *) +val str : string -> t + +(** The [if:]-expression [null]. *) +val null : t + +(** Equality in [if:]-expressions. + + Example: [var "foo" == str "bar"] translates to [$foo == "bar"]. *) +val ( == ) : t -> t -> t + +(** Inequality in [if:]-expressions. + + Example: [var "foo" != str "bar"] translates to [$foo != "bar"]. *) +val ( != ) : t -> t -> 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 ( =~ ) : t -> string -> t + +(** Negated pattern match on [if:]-expressions. + + Example: [var "foo" =~! str "/bar/"] translates to [$foo !~ "/bar/"]. *) +val ( =~! ) : t -> string -> t diff --git a/ci/lib_gitlab_ci/predefined_vars.ml b/ci/lib_gitlab_ci/predefined_vars.ml new file mode 100644 index 000000000000..0b8b89e65bbe --- /dev/null +++ b/ci/lib_gitlab_ci/predefined_vars.ml @@ -0,0 +1,24 @@ +(*****************************************************************************) +(* *) +(* SPDX-License-Identifier: MIT *) +(* Copyright (c) 2023 Nomadic Labs. *) +(* *) +(*****************************************************************************) + +open If + +let ci_commit_branch = var "CI_COMMIT_BRANCH" + +let ci_commit_tag = var "CI_COMMIT_TAG" + +let ci_default_branch = var "CI_DEFAULT_BRANCH" + +let ci_open_merge_requests = var "CI_OPEN_MERGE_REQUESTS" + +let ci_merge_request_id = var "CI_MERGE_REQUEST_ID" + +let ci_pipeline_source = var "CI_PIPELINE_SOURCE" + +let ci_project_namespace = var "CI_PROJECT_NAMESPACE" + +let ci_merge_request_assignees = var "CI_MERGE_REQUEST_ASSIGNEES" diff --git a/ci/lib_gitlab_ci/predefined_vars.mli b/ci/lib_gitlab_ci/predefined_vars.mli new file mode 100644 index 000000000000..075dd1214e96 --- /dev/null +++ b/ci/lib_gitlab_ci/predefined_vars.mli @@ -0,0 +1,36 @@ +(*****************************************************************************) +(* *) +(* 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}. *) + +(** Corresponds to [CI_COMMIT_BRANCH].*) +val ci_commit_branch : If.t + +(** Corresponds to [CI_COMMIT_TAG].*) +val ci_commit_tag : If.t + +(** Corresponds to [CI_DEFAULT_BRANCH].*) +val ci_default_branch : If.t + +(** Corresponds to [CI_OPEN_MERGE_REQUESTS].*) +val ci_open_merge_requests : If.t + +(** Corresponds to [CI_MERGE_REQUEST_ID].*) +val ci_merge_request_id : If.t + +(** Corresponds to [CI_PIPELINE_SOURCE].*) +val ci_pipeline_source : If.t + +(** Corresponds to [CI_PROJECT_NAMESPACE].*) +val ci_project_namespace : If.t + +(** Corresponds to [CI_MERGE_REQUEST_ASSIGNEES].*) +val ci_merge_request_assignees : If.t diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml new file mode 100644 index 000000000000..71ce4c0b4277 --- /dev/null +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -0,0 +1,167 @@ +(*****************************************************************************) +(* *) +(* 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 value = `A (List.map f value) + +let strings ss : value = array string ss + +(* 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_rule_aux : ('a -> value) -> 'a rule -> value = + fun enc_when {changes; if_; variables = vars; when_} -> + obj_flatten + [ + opt "changes" strings changes; + opt "if" enc_if if_; + opt "variables" enc_variables vars; + key "when" enc_when when_; + ] + +let enc_when : when_ -> value = function + | Always -> `String "always" + | Never -> `String "never" + | On_success -> `String "on_success" + | Manual -> `String "manual" + +let enc_when_workflow : when_workflow -> value = function + | Always -> `String "always" + | Never -> `String "never" + +let enc_rules rules = array (enc_rule_aux enc_when) rules + +let enc_workflow_rules : when_workflow rule list -> value = + array (enc_rule_aux enc_when_workflow) + +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_report : reports -> value = + fun {dotenv; junit} -> + obj_flatten [opt "dotenv" string dotenv; opt "junit" string junit] + +let enc_artifacts : artifacts -> value = + fun {expire_in; paths; reports; when_; expose_as} -> + obj_flatten + [ + key "expire_in" string expire_in; + key "paths" strings paths; + key "reports" enc_report reports; + key "when" string 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 = + obj_flatten [key "name" string name] + +let enc_services (ss : service list) : value = array enc_service ss + +let enc_interval interval = + `String + (match interval with + | Seconds x -> string_of_int x ^ " seconds" + | Minutes x -> string_of_int x ^ " minutes" + | Hours x -> string_of_int x ^ " hours" + | Days x -> string_of_int x ^ " days" + | Weeks x -> string_of_int x ^ " weeks" + | Months x -> string_of_int x ^ " months" + | Years x -> string_of_int x ^ " years") + +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; + } -> + obj_flatten + [ + opt "image" enc_image image; + opt "stage" string stage; + opt "tags" (array string) tags; + opt "rules" enc_rules rules; + opt "needs" strings needs; + opt "dependencies" strings dependencies; + opt "allow_failure" bool allow_failure; + opt "timeout" enc_interval timeout; + opt "cache" enc_cache cache; + opt "interruptible" bool interruptible; + opt "script" strings script; + opt "after_script" strings after_script; + opt "before_script" strings before_script; + opt "services" enc_services services; + opt "variables" enc_variables variables; + opt "artifacts" enc_artifacts artifacts; + ] + +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_workflow_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 000000000000..1fc04b62bc34 --- /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 reprenstation of a GitLab CI configuration. *) +val to_yaml : Types.config -> Yaml.value + +(** Writes the YAML reprenstation 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 000000000000..1255cd60f530 --- /dev/null +++ b/ci/lib_gitlab_ci/types.ml @@ -0,0 +1,100 @@ +(*****************************************************************************) +(* *) +(* 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 + +(** Represents values to the [when:] field in job rules. *) +type when_ = Always | Never | On_success | Manual + +(** Represents values to the [when:] field in [workflow:] and [include:] rules. *) +type when_workflow = Always | Never + +(** ['when_type rule] Represents a rule with the [when:]-type ['when_type]. + + - Rules that appears in the definition of jobs instantiate + ['when_type] to [when_]. + - Rules that appears in the definition of workflows and includes + ['when_type] to [when_workflow]. + - Additionally, for when in includes, [variables] must be [None]. *) +type 'when_type rule = { + changes : string list option; + if_ : If.t option; + variables : variables option; + when_ : 'when_type; +} + +type reports = {dotenv : string option; junit : string option} + +type image = Image of string + +type artifacts = { + expire_in : string; + paths : string list; + reports : reports; + when_ : string; + expose_as : string option; +} + +type default = {image : image option; interruptible : bool option} + +type cache = {key : string; paths : string list} + +type timeout = + | Seconds of int + | Minutes of int + | Hours of int + | Days of int + | Weeks of int + | Months of int + | Years of int + +type service = {name : string} + +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 : bool option; + artifacts : artifacts option; + before_script : string list option; + cache : cache option; + image : image option; + interruptible : bool option; + needs : string list option; + dependencies : string list option; + rules : when_ rule list option; + script : string list option; + services : service list option; + stage : string option; + variables : variables option; + timeout : timeout option; + tags : string list option; +} + +type workflow = {rules : when_workflow rule list; name : string option} + +type include_ = {local : string; rules : when_workflow 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 000000000000..f3aa5fc6ed9c --- /dev/null +++ b/ci/lib_gitlab_ci/util.ml @@ -0,0 +1,20 @@ +(*****************************************************************************) +(* *) +(* 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_ = On_success) () : when_ rule = + {changes; if_; variables; when_} + +let workflow_rule ?changes ?if_ ?variables ?(when_ = Always) () : + when_workflow rule = + {changes; if_; variables; when_} + +let include_rule ?changes ?if_ ?(when_ = Always) () : when_workflow rule = + {changes; if_; variables = None; when_} diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli new file mode 100644 index 000000000000..380ce7247e29 --- /dev/null +++ b/ci/lib_gitlab_ci/util.mli @@ -0,0 +1,48 @@ +(*****************************************************************************) +(* *) +(* 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]. *) +val job_rule : + ?changes:string list -> + ?if_:If.t -> + ?variables:variables -> + ?when_:when_ -> + unit -> + when_ rule + +(** Constructs a workflow rule. + + [when_] defaults to [Always]. *) +val workflow_rule : + ?changes:string list -> + ?if_:If.t -> + ?variables:variables -> + ?when_:when_workflow -> + unit -> + when_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 -> + when_workflow rule diff --git a/ci/makefile b/ci/makefile new file mode 100644 index 000000000000..b8675789b46a --- /dev/null +++ b/ci/makefile @@ -0,0 +1,16 @@ +.PHONY: all +all: + (cd .. && . ./scripts/version.sh && dune exec ci/bin/main.exe) + +# 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/scripts/version.sh b/scripts/version.sh index 8ac0c939f179..15d8f0c628f1 100755 --- a/scripts/version.sh +++ b/scripts/version.sh @@ -29,7 +29,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" -- GitLab From b9967bf7690bb3d00818f21637ad40fc3063d617 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 12:59:38 +0100 Subject: [PATCH 002/134] CI: regenerate [.gitlab-ci.yml] --- .gitlab-ci.yml | 327 +++++++++++------------------- .gitlab/ci/jobs/shared/images.yml | 19 ++ 2 files changed, 143 insertions(+), 203 deletions(-) create mode 100644 .gitlab/ci/jobs/shared/images.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 55dd8278b92e..bf3213d02587 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,226 +1,147 @@ ---- +# 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|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|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|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 - 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!' + - ./scripts/ci/check_alpine_version.sh 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|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|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|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/jobs/shared/images.yml b/.gitlab/ci/jobs/shared/images.yml new file mode 100644 index 000000000000..d4aba52668a5 --- /dev/null +++ b/.gitlab/ci/jobs/shared/images.yml @@ -0,0 +1,19 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +.image_template__alpine: + image: alpine:3.18 +.image_template__docker: + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 +.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} -- GitLab From 43732ae6f0700525cb4c39878eea5eb1a4ca6ca3 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 21 Nov 2023 17:18:55 +0100 Subject: [PATCH 003/134] CI: check that [ci] has run in [sanity_ci] We now require the [.image_template__runtime_build_dependencies] image to have both the OCaml compiler and the [yaml] dependency. --- .gitlab/ci/jobs/sanity/sanity_ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/sanity/sanity_ci.yml b/.gitlab/ci/jobs/sanity/sanity_ci.yml index 3e95741b4351..1953d5c94cd1 100644 --- a/.gitlab/ci/jobs/sanity/sanity_ci.yml +++ b/.gitlab/ci/jobs/sanity/sanity_ci.yml @@ -1,7 +1,7 @@ sanity_ci: extends: - .default_settings_template - - .image_template__runtime_prebuild_dependencies + - .image_template__runtime_build_dependencies stage: sanity before_script: - ./scripts/ci/take_ownership.sh @@ -12,3 +12,5 @@ sanity_ci: # 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 -- GitLab From 31ad3a12bff53b7c22359dc7ca1b500cc2f97d76 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 21 Nov 2023 17:54:11 +0100 Subject: [PATCH 004/134] Manifest: ignore [ci] --- manifest/main.ml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/manifest/main.ml b/manifest/main.ml index b0b92072ba90..d6dad216daf3 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 () = -- GitLab From e48172b0b96a65caf66f559b0447e33896a2d89d Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 8 Dec 2023 10:31:52 +0100 Subject: [PATCH 005/134] CI: simplify [trigger] by removing Alpine version check --- .gitlab-ci.yml | 3 ++- ci/bin/main.ml | 9 +++------ ci/bin/tezos_ci.ml | 18 +++++++++++++++++- ci/bin/tezos_ci.mli | 22 ++++++++++++++++++++++ scripts/version.sh | 4 +++- 5 files changed, 47 insertions(+), 9 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bf3213d02587..23c5c6044e11 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -93,7 +93,8 @@ trigger: timeout: 10 minutes script: - echo 'Trigger pipeline!' - - ./scripts/ci/check_alpine_version.sh + variables: + GIT_STRATEGY: none include: - .gitlab/ci/jobs/shared/images.yml - .gitlab/ci/jobs/shared/templates.yml diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 1489621ae1f8..9bbd0f5de0af 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -194,12 +194,9 @@ let trigger = ~allow_failure:false ~timeout:(Minutes 10) ~name:"trigger" - [ - "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"; - ] + ~git_strategy:No_strategy + (* This job requires no checkout, setting [No_strategy] saves ~10 seconds. *) + ["echo 'Trigger pipeline!'"] (* Register pipelines types. Pipelines types are used to generate workflow rules and includes of the files where the jobs of the diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 62f4e4aee2b8..d3c5355dc9b1 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -89,9 +89,17 @@ type dependency = | Job of Gitlab_ci.Types.job | Artifacts of Gitlab_ci.Types.job +type git_strategy = Fetch | Clone | No_strategy + +let enc_git_strategy = function + | Fetch -> "fetch" + | Clone -> "clone" + | No_strategy -> "none" + let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script ?cache ?image ?interruptible ?(dependencies = []) ?services ?variables - ?rules ?timeout ?(tags = []) ~stage ~name script : Gitlab_ci.Types.job = + ?rules ?timeout ?(tags = []) ?git_strategy ~stage ~name script : + Gitlab_ci.Types.job = let tags = Some ((match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64") :: tags) in @@ -112,6 +120,14 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script in loop ([], []) dependencies in + let variables = + match git_strategy with + | Some strategy -> + Some + (("GIT_STRATEGY", enc_git_strategy strategy) + :: Option.value ~default:[] variables) + | None -> None + in { name; after_script; diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 63238677655d..e1675ab42ea7 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -81,6 +81,27 @@ type dependency = | Job of Gitlab_ci.Types.job | Artifacts of Gitlab_ci.Types.job +(** 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: @@ -103,6 +124,7 @@ val job : ?rules:Gitlab_ci.Types.when_ Gitlab_ci.Types.rule list -> ?timeout:Gitlab_ci.Types.timeout -> ?tags:string list -> + ?git_strategy:git_strategy -> stage:Stage.t -> name:string -> string list -> diff --git a/scripts/version.sh b/scripts/version.sh index 15d8f0c628f1..fb585d1528bc 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. -- GitLab From 8ae1230f57d1682120ed49f0da5e3b3dbed61920 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 8 Dec 2023 13:39:09 +0100 Subject: [PATCH 006/134] fixup! simplify rule types --- ci/bin/tezos_ci.mli | 2 +- ci/lib_gitlab_ci/to_yaml.ml | 50 ++++++++++++++++++++++++++----------- ci/lib_gitlab_ci/types.ml | 35 ++++++++++++++++---------- ci/lib_gitlab_ci/util.ml | 10 ++++---- ci/lib_gitlab_ci/util.mli | 6 ++--- 5 files changed, 66 insertions(+), 37 deletions(-) diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index e1675ab42ea7..0ccdca799cb6 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -121,7 +121,7 @@ val job : ?dependencies:dependency list -> ?services:Gitlab_ci.Types.service list -> ?variables:Gitlab_ci.Types.variables -> - ?rules:Gitlab_ci.Types.when_ Gitlab_ci.Types.rule list -> + ?rules:Gitlab_ci.Types.job_rule list -> ?timeout:Gitlab_ci.Types.timeout -> ?tags:string list -> ?git_strategy:git_strategy -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 71ce4c0b4277..08e6e0ab364f 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -28,16 +28,6 @@ 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_rule_aux : ('a -> value) -> 'a rule -> value = - fun enc_when {changes; if_; variables = vars; when_} -> - obj_flatten - [ - opt "changes" strings changes; - opt "if" enc_if if_; - opt "variables" enc_variables vars; - key "when" enc_when when_; - ] - let enc_when : when_ -> value = function | Always -> `String "always" | Never -> `String "never" @@ -48,10 +38,40 @@ let enc_when_workflow : when_workflow -> value = function | Always -> `String "always" | Never -> `String "never" -let enc_rules rules = array (enc_rule_aux enc_when) rules +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_job_rule : job_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 when_; + ] + +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_workflow_rules : when_workflow rule list -> value = - array (enc_rule_aux enc_when_workflow) +let enc_include_rules : include_rule list -> value = array enc_include_rule let enc_workflow : workflow -> value = function | {name; rules} -> @@ -125,7 +145,7 @@ let enc_job : job -> value = opt "image" enc_image image; opt "stage" string stage; opt "tags" (array string) tags; - opt "rules" enc_rules rules; + opt "rules" enc_job_rules rules; opt "needs" strings needs; opt "dependencies" strings dependencies; opt "allow_failure" bool allow_failure; @@ -146,7 +166,7 @@ let enc_includes : include_ list -> value = match rules with | [] -> `String local | _ :: _ -> - `O [("local", `String local); ("rules", enc_workflow_rules rules)] + `O [("local", `String local); ("rules", enc_include_rules rules)] in match includes with | [] -> failwith "empty includes" diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 1255cd60f530..a9fd32c83d89 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -11,24 +11,33 @@ type variables = (string * string) list -(** Represents values to the [when:] field in job rules. *) +(** Represents values of the [when:] field in job rules. *) type when_ = Always | Never | On_success | Manual -(** Represents values to the [when:] field in [workflow:] and [include:] rules. *) +(** Represents values of the [when:] field in [workflow:] and [include:] rules. *) type when_workflow = Always | Never -(** ['when_type rule] Represents a rule with the [when:]-type ['when_type]. +(** Represents a job rule. *) +type job_rule = { + changes : string list option; + if_ : If.t option; + variables : variables option; + when_ : when_; +} - - Rules that appears in the definition of jobs instantiate - ['when_type] to [when_]. - - Rules that appears in the definition of workflows and includes - ['when_type] to [when_workflow]. - - Additionally, for when in includes, [variables] must be [None]. *) -type 'when_type rule = { +(** Represents a workflow rule. *) +type workflow_rule = { changes : string list option; if_ : If.t option; variables : variables option; - when_ : 'when_type; + when_ : when_workflow; +} + +(** Represents an include rule. *) +type include_rule = { + changes : string list option; + if_ : If.t option; + when_ : when_workflow; } type reports = {dotenv : string option; junit : string option} @@ -71,7 +80,7 @@ type job = { interruptible : bool option; needs : string list option; dependencies : string list option; - rules : when_ rule list option; + rules : job_rule list option; script : string list option; services : service list option; stage : string option; @@ -80,9 +89,9 @@ type job = { tags : string list option; } -type workflow = {rules : when_workflow rule list; name : string option} +type workflow = {rules : workflow_rule list; name : string option} -type include_ = {local : string; rules : when_workflow rule list} +type include_ = {local : string; rules : include_rule list} type config_element = | Workflow of workflow (** Corresponds to a [workflow:] key. *) diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index f3aa5fc6ed9c..9214c0ad22a1 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -9,12 +9,12 @@ open Types let default ?image ?interruptible () : default = {image; interruptible} -let job_rule ?changes ?if_ ?variables ?(when_ = On_success) () : when_ rule = +let job_rule ?changes ?if_ ?variables ?(when_ = On_success) () : job_rule = {changes; if_; variables; when_} -let workflow_rule ?changes ?if_ ?variables ?(when_ = Always) () : - when_workflow rule = +let workflow_rule ?changes ?if_ ?variables ?(when_ = Always) () : workflow_rule + = {changes; if_; variables; when_} -let include_rule ?changes ?if_ ?(when_ = Always) () : when_workflow rule = - {changes; if_; variables = None; when_} +let include_rule ?changes ?if_ ?(when_ = Always) () : include_rule = + {changes; if_; when_} diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index 380ce7247e29..a3671402b484 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -21,7 +21,7 @@ val job_rule : ?variables:variables -> ?when_:when_ -> unit -> - when_ rule + job_rule (** Constructs a workflow rule. @@ -32,7 +32,7 @@ val workflow_rule : ?variables:variables -> ?when_:when_workflow -> unit -> - when_workflow rule + workflow_rule (** Constructs an include rule. @@ -45,4 +45,4 @@ val include_rule : ?if_:If.t -> ?when_:when_workflow -> unit -> - when_workflow rule + include_rule -- GitLab From d30952a83b2bb183621af0c1e09d5194a72a6d52 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 5 Jan 2024 16:53:15 +0100 Subject: [PATCH 007/134] fixup! extract [If.term] from [If.t] --- ci/lib_gitlab_ci/if.ml | 32 +++++++++++++--------------- ci/lib_gitlab_ci/if.mli | 19 ++++++++++------- ci/lib_gitlab_ci/predefined_vars.mli | 16 +++++++------- 3 files changed, 34 insertions(+), 33 deletions(-) diff --git a/ci/lib_gitlab_ci/if.ml b/ci/lib_gitlab_ci/if.ml index a07503f8f598..53aeba7d811b 100644 --- a/ci/lib_gitlab_ci/if.ml +++ b/ci/lib_gitlab_ci/if.ml @@ -7,22 +7,18 @@ open Base +type term = Var of string | Str of string | Null + type t = - | Var of string | And of (t * t) | Or of (t * t) - | Eq of (t * t) - | Match of (t * string) - | Unmatch of (t * string) - | Neq of (t * t) - | Str of string - | Null + | Eq of (term * term) + | Match of (term * string) + | Unmatch of (term * string) + | Neq of (term * term) let rec encode expr = let prio = function - | Null -> 0 - | Var _ -> 0 - | Str _ -> 0 | Eq _ -> 1 | Neq _ -> 1 | Match _ -> 1 @@ -41,16 +37,18 @@ let rec encode expr = let s = encode sub_expr in if prio expr < prio sub_expr then "(" ^ s ^ ")" else s in + let encode_term = function + | Null -> "null" + | Var n -> "$" ^ n + | Str s -> sf {|"%s"|} s + in match expr with - | Null -> "null" - | Var n -> "$" ^ n | 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" (paren_opt a) (paren_opt b) - | Neq (a, b) -> sf "%s != %s" (paren_opt a) (paren_opt b) - | Match (a, b) -> sf "%s =~ %s" (paren_opt a) b - | Unmatch (a, b) -> sf "%s !~ %s" (paren_opt a) b - | Str s -> sf {|"%s"|} s + | Eq (a, b) -> sf "%s == %s" (encode_term a) (encode_term b) + | Neq (a, b) -> sf "%s != %s" (encode_term a) (encode_term b) + | Match (a, b) -> sf "%s =~ %s" (encode_term a) b + | Unmatch (a, b) -> sf "%s !~ %s" (encode_term a) b let var n = Var n diff --git a/ci/lib_gitlab_ci/if.mli b/ci/lib_gitlab_ci/if.mli index e6b789af3256..f13f4a1de1cf 100644 --- a/ci/lib_gitlab_ci/if.mli +++ b/ci/lib_gitlab_ci/if.mli @@ -5,30 +5,33 @@ (* *) (*****************************************************************************) -(** Type of a GitLab [if:] expression, as used in [rules:] clauses. *) +(** Predicates for GitLab [if:] expression, as used in [rules:] clauses. *) type t +(** 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 -> t +val var : string -> term (** [str s] is the [if:] expression ["s"]. *) -val str : string -> t +val str : string -> term (** The [if:]-expression [null]. *) -val null : t +val null : term (** Equality in [if:]-expressions. Example: [var "foo" == str "bar"] translates to [$foo == "bar"]. *) -val ( == ) : t -> t -> t +val ( == ) : term -> term -> t (** Inequality in [if:]-expressions. Example: [var "foo" != str "bar"] translates to [$foo != "bar"]. *) -val ( != ) : t -> t -> t +val ( != ) : term -> term -> t (** Conjunction of [if:]-expressions. *) val ( && ) : t -> t -> t @@ -39,9 +42,9 @@ val ( || ) : t -> t -> t (** Pattern match on [if:]-expressions. Example: [var "foo" =~ str "/bar/"] translates to [$foo =~ "/bar/"]. *) -val ( =~ ) : t -> string -> t +val ( =~ ) : term -> string -> t (** Negated pattern match on [if:]-expressions. Example: [var "foo" =~! str "/bar/"] translates to [$foo !~ "/bar/"]. *) -val ( =~! ) : t -> string -> t +val ( =~! ) : term -> string -> t diff --git a/ci/lib_gitlab_ci/predefined_vars.mli b/ci/lib_gitlab_ci/predefined_vars.mli index 075dd1214e96..9963ca914207 100644 --- a/ci/lib_gitlab_ci/predefined_vars.mli +++ b/ci/lib_gitlab_ci/predefined_vars.mli @@ -12,25 +12,25 @@ predefined variables}. *) (** Corresponds to [CI_COMMIT_BRANCH].*) -val ci_commit_branch : If.t +val ci_commit_branch : If.term (** Corresponds to [CI_COMMIT_TAG].*) -val ci_commit_tag : If.t +val ci_commit_tag : If.term (** Corresponds to [CI_DEFAULT_BRANCH].*) -val ci_default_branch : If.t +val ci_default_branch : If.term (** Corresponds to [CI_OPEN_MERGE_REQUESTS].*) -val ci_open_merge_requests : If.t +val ci_open_merge_requests : If.term (** Corresponds to [CI_MERGE_REQUEST_ID].*) -val ci_merge_request_id : If.t +val ci_merge_request_id : If.term (** Corresponds to [CI_PIPELINE_SOURCE].*) -val ci_pipeline_source : If.t +val ci_pipeline_source : If.term (** Corresponds to [CI_PROJECT_NAMESPACE].*) -val ci_project_namespace : If.t +val ci_project_namespace : If.term (** Corresponds to [CI_MERGE_REQUEST_ASSIGNEES].*) -val ci_merge_request_assignees : If.t +val ci_merge_request_assignees : If.term -- GitLab From dc223d39e5c008d67e5bdeea75077a03df1678f4 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 5 Jan 2024 19:46:39 +0100 Subject: [PATCH 008/134] fixup! bug with variables in Tezos_ci.job --- ci/bin/tezos_ci.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index d3c5355dc9b1..842067fa5b16 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -126,7 +126,7 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script Some (("GIT_STRATEGY", enc_git_strategy strategy) :: Option.value ~default:[] variables) - | None -> None + | None -> variables in { name; -- GitLab From a9431dbf53a688d9883cd03432fc5dad41951acf Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 5 Jan 2024 19:47:32 +0100 Subject: [PATCH 009/134] fixup! rework artifacts --- ci/bin/tezos_ci.mli | 2 +- ci/lib_gitlab_ci/to_yaml.ml | 33 +++++++++++++++++++-------------- ci/lib_gitlab_ci/types.ml | 26 ++++++++++++++------------ ci/lib_gitlab_ci/util.ml | 24 ++++++++++++++++++++---- ci/lib_gitlab_ci/util.mli | 14 ++++++++++++++ 5 files changed, 68 insertions(+), 31 deletions(-) diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 0ccdca799cb6..3a5e3ded35b3 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -122,7 +122,7 @@ val job : ?services:Gitlab_ci.Types.service list -> ?variables:Gitlab_ci.Types.variables -> ?rules:Gitlab_ci.Types.job_rule list -> - ?timeout:Gitlab_ci.Types.timeout -> + ?timeout:Gitlab_ci.Types.time_interval -> ?tags:string list -> ?git_strategy:git_strategy -> stage:Stage.t -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 08e6e0ab364f..21f61327fac4 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -38,6 +38,11 @@ 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_workflow_rule : workflow_rule -> value = fun {changes; if_; variables; when_} -> obj_flatten @@ -85,6 +90,17 @@ let enc_default ({image; interruptible} : default) : value = obj_flatten [opt "image" enc_image image; opt "interruptible" bool interruptible] +let enc_time_interval interval = + `String + (match interval with + | Seconds x -> string_of_int x ^ " seconds" + | Minutes x -> string_of_int x ^ " minutes" + | Hours x -> string_of_int x ^ " hours" + | Days x -> string_of_int x ^ " days" + | Weeks x -> string_of_int x ^ " weeks" + | Months x -> string_of_int x ^ " months" + | Years x -> string_of_int x ^ " years") + let enc_report : reports -> value = fun {dotenv; junit} -> obj_flatten [opt "dotenv" string dotenv; opt "junit" string junit] @@ -93,10 +109,10 @@ let enc_artifacts : artifacts -> value = fun {expire_in; paths; reports; when_; expose_as} -> obj_flatten [ - key "expire_in" string expire_in; + opt "expire_in" enc_time_interval expire_in; key "paths" strings paths; key "reports" enc_report reports; - key "when" string when_; + opt "when" enc_when_artifact when_; opt "expose_as" string expose_as; ] @@ -109,17 +125,6 @@ let enc_service ({name} : service) : value = let enc_services (ss : service list) : value = array enc_service ss -let enc_interval interval = - `String - (match interval with - | Seconds x -> string_of_int x ^ " seconds" - | Minutes x -> string_of_int x ^ " minutes" - | Hours x -> string_of_int x ^ " hours" - | Days x -> string_of_int x ^ " days" - | Weeks x -> string_of_int x ^ " weeks" - | Months x -> string_of_int x ^ " months" - | Years x -> string_of_int x ^ " years") - let enc_job : job -> value = fun { name = _; @@ -149,7 +154,7 @@ let enc_job : job -> value = opt "needs" strings needs; opt "dependencies" strings dependencies; opt "allow_failure" bool allow_failure; - opt "timeout" enc_interval timeout; + opt "timeout" enc_time_interval timeout; opt "cache" enc_cache cache; opt "interruptible" bool interruptible; opt "script" strings script; diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index a9fd32c83d89..79c9dbbfe265 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -44,11 +44,22 @@ type reports = {dotenv : string option; junit : string option} type image = Image of string +type when_artifact = Always | On_success | On_failure + +type time_interval = + | Seconds of int + | Minutes of int + | Hours of int + | Days of int + | Weeks of int + | Months of int + | Years of int + type artifacts = { - expire_in : string; + expire_in : time_interval option; paths : string list; reports : reports; - when_ : string; + when_ : when_artifact option; expose_as : string option; } @@ -56,15 +67,6 @@ type default = {image : image option; interruptible : bool option} type cache = {key : string; paths : string list} -type timeout = - | Seconds of int - | Minutes of int - | Hours of int - | Days of int - | Weeks of int - | Months of int - | Years of int - type service = {name : string} type job = { @@ -85,7 +87,7 @@ type job = { services : service list option; stage : string option; variables : variables option; - timeout : timeout option; + timeout : time_interval option; tags : string list option; } diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index 9214c0ad22a1..db29f08a0b65 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -9,12 +9,28 @@ open Types let default ?image ?interruptible () : default = {image; interruptible} -let job_rule ?changes ?if_ ?variables ?(when_ = On_success) () : job_rule = +let job_rule ?changes ?if_ ?variables ?(when_ : when_ = On_success) () : + job_rule = {changes; if_; variables; when_} -let workflow_rule ?changes ?if_ ?variables ?(when_ = Always) () : workflow_rule - = +let workflow_rule ?changes ?if_ ?variables ?(when_ : when_workflow = Always) () + : workflow_rule = {changes; if_; variables; when_} -let include_rule ?changes ?if_ ?(when_ = Always) () : include_rule = +let include_rule ?changes ?if_ ?(when_ : when_workflow = Always) () : + include_rule = {changes; if_; when_} + +let artifacts ?expire_in ?reports ?when_ ?expose_as paths = + (match (reports, paths) with + | Some {dotenv = None; junit = None}, [] -> + failwith + "Attempted to register an artifact with no reports or paths -- this \ + doesn't make any sense" + | _ -> ()) ; + let reports = + match reports with + | Some reports -> reports + | None -> {dotenv = None; junit = None} + in + {expire_in; paths; reports; when_; expose_as} diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index a3671402b484..033933fc3082 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -46,3 +46,17 @@ val include_rule : ?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]. *) +val artifacts : + ?expire_in:time_interval -> + ?reports:reports -> + ?when_:when_artifact -> + ?expose_as:string -> + string list -> + artifacts -- GitLab From e142ae75e65af77d0a296de5b573a0bf6a5cfc65 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Mon, 8 Jan 2024 16:17:45 +0100 Subject: [PATCH 010/134] fixup! CI: Rework the handling of job dependencies to handle independent jobs --- ci/bin/tezos_ci.ml | 34 ++++++++++++++++++++-------------- ci/bin/tezos_ci.mli | 12 ++++++++++-- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 842067fa5b16..30daa800669f 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -89,6 +89,8 @@ type dependency = | Job of Gitlab_ci.Types.job | Artifacts of Gitlab_ci.Types.job +type dependencies = Staged | Independent | Dependent of dependency list + type git_strategy = Fetch | Clone | No_strategy let enc_git_strategy = function @@ -97,7 +99,7 @@ let enc_git_strategy = function | No_strategy -> "none" let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script - ?cache ?image ?interruptible ?(dependencies = []) ?services ?variables + ?cache ?image ?interruptible ?(dependencies = Staged) ?services ?variables ?rules ?timeout ?(tags = []) ?git_strategy ~stage ~name script : Gitlab_ci.Types.job = let tags = @@ -106,19 +108,23 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script let stage = Some (Stage.name stage) in let script = Some script in let needs, dependencies = - let to_opt = function [] -> None | xs -> Some xs in - let rec loop (needs, dependencies) = function - | Job j :: deps -> loop (j.name :: needs, dependencies) deps - | Artifacts j :: deps -> - loop (j.name :: needs, j.name :: 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. *) - (to_opt @@ List.rev needs, Some (List.rev dependencies)) - in - loop ([], []) dependencies + match dependencies with + | Staged -> (None, Some []) + | Independent -> (Some [], Some []) + | Dependent dependencies -> + let to_opt = function [] -> None | xs -> Some xs in + let rec loop (needs, dependencies) = function + | Job j :: deps -> loop (j.name :: needs, dependencies) deps + | Artifacts j :: deps -> + loop (j.name :: needs, j.name :: 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. *) + (to_opt @@ List.rev needs, Some (List.rev dependencies)) + in + loop ([], []) dependencies in let variables = match git_strategy with diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 3a5e3ded35b3..acd7ad636b50 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -71,7 +71,7 @@ end (** Represents architectures. *) type arch = Amd64 | Arm64 -(** Job dependencies. +(** A job dependency. - A job that depends on [Job j] will not start until [j] finishes. @@ -81,6 +81,14 @@ type dependency = | Job of Gitlab_ci.Types.job | Artifacts of Gitlab_ci.Types.job +(** Job dependencies. + + - A [Staged] job implements the default GitLab CI behavior of running once all + jobs in the previous stage have terminated. + - An [Independent] job runs immediately, regardless of its stage. This corresponds to setting [needs: []]. + - An [Dependent deps] job runs once all the jobs in [deps] have terminated. *) +type dependencies = Staged | Independent | Dependent of dependency list + (** Values for the [GIT_STRATEGY] variable. This can be used to specify whether a job should [Fetch] or [Clone] @@ -118,7 +126,7 @@ val job : ?cache:Gitlab_ci.Types.cache -> ?image:Image.t -> ?interruptible:bool -> - ?dependencies:dependency list -> + ?dependencies:dependencies -> ?services:Gitlab_ci.Types.service list -> ?variables:Gitlab_ci.Types.variables -> ?rules:Gitlab_ci.Types.job_rule list -> -- GitLab From a71e810aa0c21487df6d586aa402580e70c722ab Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Mon, 8 Jan 2024 16:29:42 +0100 Subject: [PATCH 011/134] fixup! CI: add [allow_failure] to job rules --- ci/lib_gitlab_ci/to_yaml.ml | 3 ++- ci/lib_gitlab_ci/types.ml | 1 + ci/lib_gitlab_ci/util.ml | 6 +++--- ci/lib_gitlab_ci/util.mli | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 21f61327fac4..42f37bd29dfb 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -54,12 +54,13 @@ let enc_workflow_rule : workflow_rule -> value = ] let enc_job_rule : job_rule -> value = - fun {changes; if_; variables; when_} -> + fun {changes; if_; variables; when_; allow_failure} -> obj_flatten [ opt "changes" strings changes; opt "if" enc_if if_; opt "variables" enc_variables variables; + opt "allow_failure" bool allow_failure; key "when" enc_when when_; ] diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 79c9dbbfe265..5b530377c766 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -23,6 +23,7 @@ type job_rule = { if_ : If.t option; variables : variables option; when_ : when_; + allow_failure : bool option; } (** Represents a workflow rule. *) diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index db29f08a0b65..df41103ef9b4 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -9,9 +9,9 @@ open Types let default ?image ?interruptible () : default = {image; interruptible} -let job_rule ?changes ?if_ ?variables ?(when_ : when_ = On_success) () : - job_rule = - {changes; if_; variables; when_} +let job_rule ?changes ?if_ ?variables ?(when_ : when_ = On_success) + ?allow_failure () : job_rule = + {changes; if_; variables; when_; allow_failure} let workflow_rule ?changes ?if_ ?variables ?(when_ : when_workflow = Always) () : workflow_rule = diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index 033933fc3082..d46d67cb38f2 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -20,6 +20,7 @@ val job_rule : ?if_:If.t -> ?variables:variables -> ?when_:when_ -> + ?allow_failure:bool -> unit -> job_rule -- GitLab From a2f4e4795f1c1c3c3a316eced838d4ccf05e00f0 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 9 Jan 2024 16:40:54 +0100 Subject: [PATCH 012/134] fixup! move yaml fields for purely selfish reasons --- ci/lib_gitlab_ci/to_yaml.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 42f37bd29dfb..e83a7f6babf4 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -60,8 +60,8 @@ let enc_job_rule : job_rule -> value = opt "changes" strings changes; opt "if" enc_if if_; opt "variables" enc_variables variables; - opt "allow_failure" bool allow_failure; key "when" enc_when when_; + opt "allow_failure" bool allow_failure; ] let enc_include_rule : include_rule -> value = -- GitLab From 2f7b60082dc3ef485ff87321b00cd89c0d43afd5 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 08:09:23 +0100 Subject: [PATCH 013/134] fixup! use simple version of [service] encoding This encoding is equivalent in case the [service] only defines a name, and it is the encoding used most frequently (exclusively) before ocaml-in-ci. Using this encoding makes diffs smaller and so eases review. --- ci/lib_gitlab_ci/to_yaml.ml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index e83a7f6babf4..ef8643dc4fc9 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -121,8 +121,7 @@ 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 = - obj_flatten [key "name" string name] +let enc_service ({name} : service) : value = `String name let enc_services (ss : service list) : value = array enc_service ss -- GitLab From 253cd7b2c71c7b7f5274f82b4a189c7d2c200ff2 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 13:23:13 +0100 Subject: [PATCH 014/134] CI-in-OCaml: make [reports:] in [artifacts:] optional --- ci/lib_gitlab_ci/to_yaml.ml | 2 +- ci/lib_gitlab_ci/types.ml | 2 +- ci/lib_gitlab_ci/util.ml | 5 ----- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index ef8643dc4fc9..d6c48631fa98 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -112,7 +112,7 @@ let enc_artifacts : artifacts -> value = [ opt "expire_in" enc_time_interval expire_in; key "paths" strings paths; - key "reports" enc_report reports; + opt "reports" enc_report reports; opt "when" enc_when_artifact when_; opt "expose_as" string expose_as; ] diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 5b530377c766..81cad728e6de 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -59,7 +59,7 @@ type time_interval = type artifacts = { expire_in : time_interval option; paths : string list; - reports : reports; + reports : reports option; when_ : when_artifact option; expose_as : string option; } diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index df41103ef9b4..b429df3a1cef 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -28,9 +28,4 @@ let artifacts ?expire_in ?reports ?when_ ?expose_as paths = "Attempted to register an artifact with no reports or paths -- this \ doesn't make any sense" | _ -> ()) ; - let reports = - match reports with - | Some reports -> reports - | None -> {dotenv = None; junit = None} - in {expire_in; paths; reports; when_; expose_as} -- GitLab From e078c750cacf300d59204a683b48fa3994aa081f Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 12:43:14 +0100 Subject: [PATCH 015/134] CI-in-OCaml: add [when:] to jobs --- ci/bin/tezos_ci.ml | 3 ++- ci/bin/tezos_ci.mli | 1 + ci/lib_gitlab_ci/to_yaml.ml | 2 ++ ci/lib_gitlab_ci/types.ml | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 30daa800669f..41412e93b170 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -100,7 +100,7 @@ let enc_git_strategy = function let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script ?cache ?image ?interruptible ?(dependencies = Staged) ?services ?variables - ?rules ?timeout ?(tags = []) ?git_strategy ~stage ~name script : + ?rules ?timeout ?(tags = []) ?git_strategy ?when_ ~stage ~name script : Gitlab_ci.Types.job = let tags = Some ((match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64") :: tags) @@ -152,4 +152,5 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script variables; timeout; tags; + when_; } diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index acd7ad636b50..43a7dd0512ae 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -133,6 +133,7 @@ val job : ?timeout:Gitlab_ci.Types.time_interval -> ?tags:string list -> ?git_strategy:git_strategy -> + ?when_:Gitlab_ci.Types.when_ -> stage:Stage.t -> name:string -> string list -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index d6c48631fa98..3625dceddf9f 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -144,6 +144,7 @@ let enc_job : job -> value = variables; timeout; tags; + when_; } -> obj_flatten [ @@ -163,6 +164,7 @@ let enc_job : job -> value = opt "services" enc_services services; opt "variables" enc_variables variables; opt "artifacts" enc_artifacts artifacts; + opt "when" enc_when when_; ] let enc_includes : include_ list -> value = diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 81cad728e6de..f767250c5225 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -90,6 +90,7 @@ type job = { variables : variables option; timeout : time_interval option; tags : string list option; + when_ : when_ option; } type workflow = {rules : workflow_rule list; name : string option} -- GitLab From fd3d656c259e8e40569a6c8f77cfc34db92a5277 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 12:45:35 +0100 Subject: [PATCH 016/134] CI-in-OCaml: add [name:] to artifacts --- ci/lib_gitlab_ci/to_yaml.ml | 3 ++- ci/lib_gitlab_ci/types.ml | 1 + ci/lib_gitlab_ci/util.ml | 4 ++-- ci/lib_gitlab_ci/util.mli | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 3625dceddf9f..460264f685e7 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -107,9 +107,10 @@ let enc_report : reports -> value = obj_flatten [opt "dotenv" string dotenv; opt "junit" string junit] let enc_artifacts : artifacts -> value = - fun {expire_in; paths; reports; when_; expose_as} -> + 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; diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index f767250c5225..5ed3606162c1 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -62,6 +62,7 @@ type artifacts = { reports : reports option; when_ : when_artifact option; expose_as : string option; + name : string option; } type default = {image : image option; interruptible : bool option} diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index b429df3a1cef..cbf82e4c7f18 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -21,11 +21,11 @@ let include_rule ?changes ?if_ ?(when_ : when_workflow = Always) () : include_rule = {changes; if_; when_} -let artifacts ?expire_in ?reports ?when_ ?expose_as paths = +let artifacts ?expire_in ?reports ?when_ ?expose_as ?name paths = (match (reports, paths) with | Some {dotenv = None; junit = 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} + {expire_in; paths; reports; when_; expose_as; name} diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index d46d67cb38f2..aa8d75a62de6 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -59,5 +59,6 @@ val artifacts : ?reports:reports -> ?when_:when_artifact -> ?expose_as:string -> + ?name:string -> string list -> artifacts -- GitLab From ae0a7104adf0133cb1b4a7ef231528a155d45181 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 12:46:01 +0100 Subject: [PATCH 017/134] CI-in-OCaml: improve pretty-printing of unitary time intervals --- ci/lib_gitlab_ci/to_yaml.ml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 460264f685e7..591b9a7c2fbe 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -94,12 +94,19 @@ let enc_default ({image; interruptible} : default) : value = 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_report : reports -> value = -- GitLab From 25ba27c5efc93d3646556d5b73443f7af897f7d6 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 15:39:28 +0100 Subject: [PATCH 018/134] CI-In-OCaml: rework variables in [If.t] --- ci/lib_gitlab_ci/if.ml | 30 +++++++++++++++------------- ci/lib_gitlab_ci/if.mli | 16 ++++++++++----- ci/lib_gitlab_ci/predefined_vars.mli | 16 +++++++-------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/ci/lib_gitlab_ci/if.ml b/ci/lib_gitlab_ci/if.ml index 53aeba7d811b..32578419e9e5 100644 --- a/ci/lib_gitlab_ci/if.ml +++ b/ci/lib_gitlab_ci/if.ml @@ -7,15 +7,19 @@ open Base -type term = Var of string | Str of string | Null +type var = Var of string + +let show_var = function Var n -> "$" ^ n + +type term = Str of string | Null type t = | And of (t * t) | Or of (t * t) - | Eq of (term * term) - | Match of (term * string) - | Unmatch of (term * string) - | Neq of (term * term) + | Eq of (var * term) + | Match of (var * string) + | Unmatch of (var * string) + | Neq of (var * term) let rec encode expr = let prio = function @@ -37,21 +41,19 @@ let rec encode expr = let s = encode sub_expr in if prio expr < prio sub_expr then "(" ^ s ^ ")" else s in - let encode_term = function - | Null -> "null" - | Var n -> "$" ^ n - | Str s -> sf {|"%s"|} 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_term a) (encode_term b) - | Neq (a, b) -> sf "%s != %s" (encode_term a) (encode_term b) - | Match (a, b) -> sf "%s =~ %s" (encode_term a) b - | Unmatch (a, b) -> sf "%s !~ %s" (encode_term a) b + | Eq (a, b) -> sf "%s == %s" (show_var a) (encode_term b) + | Neq (a, b) -> sf "%s != %s" (show_var a) (encode_term b) + | Match (a, b) -> sf "%s =~ %s" (show_var a) b + | Unmatch (a, b) -> sf "%s !~ %s" (show_var a) b let var n = Var n +(* let var n = n *) + let eq a b = Eq (a, b) let neq a b = Neq (a, b) diff --git a/ci/lib_gitlab_ci/if.mli b/ci/lib_gitlab_ci/if.mli index f13f4a1de1cf..3e61a406a132 100644 --- a/ci/lib_gitlab_ci/if.mli +++ b/ci/lib_gitlab_ci/if.mli @@ -8,6 +8,12 @@ (** Predicates for GitLab [if:] expression, as used in [rules:] clauses. *) type t +(** TODO *) +type var + +(** TODO *) +val show_var : var -> string + (** Terms for predicates in GitLab [if:] clauses. *) type term @@ -15,7 +21,7 @@ type term val encode : t -> string (** [var name] is the [if:] expression [$name]. *) -val var : string -> term +val var : string -> var (** [str s] is the [if:] expression ["s"]. *) val str : string -> term @@ -26,12 +32,12 @@ val null : term (** Equality in [if:]-expressions. Example: [var "foo" == str "bar"] translates to [$foo == "bar"]. *) -val ( == ) : term -> term -> t +val ( == ) : var -> term -> t (** Inequality in [if:]-expressions. Example: [var "foo" != str "bar"] translates to [$foo != "bar"]. *) -val ( != ) : term -> term -> t +val ( != ) : var -> term -> t (** Conjunction of [if:]-expressions. *) val ( && ) : t -> t -> t @@ -42,9 +48,9 @@ val ( || ) : t -> t -> t (** Pattern match on [if:]-expressions. Example: [var "foo" =~ str "/bar/"] translates to [$foo =~ "/bar/"]. *) -val ( =~ ) : term -> string -> t +val ( =~ ) : var -> string -> t (** Negated pattern match on [if:]-expressions. Example: [var "foo" =~! str "/bar/"] translates to [$foo !~ "/bar/"]. *) -val ( =~! ) : term -> string -> t +val ( =~! ) : var -> string -> t diff --git a/ci/lib_gitlab_ci/predefined_vars.mli b/ci/lib_gitlab_ci/predefined_vars.mli index 9963ca914207..54020afef094 100644 --- a/ci/lib_gitlab_ci/predefined_vars.mli +++ b/ci/lib_gitlab_ci/predefined_vars.mli @@ -12,25 +12,25 @@ predefined variables}. *) (** Corresponds to [CI_COMMIT_BRANCH].*) -val ci_commit_branch : If.term +val ci_commit_branch : If.var (** Corresponds to [CI_COMMIT_TAG].*) -val ci_commit_tag : If.term +val ci_commit_tag : If.var (** Corresponds to [CI_DEFAULT_BRANCH].*) -val ci_default_branch : If.term +val ci_default_branch : If.var (** Corresponds to [CI_OPEN_MERGE_REQUESTS].*) -val ci_open_merge_requests : If.term +val ci_open_merge_requests : If.var (** Corresponds to [CI_MERGE_REQUEST_ID].*) -val ci_merge_request_id : If.term +val ci_merge_request_id : If.var (** Corresponds to [CI_PIPELINE_SOURCE].*) -val ci_pipeline_source : If.term +val ci_pipeline_source : If.var (** Corresponds to [CI_PROJECT_NAMESPACE].*) -val ci_project_namespace : If.term +val ci_project_namespace : If.var (** Corresponds to [CI_MERGE_REQUEST_ASSIGNEES].*) -val ci_merge_request_assignees : If.term +val ci_merge_request_assignees : If.var -- GitLab From 63442576eaab130702116686ecb577e572912d10 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 10 Jan 2024 16:52:42 +0100 Subject: [PATCH 019/134] CI-in-OCaml: add all [Predefined_var]s --- ci/lib_gitlab_ci/predefined_vars.ml | 292 +++++- ci/lib_gitlab_ci/predefined_vars.mli | 1282 +++++++++++++++++++++++++- 2 files changed, 1564 insertions(+), 10 deletions(-) diff --git a/ci/lib_gitlab_ci/predefined_vars.ml b/ci/lib_gitlab_ci/predefined_vars.ml index 0b8b89e65bbe..631ad550e37a 100644 --- a/ci/lib_gitlab_ci/predefined_vars.ml +++ b/ci/lib_gitlab_ci/predefined_vars.ml @@ -7,18 +7,308 @@ open If +let show = If.show_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_merge_request_id = var "CI_MERGE_REQUEST_ID" +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 index 54020afef094..1ed8c3a56c80 100644 --- a/ci/lib_gitlab_ci/predefined_vars.mli +++ b/ci/lib_gitlab_ci/predefined_vars.mli @@ -11,26 +11,1290 @@ {{:https://docs.gitlab.com/ee/ci/variables/predefined_variables.html} predefined variables}. *) -(** Corresponds to [CI_COMMIT_BRANCH].*) +(** String representation of a variable with the sigil-sign. + + A handy alias of [If.show_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_TAG].*) +(** 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_DEFAULT_BRANCH].*) +(** 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_OPEN_MERGE_REQUESTS].*) +(** 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_MERGE_REQUEST_ID].*) -val ci_merge_request_id : 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_PIPELINE_SOURCE].*) +(** 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_PROJECT_NAMESPACE].*) +(** 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_MERGE_REQUEST_ASSIGNEES].*) +(** 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 -- GitLab From c0198b06531c4d5e076d6dcdf05de1d6a1063df3 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 10 Jan 2024 16:53:44 +0100 Subject: [PATCH 020/134] CI-in-OCaml: add rule for [schedule_extended_tests] --- ci/bin/main.ml | 4 +--- ci/bin/rules.ml | 3 +++ ci/bin/rules.mli | 3 +++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 9bbd0f5de0af..194ec9cb05b5 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -235,9 +235,7 @@ let () = register "non_release_tag_test" If.(not_on_tezos_namespace && push && has_tag_not_match any_release_tag_re) ; - register - "schedule_extended_test" - If.(scheduled && var "TZ_SCHEDULE_KIND" == str "EXTENDED_TESTS") + register "schedule_extended_test" schedule_extended_tests (* Split pipelines and writes image templates *) let config = diff --git a/ci/bin/rules.ml b/ci/bin/rules.ml index 95dc237d5d3c..81183dae3aa3 100644 --- a/ci/bin/rules.ml +++ b/ci/bin/rules.ml @@ -27,6 +27,9 @@ 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 diff --git a/ci/bin/rules.mli b/ci/bin/rules.mli index 871ffae273da..fb6872459109 100644 --- a/ci/bin/rules.mli +++ b/ci/bin/rules.mli @@ -23,6 +23,9 @@ val push : If.t (** A rule that is true if [CI_PIPELINE_SOURCE] is [scheduled]. *) val scheduled : If.t +(** TODO: *) +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 -- GitLab From a89046e7a6b7f0a7d21f00cb5c03cc387a9e4993 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 10 Jan 2024 16:53:59 +0100 Subject: [PATCH 021/134] CI-in-OCaml: add rule for [has_mr_label] --- ci/bin/rules.ml | 3 +++ ci/bin/rules.mli | 3 +++ 2 files changed, 6 insertions(+) diff --git a/ci/bin/rules.ml b/ci/bin/rules.ml index 81183dae3aa3..c54af4d56515 100644 --- a/ci/bin/rules.ml +++ b/ci/bin/rules.ml @@ -45,3 +45,6 @@ let has_tag_not_match tag = let assigned_to_marge_bot = Predefined_vars.ci_merge_request_assignees =~! "/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 index fb6872459109..fa7cba1ad6c6 100644 --- a/ci/bin/rules.mli +++ b/ci/bin/rules.mli @@ -44,5 +44,8 @@ val has_tag_match : string -> If.t (** A rule that is true if [CI_COMMIT_TAG] is defined but does not matches the given regexp. *) val has_tag_not_match : string -> If.t +(** TODO *) +val has_mr_label : string -> If.t + (** A rule that is true if [CI_MERGE_REQUEST_ASSIGNEES] equals [nomadic-margebot]. *) val assigned_to_marge_bot : If.t -- GitLab From 679c87a3be437188358654c8da39b3a6d5d614f3 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 15:40:20 +0100 Subject: [PATCH 022/134] CI-In-OCaml: add utilities for [reports] and add [coverage_report] --- ci/bin/tezos_ci.ml | 5 +++-- ci/bin/tezos_ci.mli | 1 + ci/lib_gitlab_ci/to_yaml.ml | 22 ++++++++++++++++++++-- ci/lib_gitlab_ci/types.ml | 11 ++++++++++- ci/lib_gitlab_ci/util.ml | 10 +++++++++- ci/lib_gitlab_ci/util.mli | 7 +++++++ 6 files changed, 50 insertions(+), 6 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 41412e93b170..681b7f93f436 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -100,8 +100,8 @@ let enc_git_strategy = function let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script ?cache ?image ?interruptible ?(dependencies = Staged) ?services ?variables - ?rules ?timeout ?(tags = []) ?git_strategy ?when_ ~stage ~name script : - Gitlab_ci.Types.job = + ?rules ?timeout ?(tags = []) ?git_strategy ?when_ ?coverage ~stage ~name + script : Gitlab_ci.Types.job = let tags = Some ((match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64") :: tags) in @@ -153,4 +153,5 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script timeout; tags; when_; + coverage; } diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 43a7dd0512ae..138e1d3d54a1 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -134,6 +134,7 @@ val job : ?tags:string list -> ?git_strategy:git_strategy -> ?when_:Gitlab_ci.Types.when_ -> + ?coverage:string -> stage:Stage.t -> name:string -> string list -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 591b9a7c2fbe..3172270ac70e 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -109,9 +109,25 @@ let enc_time_interval interval = | Years 1 -> "1 year" | Years x -> string_of_int x ^ " years") +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} -> - obj_flatten [opt "dotenv" string dotenv; opt "junit" string junit] + 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} -> @@ -153,6 +169,7 @@ let enc_job : job -> value = timeout; tags; when_; + coverage; } -> obj_flatten [ @@ -173,6 +190,7 @@ let enc_job : job -> value = opt "variables" enc_variables variables; opt "artifacts" enc_artifacts artifacts; opt "when" enc_when when_; + opt "coverage" string coverage; ] let enc_includes : include_ list -> value = diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 5ed3606162c1..56f6e3cd8f4f 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -41,7 +41,15 @@ type include_rule = { when_ : when_workflow; } -type reports = {dotenv : string option; junit : string option} +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 @@ -92,6 +100,7 @@ type job = { timeout : time_interval option; tags : string list option; when_ : when_ option; + coverage : string option; } type workflow = {rules : workflow_rule list; name : string option} diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index cbf82e4c7f18..43c78d0a161e 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -23,9 +23,17 @@ let include_rule ?changes ?if_ ?(when_ : when_workflow = Always) () : let artifacts ?expire_in ?reports ?when_ ?expose_as ?name paths = (match (reports, paths) with - | Some {dotenv = None; junit = None}, [] -> + | 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 index aa8d75a62de6..8c70dbe2d92b 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -62,3 +62,10 @@ val artifacts : ?name:string -> string list -> artifacts + +val reports : + ?dotenv:string -> + ?junit:string -> + ?coverage_report:coverage_report -> + unit -> + reports -- GitLab From befd71d07807555e3dfd14369393539456d16b03 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 16:48:12 +0100 Subject: [PATCH 023/134] CI-In-OCaml: there can be many caches --- ci/bin/tezos_ci.mli | 2 +- ci/lib_gitlab_ci/to_yaml.ml | 2 +- ci/lib_gitlab_ci/types.ml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 138e1d3d54a1..5805a9099ac5 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -123,7 +123,7 @@ val job : ?allow_failure:bool -> ?artifacts:Gitlab_ci.Types.artifacts -> ?before_script:string list -> - ?cache:Gitlab_ci.Types.cache -> + ?cache:Gitlab_ci.Types.cache list -> ?image:Image.t -> ?interruptible:bool -> ?dependencies:dependencies -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 3172270ac70e..ddb11e1ae90c 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -181,7 +181,7 @@ let enc_job : job -> value = opt "dependencies" strings dependencies; opt "allow_failure" bool allow_failure; opt "timeout" enc_time_interval timeout; - opt "cache" enc_cache cache; + opt "cache" (array enc_cache) cache; opt "interruptible" bool interruptible; opt "script" strings script; opt "after_script" strings after_script; diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 56f6e3cd8f4f..75bedf9eb1b1 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -87,7 +87,7 @@ type job = { allow_failure : bool option; artifacts : artifacts option; before_script : string list option; - cache : cache option; + cache : cache list option; image : image option; interruptible : bool option; needs : string list option; -- GitLab From 357a9f4c0ec292839780bc2c718a73a605ebe650 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 10:01:19 +0100 Subject: [PATCH 024/134] CI-in-OCaml: add rule for pipelines triggered by marge-bot --- ci/bin/rules.ml | 3 +++ ci/bin/rules.mli | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ci/bin/rules.ml b/ci/bin/rules.ml index c54af4d56515..cb02d6cb9425 100644 --- a/ci/bin/rules.ml +++ b/ci/bin/rules.ml @@ -46,5 +46,8 @@ let has_tag_not_match 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 index fa7cba1ad6c6..07237acc3c8a 100644 --- a/ci/bin/rules.mli +++ b/ci/bin/rules.mli @@ -47,5 +47,8 @@ val has_tag_not_match : string -> If.t (** TODO *) val has_mr_label : string -> If.t -(** A rule that is true if [CI_MERGE_REQUEST_ASSIGNEES] equals [nomadic-margebot]. *) +(** 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 -- GitLab From 78ea0e7a6bf800894e1b7f3a82719594e4ea6ba4 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 10:03:29 +0100 Subject: [PATCH 025/134] CI-in-OCaml: support delayed job_rules --- ci/lib_gitlab_ci/to_yaml.ml | 40 +++++++++++++++++++------------------ ci/lib_gitlab_ci/types.ml | 21 +++++++++---------- ci/lib_gitlab_ci/util.ml | 12 +++++++++-- ci/lib_gitlab_ci/util.mli | 1 + 4 files changed, 43 insertions(+), 31 deletions(-) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index ddb11e1ae90c..7c17250f94c2 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -33,6 +33,7 @@ let enc_when : when_ -> value = function | 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" @@ -53,8 +54,26 @@ let enc_workflow_rule : workflow_rule -> value = key "when" enc_when_workflow when_; ] +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} -> + fun {changes; if_; variables; when_; allow_failure; start_in} -> obj_flatten [ opt "changes" strings changes; @@ -62,6 +81,7 @@ let enc_job_rule : job_rule -> value = opt "variables" enc_variables variables; key "when" enc_when when_; opt "allow_failure" bool allow_failure; + opt "start_in" enc_time_interval start_in; ] let enc_include_rule : include_rule -> value = @@ -91,24 +111,6 @@ let enc_default ({image; interruptible} : default) : value = obj_flatten [opt "image" enc_image image; opt "interruptible" bool interruptible] -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_coverage : coverage_report -> value = fun {coverage_format; path} -> obj_flatten diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 75bedf9eb1b1..03c06720fdcc 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -12,11 +12,20 @@ type variables = (string * string) list (** Represents values of the [when:] field in job rules. *) -type when_ = Always | Never | On_success | Manual +type when_ = Always | Never | On_success | Manual | Delayed (** Represents values of the [when:] field in [workflow:] and [include:] rules. *) type when_workflow = Always | Never +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 a job rule. *) type job_rule = { changes : string list option; @@ -24,6 +33,7 @@ type job_rule = { variables : variables option; when_ : when_; allow_failure : bool option; + start_in : time_interval option; } (** Represents a workflow rule. *) @@ -55,15 +65,6 @@ type image = Image of string type when_artifact = Always | On_success | On_failure -type time_interval = - | Seconds of int - | Minutes of int - | Hours of int - | Days of int - | Weeks of int - | Months of int - | Years of int - type artifacts = { expire_in : time_interval option; paths : string list; diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index 43c78d0a161e..eed931f2a78a 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -10,8 +10,16 @@ open Types let default ?image ?interruptible () : default = {image; interruptible} let job_rule ?changes ?if_ ?variables ?(when_ : when_ = On_success) - ?allow_failure () : job_rule = - {changes; if_; variables; when_; allow_failure} + ?allow_failure ?start_in () : job_rule = + (* Alternatively, this restriction can be encoded in the type system + by making [start_in] a parameter of the [Delayed] constructor. + However, that would be a step away from Octez-agnosticism of [lib_gitlab_ci]. *) + (match (start_in, when_) with + | None, _ -> () + | Some _, Delayed -> () + | Some _, _ -> + failwith "[job_rule] cannot set [start_in] if [when_] is not [Delayed]") ; + {changes; if_; variables; when_; allow_failure; start_in} let workflow_rule ?changes ?if_ ?variables ?(when_ : when_workflow = Always) () : workflow_rule = diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index 8c70dbe2d92b..092ced7dc139 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -21,6 +21,7 @@ val job_rule : ?variables:variables -> ?when_:when_ -> ?allow_failure:bool -> + ?start_in:time_interval -> unit -> job_rule -- GitLab From 74b65286d4af7cb290f9efd63a582c20c6236763 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 10:04:19 +0100 Subject: [PATCH 026/134] CI-in-OCaml: support [retry:] --- ci/bin/tezos_ci.ml | 14 ++++++++++++-- ci/bin/tezos_ci.mli | 1 + ci/lib_gitlab_ci/to_yaml.ml | 4 ++++ ci/lib_gitlab_ci/types.ml | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 681b7f93f436..0c224e11b78d 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -100,8 +100,8 @@ let enc_git_strategy = function let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script ?cache ?image ?interruptible ?(dependencies = Staged) ?services ?variables - ?rules ?timeout ?(tags = []) ?git_strategy ?when_ ?coverage ~stage ~name - script : Gitlab_ci.Types.job = + ?rules ?timeout ?(tags = []) ?git_strategy ?when_ ?coverage ?retry ~stage + ~name script : Gitlab_ci.Types.job = let tags = Some ((match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64") :: tags) in @@ -134,6 +134,15 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script :: Option.value ~default:[] variables) | None -> variables in + (match retry with + | Some retry when retry < 0 || retry > 2 -> + failwith + (sf + "Invalid [retry] value '%d' for job [%s]: retry greater or equal to \ + zero and less than or equal to 2" + retry + name) + | _ -> ()) ; { name; after_script; @@ -154,4 +163,5 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script tags; when_; coverage; + retry; } diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 5805a9099ac5..e1cc53827f8b 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -135,6 +135,7 @@ val job : ?git_strategy:git_strategy -> ?when_:Gitlab_ci.Types.when_ -> ?coverage:string -> + ?retry:int -> stage:Stage.t -> name:string -> string list -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 7c17250f94c2..7e2e44bc628b 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -21,6 +21,8 @@ let array f value = `A (List.map f value) 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 @@ -172,6 +174,7 @@ let enc_job : job -> value = tags; when_; coverage; + retry; } -> obj_flatten [ @@ -193,6 +196,7 @@ let enc_job : job -> value = opt "artifacts" enc_artifacts artifacts; opt "when" enc_when when_; opt "coverage" string coverage; + opt "retry" int retry; ] let enc_includes : include_ list -> value = diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 03c06720fdcc..ee1abf4a93f7 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -102,6 +102,7 @@ type job = { tags : string list option; when_ : when_ option; coverage : string option; + retry : int option; } type workflow = {rules : workflow_rule list; name : string option} -- GitLab From 667ca8c61c1e3ba303c5d8d3e5251fe6b279ae6c Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Mon, 15 Jan 2024 13:57:35 +0100 Subject: [PATCH 027/134] CI-in-OCaml: tweak encoding of unitary [cache:] fields --- ci/lib_gitlab_ci/to_yaml.ml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 7e2e44bc628b..1464b7a8bea0 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -17,7 +17,10 @@ let obj_flatten fields = `O (List.concat fields) let key name f value : (string * value) list = [(name, f value)] -let array f value = `A (List.map f value) +let array f values = `A (List.map f values) + +let array1 f values = + match values with [value] -> f value | _ -> array f values let strings ss : value = array string ss @@ -186,7 +189,7 @@ let enc_job : job -> value = opt "dependencies" strings dependencies; opt "allow_failure" bool allow_failure; opt "timeout" enc_time_interval timeout; - opt "cache" (array enc_cache) cache; + opt "cache" (array1 enc_cache) cache; opt "interruptible" bool interruptible; opt "script" strings script; opt "after_script" strings after_script; -- GitLab From 85e27204ca8a22f20ac19e9a748d8f17795dc54e Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 14:05:42 +0100 Subject: [PATCH 028/134] CI-in-OCaml: add [parallel:] to jobs --- ci/bin/tezos_ci.ml | 5 +++-- ci/bin/tezos_ci.mli | 1 + ci/lib_gitlab_ci/to_yaml.ml | 2 ++ ci/lib_gitlab_ci/types.ml | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 0c224e11b78d..4fc18a9821b0 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -100,8 +100,8 @@ let enc_git_strategy = function let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script ?cache ?image ?interruptible ?(dependencies = Staged) ?services ?variables - ?rules ?timeout ?(tags = []) ?git_strategy ?when_ ?coverage ?retry ~stage - ~name script : Gitlab_ci.Types.job = + ?rules ?timeout ?(tags = []) ?git_strategy ?when_ ?coverage ?retry ?parallel + ~stage ~name script : Gitlab_ci.Types.job = let tags = Some ((match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64") :: tags) in @@ -164,4 +164,5 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script when_; coverage; retry; + parallel; } diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index e1cc53827f8b..c17f0844606c 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -136,6 +136,7 @@ val job : ?when_:Gitlab_ci.Types.when_ -> ?coverage:string -> ?retry:int -> + ?parallel:int -> stage:Stage.t -> name:string -> string list -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 1464b7a8bea0..f93d0d5e3b13 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -178,6 +178,7 @@ let enc_job : job -> value = when_; coverage; retry; + parallel; } -> obj_flatten [ @@ -200,6 +201,7 @@ let enc_job : job -> value = opt "when" enc_when when_; opt "coverage" string coverage; opt "retry" int retry; + opt "parallel" int parallel; ] let enc_includes : include_ list -> value = diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index ee1abf4a93f7..953d7f6df207 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -103,6 +103,7 @@ type job = { when_ : when_ option; coverage : string option; retry : int option; + parallel : int option; } type workflow = {rules : workflow_rule list; name : string option} -- GitLab From 54a2a3346fd92e8e0d99d176a367a74961f66a3a Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 16:32:53 +0100 Subject: [PATCH 029/134] CI-in-OCaml: make [image] mandatory, make it possible to override tags --- ci/bin/tezos_ci.ml | 13 ++++++++----- ci/bin/tezos_ci.mli | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 4fc18a9821b0..a8b8976ae274 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -99,11 +99,14 @@ let enc_git_strategy = function | No_strategy -> "none" let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script - ?cache ?image ?interruptible ?(dependencies = Staged) ?services ?variables - ?rules ?timeout ?(tags = []) ?git_strategy ?when_ ?coverage ?retry ?parallel - ~stage ~name script : Gitlab_ci.Types.job = + ?cache ?interruptible ?(dependencies = Staged) ?services ?variables ?rules + ?timeout ?tags ?git_strategy ?when_ ?coverage ?retry ?parallel ~image ~stage + ~name script : Gitlab_ci.Types.job = let tags = - Some ((match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64") :: tags) + Some + (match tags with + | None -> [(match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64")] + | Some tags -> tags) in let stage = Some (Stage.name stage) in let script = Some script in @@ -150,7 +153,7 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script artifacts; before_script; cache; - image; + image = Some image; interruptible; needs; dependencies; diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index c17f0844606c..18bffd8e65b8 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -124,7 +124,6 @@ val job : ?artifacts:Gitlab_ci.Types.artifacts -> ?before_script:string list -> ?cache:Gitlab_ci.Types.cache list -> - ?image:Image.t -> ?interruptible:bool -> ?dependencies:dependencies -> ?services:Gitlab_ci.Types.service list -> @@ -137,6 +136,7 @@ val job : ?coverage:string -> ?retry:int -> ?parallel:int -> + image:Image.t -> stage:Stage.t -> name:string -> string list -> -- GitLab From 1165e99f5f15f039650ce5246cf9b17bee181b03 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 12:54:13 +0100 Subject: [PATCH 030/134] fixup! better name for [If.show_var], document and reorder constructors --- ci/lib_gitlab_ci/if.ml | 12 ++++++------ ci/lib_gitlab_ci/if.mli | 8 +++++--- ci/lib_gitlab_ci/predefined_vars.ml | 2 +- ci/lib_gitlab_ci/predefined_vars.mli | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ci/lib_gitlab_ci/if.ml b/ci/lib_gitlab_ci/if.ml index 32578419e9e5..5bd8cc85d7ea 100644 --- a/ci/lib_gitlab_ci/if.ml +++ b/ci/lib_gitlab_ci/if.ml @@ -9,7 +9,7 @@ open Base type var = Var of string -let show_var = function Var n -> "$" ^ n +let encode_var = function Var n -> "$" ^ n type term = Str of string | Null @@ -17,9 +17,9 @@ 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) - | Neq of (var * term) let rec encode expr = let prio = function @@ -45,10 +45,10 @@ let rec encode expr = 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" (show_var a) (encode_term b) - | Neq (a, b) -> sf "%s != %s" (show_var a) (encode_term b) - | Match (a, b) -> sf "%s =~ %s" (show_var a) b - | Unmatch (a, b) -> sf "%s !~ %s" (show_var a) 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 diff --git a/ci/lib_gitlab_ci/if.mli b/ci/lib_gitlab_ci/if.mli index 3e61a406a132..58b5f288db1b 100644 --- a/ci/lib_gitlab_ci/if.mli +++ b/ci/lib_gitlab_ci/if.mli @@ -8,11 +8,13 @@ (** Predicates for GitLab [if:] expression, as used in [rules:] clauses. *) type t -(** TODO *) +(** Variables for GitLab [if:] expressions. *) type var -(** TODO *) -val show_var : var -> string +(** 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 diff --git a/ci/lib_gitlab_ci/predefined_vars.ml b/ci/lib_gitlab_ci/predefined_vars.ml index 631ad550e37a..5e9a9f690cad 100644 --- a/ci/lib_gitlab_ci/predefined_vars.ml +++ b/ci/lib_gitlab_ci/predefined_vars.ml @@ -7,7 +7,7 @@ open If -let show = If.show_var +let show = If.encode_var let chat_channel = var "CHAT_CHANNEL" diff --git a/ci/lib_gitlab_ci/predefined_vars.mli b/ci/lib_gitlab_ci/predefined_vars.mli index 1ed8c3a56c80..f22cc7b813ae 100644 --- a/ci/lib_gitlab_ci/predefined_vars.mli +++ b/ci/lib_gitlab_ci/predefined_vars.mli @@ -13,7 +13,7 @@ (** String representation of a variable with the sigil-sign. - A handy alias of [If.show_var]. *) + A handy alias of [If.encode_var]. *) val show : If.var -> string (** Corresponds to [CHAT_CHANNEL]. -- GitLab From a6e330c3975f98c1343a8f2fa87871400402ba74 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 12:54:33 +0100 Subject: [PATCH 031/134] fixup! CI-in-OCaml: tweak encoding of unitary [cache:] fields --- ci/lib_gitlab_ci/to_yaml.ml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index f93d0d5e3b13..500f3a0f5dd1 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -19,6 +19,11 @@ 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 -- GitLab From 199a8f76b8c8c2522dcda8f41589784933c8af93 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 13:10:36 +0100 Subject: [PATCH 032/134] fixup! document [Rules.has_mr_label] --- ci/bin/rules.mli | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/bin/rules.mli b/ci/bin/rules.mli index 07237acc3c8a..baebb0b57fe5 100644 --- a/ci/bin/rules.mli +++ b/ci/bin/rules.mli @@ -44,7 +44,7 @@ val has_tag_match : string -> If.t (** A rule that is true if [CI_COMMIT_TAG] is defined but does not matches the given regexp. *) val has_tag_not_match : string -> If.t -(** TODO *) +(** A rule that is true if the comma-separated list [CI_MERGE_REQUEST_LABELS] a given label. *) val has_mr_label : string -> If.t (** A rule that is true if [CI_MERGE_REQUEST_ASSIGNEES] contains [nomadic-margebot]. *) -- GitLab From c74d163db8e37c2d2f94f99dcb15684ff1c98389 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 13:10:48 +0100 Subject: [PATCH 033/134] fixup! document [Rules.schedule_extended_tests] --- ci/bin/rules.mli | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ci/bin/rules.mli b/ci/bin/rules.mli index baebb0b57fe5..41c549dd0a1a 100644 --- a/ci/bin/rules.mli +++ b/ci/bin/rules.mli @@ -23,7 +23,10 @@ val push : If.t (** A rule that is true if [CI_PIPELINE_SOURCE] is [scheduled]. *) val scheduled : If.t -(** TODO: *) +(** 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. *) -- GitLab From 9c91397c0e51e1f89a76db93ddf75ded9f05976e Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 13:54:38 +0100 Subject: [PATCH 034/134] fixup! Replace [Tezos_ci.Independent] with [Dependent []] --- ci/bin/tezos_ci.ml | 6 ++---- ci/bin/tezos_ci.mli | 6 +++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index a8b8976ae274..3ccab51a9137 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -89,7 +89,7 @@ type dependency = | Job of Gitlab_ci.Types.job | Artifacts of Gitlab_ci.Types.job -type dependencies = Staged | Independent | Dependent of dependency list +type dependencies = Staged | Dependent of dependency list type git_strategy = Fetch | Clone | No_strategy @@ -113,9 +113,7 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script let needs, dependencies = match dependencies with | Staged -> (None, Some []) - | Independent -> (Some [], Some []) | Dependent dependencies -> - let to_opt = function [] -> None | xs -> Some xs in let rec loop (needs, dependencies) = function | Job j :: deps -> loop (j.name :: needs, dependencies) deps | Artifacts j :: deps -> @@ -125,7 +123,7 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script fetch no dependencies by default ([dependencies = Some []]), whereas the absence of [dependencies = None] would fetch all the dependencies of the preceding jobs. *) - (to_opt @@ List.rev needs, Some (List.rev dependencies)) + (Some (List.rev needs), Some (List.rev dependencies)) in loop ([], []) dependencies in diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 18bffd8e65b8..4be243500195 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -85,9 +85,9 @@ type dependency = - A [Staged] job implements the default GitLab CI behavior of running once all jobs in the previous stage have terminated. - - An [Independent] job runs immediately, regardless of its stage. This corresponds to setting [needs: []]. - - An [Dependent deps] job runs once all the jobs in [deps] have terminated. *) -type dependencies = Staged | Independent | Dependent of dependency list + - An [Dependent deps] job runs once all the jobs in [deps] have terminated. + To have a job run immediately, set [Dependent []] *) +type dependencies = Staged | Dependent of dependency list (** Values for the [GIT_STRATEGY] variable. -- GitLab From d52cc6719ee0a79ec6e02fd5c5032ea07fb301c5 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 14:04:51 +0100 Subject: [PATCH 035/134] fixup! remove commented out [let var] --- ci/lib_gitlab_ci/if.ml | 2 -- 1 file changed, 2 deletions(-) diff --git a/ci/lib_gitlab_ci/if.ml b/ci/lib_gitlab_ci/if.ml index 5bd8cc85d7ea..72b46809ba1a 100644 --- a/ci/lib_gitlab_ci/if.ml +++ b/ci/lib_gitlab_ci/if.ml @@ -52,8 +52,6 @@ let rec encode expr = let var n = Var n -(* let var n = n *) - let eq a b = Eq (a, b) let neq a b = Neq (a, b) -- GitLab From 43629ee14d1214c30ead9503b3633b9256de69c9 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 14:12:39 +0100 Subject: [PATCH 036/134] fixup! Clarify the [coverage:] fields in jobs --- ci/lib_gitlab_ci/types.ml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 953d7f6df207..9c32c61fbfa2 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -102,6 +102,15 @@ type job = { tags : string list option; when_ : when_ 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; } -- GitLab From 211c835c1a05a32a907a72cd170aaa7daef34194 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 14:14:24 +0100 Subject: [PATCH 037/134] fixup! document [Util.reports] --- ci/lib_gitlab_ci/util.mli | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index 092ced7dc139..cb970e699dbe 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -64,6 +64,11 @@ val artifacts : 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 -> -- GitLab From d05b499c1c82d0a23a9cfccd078a44564a7f5cde Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 14:20:27 +0100 Subject: [PATCH 038/134] fixup! improve [retry] error message --- ci/bin/tezos_ci.ml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 3ccab51a9137..3182074bd3e2 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -139,8 +139,7 @@ let job ?(arch = Amd64) ?after_script ?allow_failure ?artifacts ?before_script | Some retry when retry < 0 || retry > 2 -> failwith (sf - "Invalid [retry] value '%d' for job [%s]: retry greater or equal to \ - zero and less than or equal to 2" + "Invalid [retry] value '%d' for job [%s]: must be 0, 1 or 2." retry name) | _ -> ()) ; -- GitLab From 3e6500f0d9531102a32a9b377e37ee76886a0d6f Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 14:27:44 +0100 Subject: [PATCH 039/134] fixup! clarify [arch] and [tags] in [jobs] --- ci/bin/tezos_ci.ml | 21 ++++++++++++++------- ci/bin/tezos_ci.mli | 10 +++++++++- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 3182074bd3e2..4e6f31659254 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -98,15 +98,22 @@ let enc_git_strategy = function | Clone -> "clone" | No_strategy -> "none" -let job ?(arch = Amd64) ?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 = +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 = let tags = Some - (match tags with - | None -> [(match arch with Amd64 -> "gcp" | Arm64 -> "gcp_arm64")] - | Some tags -> tags) + (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 let stage = Some (Stage.name stage) in let script = Some script in diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 4be243500195..a86c7b7971af 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -116,7 +116,15 @@ val enc_git_strategy : git_strategy -> string - Translates each {!dependency} to [needs:] and [dependencies:] keywords as detailed in the documentation of {!dependency}. - - Adds [tags:] based on [arch]. *) + - 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]. *) val job : ?arch:arch -> ?after_script:string list -> -- GitLab From 3f796159ccfa7107c121f7036efa77836ca484db Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 14:51:23 +0100 Subject: [PATCH 040/134] fixup! put [start_in] in [Delayed] --- ci/lib_gitlab_ci/to_yaml.ml | 7 +++++-- ci/lib_gitlab_ci/types.ml | 13 ++++++------- ci/lib_gitlab_ci/util.ml | 12 ++---------- ci/lib_gitlab_ci/util.mli | 1 - 4 files changed, 13 insertions(+), 20 deletions(-) diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 500f3a0f5dd1..18837482bbaa 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -43,7 +43,7 @@ let enc_when : when_ -> value = function | Never -> `String "never" | On_success -> `String "on_success" | Manual -> `String "manual" - | Delayed -> `String "delayed" + | Delayed _ -> `String "delayed" let enc_when_workflow : when_workflow -> value = function | Always -> `String "always" @@ -83,7 +83,10 @@ let enc_time_interval interval = | Years x -> string_of_int x ^ " years") let enc_job_rule : job_rule -> value = - fun {changes; if_; variables; when_; allow_failure; start_in} -> + 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; diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 9c32c61fbfa2..a6c1b207ab19 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -11,12 +11,6 @@ type variables = (string * string) list -(** Represents values of the [when:] field in job rules. *) -type when_ = Always | Never | On_success | Manual | Delayed - -(** Represents values of the [when:] field in [workflow:] and [include:] rules. *) -type when_workflow = Always | Never - type time_interval = | Seconds of int | Minutes of int @@ -26,6 +20,12 @@ type time_interval = | 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 in [workflow:] and [include:] rules. *) +type when_workflow = Always | Never + (** Represents a job rule. *) type job_rule = { changes : string list option; @@ -33,7 +33,6 @@ type job_rule = { variables : variables option; when_ : when_; allow_failure : bool option; - start_in : time_interval option; } (** Represents a workflow rule. *) diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index eed931f2a78a..43c78d0a161e 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -10,16 +10,8 @@ open Types let default ?image ?interruptible () : default = {image; interruptible} let job_rule ?changes ?if_ ?variables ?(when_ : when_ = On_success) - ?allow_failure ?start_in () : job_rule = - (* Alternatively, this restriction can be encoded in the type system - by making [start_in] a parameter of the [Delayed] constructor. - However, that would be a step away from Octez-agnosticism of [lib_gitlab_ci]. *) - (match (start_in, when_) with - | None, _ -> () - | Some _, Delayed -> () - | Some _, _ -> - failwith "[job_rule] cannot set [start_in] if [when_] is not [Delayed]") ; - {changes; if_; variables; when_; allow_failure; start_in} + ?allow_failure () : job_rule = + {changes; if_; variables; when_; allow_failure} let workflow_rule ?changes ?if_ ?variables ?(when_ : when_workflow = Always) () : workflow_rule = diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index cb970e699dbe..ae58528fe74d 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -21,7 +21,6 @@ val job_rule : ?variables:variables -> ?when_:when_ -> ?allow_failure:bool -> - ?start_in:time_interval -> unit -> job_rule -- GitLab From cc2995d1f45548f86595e48b564dd24c66382ef9 Mon Sep 17 00:00:00 2001 From: Romain Date: Tue, 16 Jan 2024 12:51:13 +0000 Subject: [PATCH 041/134] Apply 1 suggestion(s) to 1 file(s) --- ci/lib_gitlab_ci/util.mli | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index ae58528fe74d..4a332015b487 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -53,7 +53,9 @@ val include_rule : - [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]. *) + - [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 -> -- GitLab From 7505bbea24e001205c2bc2e54467550153830c58 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 12:56:06 +0100 Subject: [PATCH 042/134] CI: add [If.not], clean up the rules for release_tag pipelines --- .gitlab-ci.yml | 20 ++++++++++++-------- ci/bin/main.ml | 17 +++++++++++------ ci/bin/rules.ml | 3 --- ci/bin/rules.mli | 5 +---- ci/lib_gitlab_ci/if.ml | 8 ++++++++ ci/lib_gitlab_ci/if.mli | 9 +++++++++ 6 files changed, 41 insertions(+), 21 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 23c5c6044e11..acc1be5c8be8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,18 +33,20 @@ workflow: variables: PIPELINE_TYPE: beta_release_tag when: always - - if: $CI_PROJECT_NAMESPACE != "tezos" && $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_TAG - =~ /^v\d+\.\d+(?:\-(rc|beta)\d*)?$/ + - 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|beta)\d*)?$/ + != 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|beta)\d*)?$/ + != 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 @@ -129,18 +131,20 @@ include: 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|beta)\d*)?$/ + - 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|beta)\d*)?$/ + != 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|beta)\d*)?$/ + != 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: diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 194ec9cb05b5..f1b80dbe6285 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -207,11 +207,16 @@ let () = 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 - (* Matches either release tags or beta release tags, e.g. [v1.2.3], - [v1.2.3-rc4] or [v1.2.3-beta5]. *) - let any_release_tag_re = "/^v\\d+\\.\\d+(?:\\-(rc|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) ; register "latest_release" @@ -228,13 +233,13 @@ let () = If.(on_tezos_namespace && push && has_tag_match beta_release_tag_re) ; register "release_tag_test" - If.(not_on_tezos_namespace && push && has_tag_match any_release_tag_re) ; + If.(not_on_tezos_namespace && push && has_any_release_tag) ; register "non_release_tag" - If.(on_tezos_namespace && push && has_tag_not_match any_release_tag_re) ; + If.(on_tezos_namespace && push && has_non_release_tag) ; register "non_release_tag_test" - If.(not_on_tezos_namespace && push && has_tag_not_match any_release_tag_re) ; + If.(not_on_tezos_namespace && push && has_non_release_tag) ; register "schedule_extended_test" schedule_extended_tests (* Split pipelines and writes image templates *) diff --git a/ci/bin/rules.ml b/ci/bin/rules.ml index cb02d6cb9425..1b10fca817b7 100644 --- a/ci/bin/rules.ml +++ b/ci/bin/rules.ml @@ -40,9 +40,6 @@ let not_on_tezos_namespace = Predefined_vars.ci_project_namespace != str "tezos" let has_tag_match tag = Predefined_vars.ci_commit_tag =~ tag -let has_tag_not_match tag = - Predefined_vars.(ci_commit_tag != null && ci_commit_tag =~! tag) - let assigned_to_marge_bot = Predefined_vars.ci_merge_request_assignees =~! "/nomadic-margebot/" diff --git a/ci/bin/rules.mli b/ci/bin/rules.mli index 41c549dd0a1a..46ee256776a1 100644 --- a/ci/bin/rules.mli +++ b/ci/bin/rules.mli @@ -41,12 +41,9 @@ 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] is defined and matches the given regexp. *) +(** 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 [CI_COMMIT_TAG] is defined but does not matches the given regexp. *) -val has_tag_not_match : string -> If.t - (** A rule that is true if the comma-separated list [CI_MERGE_REQUEST_LABELS] a given label. *) val has_mr_label : string -> If.t diff --git a/ci/lib_gitlab_ci/if.ml b/ci/lib_gitlab_ci/if.ml index 72b46809ba1a..c09542c9bfd3 100644 --- a/ci/lib_gitlab_ci/if.ml +++ b/ci/lib_gitlab_ci/if.ml @@ -79,3 +79,11 @@ 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 index 58b5f288db1b..ed0cf8f67edc 100644 --- a/ci/lib_gitlab_ci/if.mli +++ b/ci/lib_gitlab_ci/if.mli @@ -56,3 +56,12 @@ val ( =~ ) : var -> string -> t 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 -- GitLab From 6d4045eeabc396e1b72303531a677fd6ebfae8de Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 17 Jan 2024 08:25:34 +0100 Subject: [PATCH 043/134] fixup! [Rules.has_mr_label] missing word --- ci/bin/rules.mli | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/bin/rules.mli b/ci/bin/rules.mli index 46ee256776a1..71a4f33e1d66 100644 --- a/ci/bin/rules.mli +++ b/ci/bin/rules.mli @@ -44,7 +44,7 @@ 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] a given label. *) +(** 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]. *) -- GitLab From e796707e0b76c94b784991deb456cb63c7195e49 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 17 Jan 2024 09:42:45 +0100 Subject: [PATCH 044/134] fixup! spelling error --- ci/lib_gitlab_ci/to_yaml.mli | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/lib_gitlab_ci/to_yaml.mli b/ci/lib_gitlab_ci/to_yaml.mli index 1fc04b62bc34..9a1013210cfd 100644 --- a/ci/lib_gitlab_ci/to_yaml.mli +++ b/ci/lib_gitlab_ci/to_yaml.mli @@ -5,10 +5,10 @@ (* *) (*****************************************************************************) -(** The YAML reprenstation of a GitLab CI configuration. *) +(** The YAML representation of a GitLab CI configuration. *) val to_yaml : Types.config -> Yaml.value -(** Writes the YAML reprenstation of a GitLab CI configuration to a file. +(** 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 -- GitLab From c59cfbd855def3761d4207d82cbffe1462e36c6f Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 17 Jan 2024 09:42:57 +0100 Subject: [PATCH 045/134] fixup! the when: field of jobs cannot be never --- ci/bin/tezos_ci.mli | 2 +- ci/lib_gitlab_ci/to_yaml.ml | 7 ++++++- ci/lib_gitlab_ci/types.ml | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index a86c7b7971af..0d54030c65a4 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -140,7 +140,7 @@ val job : ?timeout:Gitlab_ci.Types.time_interval -> ?tags:string list -> ?git_strategy:git_strategy -> - ?when_:Gitlab_ci.Types.when_ -> + ?when_:Gitlab_ci.Types.when_job -> ?coverage:string -> ?retry:int -> ?parallel:int -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 18837482bbaa..3cf06b1739c6 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -54,6 +54,11 @@ let enc_when_artifact : when_artifact -> value = function | 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 @@ -206,7 +211,7 @@ let enc_job : job -> value = opt "services" enc_services services; opt "variables" enc_variables variables; opt "artifacts" enc_artifacts artifacts; - opt "when" enc_when when_; + opt "when" enc_when_job when_; opt "coverage" string coverage; opt "retry" int retry; opt "parallel" int parallel; diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index a6c1b207ab19..9d868bf1873e 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -23,6 +23,9 @@ type time_interval = (** 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 @@ -99,7 +102,7 @@ type job = { variables : variables option; timeout : time_interval option; tags : string list option; - when_ : when_ option; + when_ : when_job option; coverage : string option; (** Note: the job field [coverage] is not to be confused with {!coverage_report}. -- GitLab From d25b722bc5507146e96b14a3656bf9230195f8ef Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 17 Jan 2024 09:45:48 +0100 Subject: [PATCH 046/134] fixup! [Tezos_ci.job] complain if [~rules] and [~when] are combined --- ci/bin/tezos_ci.ml | 6 ++++++ ci/bin/tezos_ci.mli | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 4e6f31659254..54e3ce1b187d 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -102,6 +102,12 @@ 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 -- it's \ + confusing." + | _ -> ()) ; let tags = Some (match (arch, tags) with diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 0d54030c65a4..10bd572c2194 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -124,7 +124,11 @@ val enc_git_strategy : git_strategy -> string field. - Setting both [arch] and [tags] throws an error. - Omitting both [arch] and [tags] is equivalent to setting - [~arch:Amd64] and omitting [tags]. *) + [~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 -> -- GitLab From c101b876d10b4a412f7579e94a3566a314a92569 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 19 Jan 2024 11:42:36 +0100 Subject: [PATCH 047/134] fixup! move [generation_header] to [Tezos_ci.generation_header] --- ci/bin/main.ml | 10 ++-------- ci/bin/tezos_ci.ml | 6 ++++++ ci/bin/tezos_ci.mli | 5 +++++ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ci/bin/main.ml b/ci/bin/main.ml index f1b80dbe6285..d0fdb498e492 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -15,12 +15,6 @@ open Gitlab_ci.Types open Gitlab_ci.Util open Tezos_ci -let generation_header = - {|# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -|} - (* Sets up the [default:] top-level configuration element. *) let default = default ~interruptible:true () @@ -258,7 +252,7 @@ let config = (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:generation_header filename config ; + Base.write_yaml ~header:Tezos_ci.header filename config ; {local = filename; rules = []} in let includes = @@ -277,4 +271,4 @@ let config = let () = let filename = Base.(project_root // ".gitlab-ci.yml") in - To_yaml.to_file ~header:generation_header ~filename config + To_yaml.to_file ~header:Tezos_ci.header ~filename config diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 54e3ce1b187d..69027199cbbb 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -1,5 +1,11 @@ open Gitlab_ci.Util +let header = + {|# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +|} + module Stage = struct type t = Stage of string diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 10bd572c2194..b3f6a75c5e64 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -5,6 +5,11 @@ (* *) (*****************************************************************************) +(* 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 *) -- GitLab From cd6db804339af3180b2d0f8475f0e5c642562504 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 19 Jan 2024 11:45:27 +0100 Subject: [PATCH 048/134] fixup! more explicit handling of manual, blocking jobs --- .gitlab-ci.yml | 1 + ci/bin/main.ml | 3 ++- ci/lib_gitlab_ci/util.ml | 10 ++++++++++ ci/lib_gitlab_ci/util.mli | 9 ++++++++- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index acc1be5c8be8..04faff228f07 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -89,6 +89,7 @@ trigger: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_ASSIGNEES !~ /nomadic-margebot/ when: manual + allow_failure: false - when: always dependencies: [] allow_failure: false diff --git a/ci/bin/main.ml b/ci/bin/main.ml index d0fdb498e492..ed1faa004593 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -181,7 +181,8 @@ let trigger = [ job_rule ~if_:If.(Rules.(merge_request && assigned_to_marge_bot)) - ~when_:Manual + ~when_:Manual (* Explicit [allow_failure] to make this job blocking *) + ~allow_failure:false (); job_rule ~when_:Always (); ] diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index 43c78d0a161e..94596b1d70dc 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -11,6 +11,16 @@ 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 true + | _ -> allow_failure + in {changes; if_; variables; when_; allow_failure} let workflow_rule ?changes ?if_ ?variables ?(when_ : when_workflow = Always) () diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index 4a332015b487..9710dd5b1405 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -14,7 +14,14 @@ val default : ?image:image -> ?interruptible:bool -> unit -> default (** Constructs a job rule. - [when_] defaults to [On_success]. *) + [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 -> -- GitLab From 1f32f0683a6fc4478ceb227e1fc7d270227fcc6c Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 11:51:12 +0100 Subject: [PATCH 049/134] fixup! CI-in-OCaml: a jobs [allow_failure] allow [With_exit_codes] --- ci/bin/main.ml | 4 ++-- ci/bin/tezos_ci.mli | 2 +- ci/lib_gitlab_ci/to_yaml.ml | 13 +++++++++++-- ci/lib_gitlab_ci/types.ml | 13 +++++++++++-- ci/lib_gitlab_ci/util.ml | 2 +- ci/lib_gitlab_ci/util.mli | 2 +- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ci/bin/main.ml b/ci/bin/main.ml index ed1faa004593..e2b30caefeee 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -182,11 +182,11 @@ let trigger = job_rule ~if_:If.(Rules.(merge_request && assigned_to_marge_bot)) ~when_:Manual (* Explicit [allow_failure] to make this job blocking *) - ~allow_failure:false + ~allow_failure:No (); job_rule ~when_:Always (); ] - ~allow_failure:false + ~allow_failure:No ~timeout:(Minutes 10) ~name:"trigger" ~git_strategy:No_strategy diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index b3f6a75c5e64..b24d5501f90f 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -137,7 +137,7 @@ val enc_git_strategy : git_strategy -> string val job : ?arch:arch -> ?after_script:string list -> - ?allow_failure:bool -> + ?allow_failure:Gitlab_ci.Types.allow_failure_job -> ?artifacts:Gitlab_ci.Types.artifacts -> ?before_script:string list -> ?cache:Gitlab_ci.Types.cache list -> diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 3cf06b1739c6..ec620439eb49 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -69,6 +69,9 @@ let enc_workflow_rule : workflow_rule -> value = 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 @@ -98,7 +101,7 @@ let enc_job_rule : job_rule -> value = opt "if" enc_if if_; opt "variables" enc_variables variables; key "when" enc_when when_; - opt "allow_failure" bool allow_failure; + opt "allow_failure" enc_allow_failure_rule allow_failure; opt "start_in" enc_time_interval start_in; ] @@ -169,6 +172,12 @@ 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_job : job -> value = fun { name = _; @@ -201,7 +210,7 @@ let enc_job : job -> value = opt "rules" enc_job_rules rules; opt "needs" strings needs; opt "dependencies" strings dependencies; - opt "allow_failure" bool allow_failure; + 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; diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 9d868bf1873e..9fc2f51fc1cc 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -29,13 +29,22 @@ 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 : bool option; + allow_failure : allow_failure_rule option; } (** Represents a workflow rule. *) @@ -87,7 +96,7 @@ type job = { (** 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 : bool option; + allow_failure : allow_failure_job option; artifacts : artifacts option; before_script : string list option; cache : cache list option; diff --git a/ci/lib_gitlab_ci/util.ml b/ci/lib_gitlab_ci/util.ml index 94596b1d70dc..8419049fae49 100644 --- a/ci/lib_gitlab_ci/util.ml +++ b/ci/lib_gitlab_ci/util.ml @@ -18,7 +18,7 @@ let job_rule ?changes ?if_ ?variables ?(when_ : when_ = On_success) explicitly. *) let allow_failure = match (when_, allow_failure) with - | Manual, None -> Some true + | Manual, None -> Some Yes | _ -> allow_failure in {changes; if_; variables; when_; allow_failure} diff --git a/ci/lib_gitlab_ci/util.mli b/ci/lib_gitlab_ci/util.mli index 9710dd5b1405..866cc02c12f6 100644 --- a/ci/lib_gitlab_ci/util.mli +++ b/ci/lib_gitlab_ci/util.mli @@ -27,7 +27,7 @@ val job_rule : ?if_:If.t -> ?variables:variables -> ?when_:when_ -> - ?allow_failure:bool -> + ?allow_failure:allow_failure_rule -> unit -> job_rule -- GitLab From f1ff2fedb1f0c3e925cb3f1bb161d319613dd919 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 17:18:17 +0100 Subject: [PATCH 050/134] fixup! CI-in-OCaml: add optional dependencies --- ci/bin/tezos_ci.ml | 17 +++++++++++++++-- ci/bin/tezos_ci.mli | 6 ++++++ ci/lib_gitlab_ci/to_yaml.ml | 14 +++++++++++++- ci/lib_gitlab_ci/types.ml | 4 +++- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 69027199cbbb..4fb4f5d26f6e 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -93,6 +93,7 @@ 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 | Dependent of dependency list @@ -134,9 +135,21 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache | Staged -> (None, Some []) | Dependent dependencies -> let rec loop (needs, dependencies) = function - | Job j :: deps -> loop (j.name :: needs, dependencies) deps + | Job j :: deps -> + loop + ( Gitlab_ci.Types.{job = j.name; optional = false} :: needs, + dependencies ) + deps + | Optional j :: deps -> + loop + ( Gitlab_ci.Types.{job = j.name; optional = true} :: needs, + dependencies ) + deps | Artifacts j :: deps -> - loop (j.name :: needs, j.name :: dependencies) deps + loop + ( Gitlab_ci.Types.{job = j.name; optional = false} :: needs, + j.name :: dependencies ) + deps | [] -> (* Note that [dependencies] is always filled, because we want to fetch no dependencies by default ([dependencies = Some diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index b24d5501f90f..cde47b764898 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -80,10 +80,16 @@ type arch = Amd64 | Arm64 - 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. diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index ec620439eb49..8d9bf205babd 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -178,6 +178,18 @@ let enc_allow_failure_job (allow_failure : allow_failure_job) : value = | 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 = _; @@ -208,7 +220,7 @@ let enc_job : job -> value = opt "stage" string stage; opt "tags" (array string) tags; opt "rules" enc_job_rules rules; - opt "needs" strings needs; + opt "needs" enc_needs needs; opt "dependencies" strings dependencies; opt "allow_failure" enc_allow_failure_job allow_failure; opt "timeout" enc_time_interval timeout; diff --git a/ci/lib_gitlab_ci/types.ml b/ci/lib_gitlab_ci/types.ml index 9fc2f51fc1cc..5ef64876be51 100644 --- a/ci/lib_gitlab_ci/types.ml +++ b/ci/lib_gitlab_ci/types.ml @@ -91,6 +91,8 @@ 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 @@ -102,7 +104,7 @@ type job = { cache : cache list option; image : image option; interruptible : bool option; - needs : string list option; + needs : need list option; dependencies : string list option; rules : job_rule list option; script : string list option; -- GitLab From ad923676ddd8490c12aa3707332ab58c7787f32b Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 18:22:57 +0100 Subject: [PATCH 051/134] fixup! add [range] to [base.ml] --- ci/lib_gitlab_ci/base.ml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ci/lib_gitlab_ci/base.ml b/ci/lib_gitlab_ci/base.ml index 0fd014dee89b..0fa953d07a7d 100644 --- a/ci/lib_gitlab_ci/base.ml +++ b/ci/lib_gitlab_ci/base.ml @@ -60,3 +60,9 @@ let write_yaml ?(header = "") filename yaml = ("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 -- GitLab From 66c0c57925ae28e2b3c7a8b76517f5d8efebeeb6 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 18:23:16 +0100 Subject: [PATCH 052/134] fixup! handle [parallel:] jobs in [Tezos_ci.job] --- ci/bin/tezos_ci.ml | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 4fb4f5d26f6e..924b00a541f7 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -130,26 +130,41 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache 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." ; let needs, dependencies = match dependencies with | Staged -> (None, Some []) | Dependent dependencies -> let rec loop (needs, dependencies) = function - | Job j :: deps -> - loop - ( Gitlab_ci.Types.{job = j.name; optional = false} :: needs, - dependencies ) - deps - | Optional j :: deps -> - loop - ( Gitlab_ci.Types.{job = j.name; optional = true} :: needs, - dependencies ) - deps - | Artifacts j :: deps -> - loop - ( Gitlab_ci.Types.{job = j.name; optional = false} :: needs, - j.name :: dependencies ) - deps + | dep :: deps -> + let job_expanded = + match dep with + | Job j | Optional j | Artifacts j -> ( + match j with + | Gitlab_ci.Types.{name; parallel; _} -> ( + match parallel with + | None -> [name] + | Some n -> + List.rev + @@ List.map + (fun i -> sf "%s %d/%d" name i n) + (range 1 n))) + 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 -- GitLab From 1a6839386f37d46e79c216c5f255e33941d12b23 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 25 Jan 2024 08:28:03 +0100 Subject: [PATCH 053/134] fixup! add a printer for [Failure]s --- ci/bin/tezos_ci.ml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 924b00a541f7..6b4b47b3dd54 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -6,6 +6,8 @@ let header = |} +let () = Printexc.register_printer @@ function Failure s -> Some s | _ -> None + module Stage = struct type t = Stage of string -- GitLab From beb3aee5917d1e542d7f77cd10ea10c3dc0d3c98 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 25 Jan 2024 08:28:43 +0100 Subject: [PATCH 054/134] fixup! add kasprintf failwith helper --- ci/bin/tezos_ci.ml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 6b4b47b3dd54..6fc0d4af8e13 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -8,6 +8,8 @@ let header = 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 @@ -16,7 +18,7 @@ module Stage = struct let register name = let stage = Stage name in if List.mem stage !stages then - failwith (sf "[Stage.register] attempted to register stage %S twice" name) + failwith "[Stage.register] attempted to register stage %S twice" name else ( stages := stage :: !stages ; stage) @@ -39,7 +41,8 @@ module Pipeline = struct let pipeline : t = {variables; if_; name} in if List.exists (fun {name = name'; _} -> name' = name) !pipelines then failwith - (sf "[Pipeline.register] attempted to register pipeline %S twice" name) + "[Pipeline.register] attempted to register pipeline %S twice" + name else pipelines := pipeline :: !pipelines let all () = List.rev !pipelines @@ -81,7 +84,7 @@ module Image = struct let register ~name ~image_path = let image : t = Image image_path in if String_map.mem name !images then - failwith (sf "[Image.register] attempted to register image %S twice" name) + failwith "[Image.register] attempted to register image %S twice" name else ( images := String_map.add name image !images ; image) @@ -187,10 +190,9 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache (match retry with | Some retry when retry < 0 || retry > 2 -> failwith - (sf - "Invalid [retry] value '%d' for job [%s]: must be 0, 1 or 2." - retry - name) + "Invalid [retry] value '%d' for job [%s]: must be 0, 1 or 2." + retry + name | _ -> ()) ; { name; -- GitLab From bbbdf28bd1e967ca6996215939328673e5f2488e Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 25 Jan 2024 08:29:02 +0100 Subject: [PATCH 055/134] fixup! add a warning if the gitlab [needs:] limit is exceeded --- ci/bin/tezos_ci.ml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 6fc0d4af8e13..06c093ee2b12 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -179,6 +179,15 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache 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 -> -- GitLab From 9e822dd0fb7cf04de735912ac553101179f88966 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 25 Jan 2024 08:39:12 +0100 Subject: [PATCH 056/134] CI-in-OCaml: allow [Staged] jobs with artifact dependencies --- ci/bin/tezos_ci.ml | 30 +++++++++++++++--------------- ci/bin/tezos_ci.mli | 16 ++++++++++++---- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 06c093ee2b12..3d1752366d3c 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -101,7 +101,9 @@ type dependency = | Optional of Gitlab_ci.Types.job | Artifacts of Gitlab_ci.Types.job -type dependencies = Staged | Dependent of dependency list +type dependencies = + | Staged of Gitlab_ci.Types.job list + | Dependent of dependency list type git_strategy = Fetch | Clone | No_strategy @@ -111,9 +113,9 @@ let enc_git_strategy = function | 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 = + ?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 @@ -138,23 +140,21 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache if parallel = Some 0 then failwith "[job] the argument to [parallel] must be strictly positive." ; 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 -> (None, Some []) + | 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 -> ( - match j with - | Gitlab_ci.Types.{name; parallel; _} -> ( - match parallel with - | None -> [name] - | Some n -> - List.rev - @@ List.map - (fun i -> sf "%s %d/%d" name i n) - (range 1 n))) + | Job j | Optional j | Artifacts j -> List.rev (expand_job j) in let needs ~optional = List.map diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index cde47b764898..55e1e7c48036 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -94,11 +94,19 @@ type dependency = (** Job dependencies. - - A [Staged] job implements the default GitLab CI behavior of running once all - jobs in the previous stage have terminated. + - 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 []] *) -type dependencies = Staged | Dependent of dependency list + 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. -- GitLab From 1ebe19d1689642ffbfc49f1c21a963e85c1ef585 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 25 Jan 2024 08:31:32 +0100 Subject: [PATCH 057/134] fixup! better errors in tezos_ci.ml --- ci/bin/tezos_ci.ml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 3d1752366d3c..c411d51ca8f6 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -119,8 +119,9 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache (match (rules, when_) with | Some _, Some _ -> failwith - "[job] do not use [~when_] and [~rules] at the same time -- it's \ - confusing." + "[job] do not use [when_] and [rules] at the same time in job '%s' -- \ + it's confusing." + name | _ -> ()) ; let tags = Some @@ -133,12 +134,16 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache ["gcp"] | Some _, Some _ -> failwith - "[job] cannot specify both [arch] and [tags] at the same time.") + "[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." ; + 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; _} -> ( @@ -199,7 +204,7 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache (match retry with | Some retry when retry < 0 || retry > 2 -> failwith - "Invalid [retry] value '%d' for job [%s]: must be 0, 1 or 2." + "Invalid [retry] value '%d' for job '%s': must be 0, 1 or 2." retry name | _ -> ()) ; -- GitLab From 2c864282beef65d0a1fcc05841bf1907d11167b9 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 5 Jan 2024 18:19:39 +0100 Subject: [PATCH 058/134] CI-in-OCaml: can write generated pipelines with simple dependency check --- ci/bin/main.ml | 1 + ci/bin/tezos_ci.ml | 114 +++++++++++++++++++++++++++++++++++++++++--- ci/bin/tezos_ci.mli | 24 ++++++++-- 3 files changed, 128 insertions(+), 11 deletions(-) diff --git a/ci/bin/main.ml b/ci/bin/main.ml index e2b30caefeee..3f5e80e1b91f 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -261,6 +261,7 @@ let config = :: {local = ".gitlab/ci/jobs/shared/templates.yml"; rules = []} :: includes in + Pipeline.write () ; [ Workflow workflow; Default default; diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index c411d51ca8f6..0dd3b388a6a3 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -33,12 +33,18 @@ module Pipeline = struct 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 register ?variables name if_ = - let pipeline : t = {variables; if_; name} in + 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" @@ -47,10 +53,107 @@ module Pipeline = struct 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 -> + (* 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 ) ; + + () + + 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} -> + | {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 = @@ -59,13 +162,12 @@ module Pipeline = struct workflow_rule ~if_ ~variables ~when_:Always () in let include_of_pipeline = function - | {name; if_; variables = _} -> + | {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 = sf ".gitlab/ci/pipelines/%s.yml" name; rules = [rule]} + Gitlab_ci.Types.{local = filename ~name; rules = [rule]} in let pipelines = all () in let workflow = diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index 55e1e7c48036..a14d6de23156 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -36,14 +36,23 @@ module Pipeline : sig (* Register a pipeline. [register ?variables name rule] will register a pipeline [name] - that runs when [rule] is true. The pipeline is expected to be - defined in [.gitlab/ci/pipelines/NAME.yml] which will be included - from the top-level [.gitlab-ci.yml]. + 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]. *) + [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 -> string -> Gitlab_ci.If.t -> unit + ?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. @@ -52,6 +61,11 @@ module Pipeline : sig 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. -- GitLab From f589a3297ddd0d60418317cf445eebc8fbf7bdff Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 19 Jan 2024 14:15:16 +0100 Subject: [PATCH 059/134] fixup! tmp: add special handling for [trigger] in dependency analysis --- ci/bin/tezos_ci.ml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index 0dd3b388a6a3..b6b966d2fa36 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -110,6 +110,9 @@ module Pipeline = struct | Some _needed_job -> (* TODO: check rule implication *) () + | None when need = "trigger" -> + (* TODO: special handling for trigger *) + () | None -> (* TODO: handle optional needs *) failwith -- GitLab From 09929f568a0b53476e1ebf75bfbfc897bb74879c Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 5 Jan 2024 18:20:01 +0100 Subject: [PATCH 060/134] CI: generate [latest_release] and [latest_release_test] pipelines --- .../docker:promote_to_latest-release.yml | 9 ----- .../publish/docker:promote_to_latest-test.yml | 9 ----- .gitlab/ci/pipelines/latest_release.yml | 23 +++++++++-- .gitlab/ci/pipelines/latest_release_test.yml | 23 +++++++++-- ci/bin/main.ml | 38 +++++++++++++++++-- 5 files changed, 75 insertions(+), 27 deletions(-) delete mode 100644 .gitlab/ci/jobs/publish/docker:promote_to_latest-release.yml delete mode 100644 .gitlab/ci/jobs/publish/docker:promote_to_latest-test.yml 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 f89939c10ddb..000000000000 --- 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 bc9b55848b63..000000000000 --- 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/pipelines/latest_release.yml b/.gitlab/ci/pipelines/latest_release.yml index 31411020d226..2d7a9341453a 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: [] + script: + - ./scripts/ci/docker_promote_to_latest.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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 6e17a2fd4374..2f4e7a6cf274 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: [] + script: + - ./scripts/ci/docker_promote_to_latest.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + CI_DOCKER_HUB: "false" diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 3f5e80e1b91f..e142280df238 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -41,7 +41,7 @@ module Stages = struct let _publish_release_gitlab = Stage.register "publish_release_gitlab" - let _publish_release = Stage.register "publish_release" + let publish_release = Stage.register "publish_release" let _publish_package_gitlab = Stage.register "publish_package_gitlab" @@ -159,7 +159,7 @@ module Images = struct 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 = + let docker = Image.register ~name:"docker" ~image_path:"${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0" @@ -193,6 +193,36 @@ let trigger = (* 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 ~stage ~name script : job = + let docker_version = "24.0.6" in + job + ~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"] + (* 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 @@ -215,10 +245,12 @@ let () = register "before_merging" If.(on_tezos_namespace && merge_request) ; 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") ; + 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") ; register "release_tag" -- GitLab From 66feaf30598525ff32fe03f13ac8a5024ed44759 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 5 Jan 2024 19:48:17 +0100 Subject: [PATCH 061/134] CI-in-OCaml: allow the registration of external jobs --- ci/bin/tezos_ci.ml | 29 +++++++++++++++++++++++++++++ ci/bin/tezos_ci.mli | 16 ++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index b6b966d2fa36..cc14592f9122 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -336,3 +336,32 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?before_script ?cache 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) diff --git a/ci/bin/tezos_ci.mli b/ci/bin/tezos_ci.mli index a14d6de23156..d27361ab3a74 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -186,3 +186,19 @@ val job : 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. *) +val job_external : + ?directory:string -> + ?filename_suffix:string -> + Gitlab_ci.Types.job -> + Gitlab_ci.Types.job -- GitLab From 51df47afc85b01b84a6cf19e57c5b22ba2170730 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 5 Jan 2024 19:48:59 +0100 Subject: [PATCH 062/134] CI: generate static binary build jobs --- ...atic-arm64-linux-binaries-experimental.yml | 24 ++++-- ...ld:static-arm64-linux-binaries-release.yml | 24 ++++-- ...tic-x86_64-linux-binaries-experimental.yml | 39 +++++----- ...d:static-x86_64-linux-binaries-release.yml | 27 ++++--- ci/bin/main.ml | 74 ++++++++++++++++++- 5 files changed, 142 insertions(+), 46 deletions(-) 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 index 58c4c6a75b34..9b42a06374f3 100644 --- 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 @@ -1,10 +1,20 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# 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 + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + dependencies: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) variables: - ARCH: "arm64" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables + artifacts: + paths: + - octez-binaries/$ARCH/* 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 index 95d1f264bb2c..53bf715dba53 100644 --- 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 @@ -1,13 +1,21 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# 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 + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp_arm64 + dependencies: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) variables: - ARCH: "arm64" - EXECUTABLE_FILES: "script-inputs/released-executables" - # Extend the lifespan to prevent failure for external tools using artifacts. + ARCH: arm64 + EXECUTABLE_FILES: script-inputs/released-executables artifacts: expire_in: 90 days + paths: + - octez-binaries/$ARCH/* 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 index e92c95acd368..d619a7d3c201 100644 --- 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 @@ -1,23 +1,22 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# 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] + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) variables: - ARCH: "x86_64" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables + artifacts: + paths: + - octez-binaries/$ARCH/* 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 index 71cf90c68ade..235d4273c531 100644 --- 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 @@ -1,14 +1,23 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# 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] + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: build + tags: + - gcp + needs: + - trigger + dependencies: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) variables: - ARCH: "x86_64" - EXECUTABLE_FILES: "script-inputs/released-executables" - # Extend the lifespan to prevent failure for external tools using artifacts. + ARCH: x86_64 + EXECUTABLE_FILES: script-inputs/released-executables artifacts: expire_in: 90 days + paths: + - octez-binaries/$ARCH/* diff --git a/ci/bin/main.ml b/ci/bin/main.ml index e142280df238..d18db5d37aaa 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -27,7 +27,7 @@ module Stages = struct let _sanity = Stage.register "sanity" - let _build = Stage.register "build" + let build = Stage.register "build" let _test = Stage.register "test" @@ -126,7 +126,7 @@ module Images = struct ~image_path: "${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version}" - let _runtime_build_dependencies = + let runtime_build_dependencies = Image.register ~name:"runtime_build_dependencies" ~image_path: @@ -172,6 +172,22 @@ module Images = struct Image.register ~name:"alpine" ~image_path:("alpine:" ^ alpine_version) 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 + (* Define the [trigger] job *) let trigger = job @@ -223,6 +239,60 @@ let job_docker_promote_to_latest ~ci_docker_hub : job = ~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 + +let _job_static_arm64_experimental = + job_build_static_binaries ~external_:true ~arch:Arm64 () + +let _job_static_x86_64_experimental = + job_build_static_binaries ~external_:true ~arch:Amd64 ~needs_trigger:true () + (* 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 -- GitLab From 8305186f57fdedd6fdefe1e746c9a59a7ba6398b Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 9 Jan 2024 16:41:22 +0100 Subject: [PATCH 063/134] CI: generate Docker build jobs --- .../build/oc.docker:amd64-experimental.yml | 46 ++++- .../ci/jobs/build/oc.docker:amd64-release.yml | 45 ++++- .../ci/jobs/build/oc.docker:amd64-test.yml | 45 ++++- .../build/oc.docker:amd64-test_manual.yml | 29 +++- .../build/oc.docker:arm64-experimental.yml | 45 ++++- .../ci/jobs/build/oc.docker:arm64-release.yml | 45 ++++- .../ci/jobs/build/oc.docker:arm64-test.yml | 45 ++++- .../build/oc.docker:arm64-test_manual.yml | 28 ++- ci/bin/main.ml | 161 +++++++++++++++++- 9 files changed, 427 insertions(+), 62 deletions(-) diff --git a/.gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml b/.gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml index cfe08fb03555..2d0e775b297a 100644 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml +++ b/.gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml @@ -1,13 +1,43 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.docker:amd64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: build + tags: + - gcp + rules: + - if: $CI_COMMIT_BRANCH == "master" + when: on_success + - changes: + - scripts/**/* + - script-inputs/**/* + - src/**/* + - tezt/**/* + - vendors/**/* + - dune + - dune-project + - dune-workspace + - opam + - Makefile + - kernels.mk + - build.Dockerfile + - Dockerfile + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + dependencies: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: - IMAGE_ARCH_PREFIX: "amd64_" + 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" - DOCKER_BUILD_TARGET: "with-evm-artifacts" + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables diff --git a/.gitlab/ci/jobs/build/oc.docker:amd64-release.yml b/.gitlab/ci/jobs/build/oc.docker:amd64-release.yml index dbf019201b7c..7a05119461d2 100644 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-release.yml +++ b/.gitlab/ci/jobs/build/oc.docker:amd64-release.yml @@ -1,12 +1,43 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.docker:amd64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: build + tags: + - gcp + rules: + - if: $CI_COMMIT_BRANCH == "master" + when: on_success + - changes: + - scripts/**/* + - script-inputs/**/* + - src/**/* + - tezt/**/* + - vendors/**/* + - dune + - dune-project + - dune-workspace + - opam + - Makefile + - kernels.mk + - build.Dockerfile + - Dockerfile + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + dependencies: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: - IMAGE_ARCH_PREFIX: "amd64_" + 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" + 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 index d4cf2ee66b54..0d45e9df975e 100644 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-test.yml +++ b/.gitlab/ci/jobs/build/oc.docker:amd64-test.yml @@ -1,12 +1,43 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.docker:amd64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: build + tags: + - gcp + rules: + - if: $CI_COMMIT_BRANCH == "master" + when: on_success + - changes: + - scripts/**/* + - script-inputs/**/* + - src/**/* + - tezt/**/* + - vendors/**/* + - dune + - dune-project + - dune-workspace + - opam + - Makefile + - kernels.mk + - build.Dockerfile + - Dockerfile + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + dependencies: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: - IMAGE_ARCH_PREFIX: "amd64_" + 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" + 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 index e91083e18cda..e3e93e12a7e1 100644 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml +++ b/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml @@ -1,15 +1,26 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.docker:amd64: - extends: - - .oc.build_docker_release_template - - .tags_template__build + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: manual + tags: + - gcp + needs: [] + dependencies: [] + allow_failure: true + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: - IMAGE_ARCH_PREFIX: "amd64_" + 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" - DOCKER_BUILD_TARGET: "with-evm-artifacts" - needs: [] + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables 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 index 884cd596ab45..4c7a4fef664b 100644 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-experimental.yml +++ b/.gitlab/ci/jobs/build/oc.docker:arm64-experimental.yml @@ -1,12 +1,43 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.docker:arm64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build_arm64 + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_COMMIT_BRANCH == "master" + when: on_success + - changes: + - scripts/**/* + - script-inputs/**/* + - src/**/* + - tezt/**/* + - vendors/**/* + - dune + - dune-project + - dune-workspace + - opam + - Makefile + - kernels.mk + - build.Dockerfile + - Dockerfile + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + dependencies: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: - IMAGE_ARCH_PREFIX: "arm64_" + 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" + 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 index ee947b59a01e..90404df259e2 100644 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-release.yml +++ b/.gitlab/ci/jobs/build/oc.docker:arm64-release.yml @@ -1,12 +1,43 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.docker:arm64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build_arm64 + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_COMMIT_BRANCH == "master" + when: on_success + - changes: + - scripts/**/* + - script-inputs/**/* + - src/**/* + - tezt/**/* + - vendors/**/* + - dune + - dune-project + - dune-workspace + - opam + - Makefile + - kernels.mk + - build.Dockerfile + - Dockerfile + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + dependencies: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: - IMAGE_ARCH_PREFIX: "arm64_" + 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" + 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 index 75a152429a77..1a0c44be90b9 100644 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-test.yml +++ b/.gitlab/ci/jobs/build/oc.docker:arm64-test.yml @@ -1,12 +1,43 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.docker:arm64: - extends: - - .oc.build_docker_release_template - - .rules__octez_docker_changes_or_master - - .tags_template__build_arm64 + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: build + tags: + - gcp_arm64 + rules: + - if: $CI_COMMIT_BRANCH == "master" + when: on_success + - changes: + - scripts/**/* + - script-inputs/**/* + - src/**/* + - tezt/**/* + - vendors/**/* + - dune + - dune-project + - dune-workspace + - opam + - Makefile + - kernels.mk + - build.Dockerfile + - Dockerfile + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + dependencies: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: - IMAGE_ARCH_PREFIX: "arm64_" + 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" + 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 index 817df53dcdde..cab4b3e35fa1 100644 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml +++ b/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml @@ -1,14 +1,26 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.docker:arm64: - extends: - - .oc.build_docker_release_template - - .tags_template__build_arm64 + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: manual + tags: + - gcp_arm64 + needs: [] + dependencies: [] + allow_failure: true + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: - IMAGE_ARCH_PREFIX: "arm64_" + 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" - needs: [] + EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables when: manual - allow_failure: true diff --git a/ci/bin/main.ml b/ci/bin/main.ml index d18db5d37aaa..a3390ad5b6b7 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -45,7 +45,7 @@ module Stages = struct let _publish_package_gitlab = Stage.register "publish_package_gitlab" - let _manual = Stage.register "manual" + let manual = Stage.register "manual" end (* Get the [build_deps_image_version] from the environment, which is @@ -215,9 +215,15 @@ let trigger = - Sets the appropriate image. - Activates the docker Daemon as a service. - It sets up authentification with docker registries *) -let job_docker_authenticated ?variables ~stage ~name script : job = +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) @@ -293,6 +299,157 @@ let _job_static_arm64_experimental = 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 + +let changeset_octez_docker_changes_or_master = + [ + "scripts/**/*"; + "script-inputs/**/*"; + "src/**/*"; + "tezt/**/*"; + "vendors/**/*"; + "dune"; + "dune-project"; + "dune-workspace"; + "opam"; + "Makefile"; + "kernels.mk"; + "build.Dockerfile"; + "Dockerfile"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + +let rules_octez_docker_changes_or_master = + [ + job_rule ~if_:Rules.on_master (); + job_rule ~changes:changeset_octez_docker_changes_or_master (); + ] + +let _job_docker_amd64_experimental : job = + job_docker_build + ~external_:true + ~rules:rules_octez_docker_changes_or_master + ~arch:Amd64 + Experimental + +let _job_docker_amd64_release : job = + job_docker_build + ~external_:true + ~rules:rules_octez_docker_changes_or_master + ~arch:Amd64 + Release + +let _job_docker_amd64_test_manual : job = + job_docker_build ~external_:true ~arch:Amd64 Test_manual + +let _job_docker_amd64_test : job = + job_docker_build + ~external_:true + ~rules:rules_octez_docker_changes_or_master + ~arch:Amd64 + Test + +let _job_docker_arm64_experimental : job = + job_docker_build + ~external_:true + ~rules:rules_octez_docker_changes_or_master + ~arch:Arm64 + Experimental + +let _job_docker_arm64_release : job = + job_docker_build + ~external_:true + ~rules:rules_octez_docker_changes_or_master + ~arch:Arm64 + Release + +let _job_docker_arm64_test_manual : job = + job_docker_build ~external_:true ~arch:Arm64 Test_manual + +let _job_docker_arm64_test : job = + job_docker_build + ~external_:true + ~rules:rules_octez_docker_changes_or_master + ~arch:Arm64 + Test + (* 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 -- GitLab From 4c50f2774d713ad78edeec2429825e91fd038296 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Mon, 15 Jan 2024 17:18:52 +0100 Subject: [PATCH 064/134] CI: generate jobs [docker:merge_manifests] --- .../docker:merge_manifests-release.yml | 33 +++++++------ .../docker:merge_manifests-test.yml | 33 +++++++------ ci/bin/main.ml | 47 +++++++++++++++++-- 3 files changed, 78 insertions(+), 35 deletions(-) diff --git a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml b/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml index d8a8fa57aabe..a69044fad2bc 100644 --- a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml +++ b/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml @@ -1,20 +1,23 @@ -# 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. +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. 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 + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: prepare_release + tags: + - gcp + needs: + - oc.docker:amd64 + - oc.docker:arm64 + dependencies: [] + script: + - ./scripts/ci/docker_merge_manifests.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: + DOCKER_VERSION: 24.0.6 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 index 37f70b7c661c..a5a0acbf1541 100644 --- a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml +++ b/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml @@ -1,20 +1,23 @@ -# 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. +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. 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 + image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 stage: prepare_release + tags: + - gcp + needs: + - oc.docker:amd64 + - oc.docker:arm64 + dependencies: [] + script: + - ./scripts/ci/docker_merge_manifests.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.sh + services: + - docker:${DOCKER_VERSION}-dind variables: + DOCKER_VERSION: 24.0.6 CI_DOCKER_HUB: "false" - script: - - ./scripts/ci/docker_merge_manifests.sh diff --git a/ci/bin/main.ml b/ci/bin/main.ml index a3390ad5b6b7..654380a166bf 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -37,7 +37,7 @@ module Stages = struct let _doc = Stage.register "doc" - let _prepare_release = Stage.register "prepare_release" + let prepare_release = Stage.register "prepare_release" let _publish_release_gitlab = Stage.register "publish_release_gitlab" @@ -402,7 +402,7 @@ let rules_octez_docker_changes_or_master = job_rule ~changes:changeset_octez_docker_changes_or_master (); ] -let _job_docker_amd64_experimental : job = +let job_docker_amd64_experimental : job = job_docker_build ~external_:true ~rules:rules_octez_docker_changes_or_master @@ -419,14 +419,14 @@ let _job_docker_amd64_release : job = let _job_docker_amd64_test_manual : job = job_docker_build ~external_:true ~arch:Amd64 Test_manual -let _job_docker_amd64_test : job = +let job_docker_amd64_test : job = job_docker_build ~external_:true ~rules:rules_octez_docker_changes_or_master ~arch:Amd64 Test -let _job_docker_arm64_experimental : job = +let job_docker_arm64_experimental : job = job_docker_build ~external_:true ~rules:rules_octez_docker_changes_or_master @@ -443,13 +443,50 @@ let _job_docker_arm64_release : job = let _job_docker_arm64_test_manual : job = job_docker_build ~external_:true ~arch:Arm64 Test_manual -let _job_docker_arm64_test : job = +let job_docker_arm64_test : job = job_docker_build ~external_:true ~rules:rules_octez_docker_changes_or_master ~arch:Arm64 Test +(* 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"] + +let _job_docker_merge_manifests_release = + job_external ~filename_suffix:"release" + @@ job_docker_merge_manifests + ~ci_docker_hub:true + (* TODO: In theory, actually uses either release or + experimental variant of docker jobs depending on + pipeline. In practice, this does not matter as these jobs + have the same name in the generated files + ([oc.build:ARCH]). However, when the merge_manifest jobs + are created directly in the appropriate pipeline, the + correcty variant must be used. *) + ~job_docker_amd64:job_docker_amd64_experimental + ~job_docker_arm64:job_docker_arm64_experimental + +let _job_docker_merge_manifests_test = + job_external ~filename_suffix:"test" + @@ job_docker_merge_manifests + ~ci_docker_hub:false + ~job_docker_amd64:job_docker_amd64_test + ~job_docker_arm64:job_docker_arm64_test + (* 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 -- GitLab From c9f5c29fc8ab2fbd13608dd40b515a39fe5010d1 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 17 Jan 2024 14:54:17 +0100 Subject: [PATCH 065/134] CI: generate [*release_tag(_test)] pipelines --- .gitlab/ci/jobs/build/bin_packages.yml | 35 --- ...ld:static-arm64-linux-binaries-release.yml | 21 -- ...d:static-x86_64-linux-binaries-release.yml | 23 -- .../ci/jobs/build/oc.docker:amd64-release.yml | 43 --- .../ci/jobs/build/oc.docker:amd64-test.yml | 43 --- .../ci/jobs/build/oc.docker:arm64-release.yml | 43 --- .../ci/jobs/build/oc.docker:arm64-test.yml | 43 --- .../docker:merge_manifests-test.yml | 23 -- .gitlab/ci/jobs/publish/gitlab:publish.yml | 14 - .gitlab/ci/jobs/publish/gitlab:release.yml | 15 -- .gitlab/ci/jobs/publish/opam:release.yml | 12 - .gitlab/ci/jobs/shared/images.yml | 6 + .gitlab/ci/pipelines/beta_release_tag.yml | 200 +++++++++++++- .gitlab/ci/pipelines/non_release_tag.yml | 200 +++++++++++++- .gitlab/ci/pipelines/non_release_tag_test.yml | 200 +++++++++++++- .gitlab/ci/pipelines/release_tag.yml | 212 +++++++++++++-- .gitlab/ci/pipelines/release_tag_test.yml | 200 +++++++++++++- ci/bin/main.ml | 244 ++++++++++++++---- 18 files changed, 1155 insertions(+), 422 deletions(-) delete mode 100644 .gitlab/ci/jobs/build/bin_packages.yml delete mode 100644 .gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml delete mode 100644 .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml delete mode 100644 .gitlab/ci/jobs/build/oc.docker:amd64-release.yml delete mode 100644 .gitlab/ci/jobs/build/oc.docker:amd64-test.yml delete mode 100644 .gitlab/ci/jobs/build/oc.docker:arm64-release.yml delete mode 100644 .gitlab/ci/jobs/build/oc.docker:arm64-test.yml delete mode 100644 .gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml delete mode 100644 .gitlab/ci/jobs/publish/gitlab:publish.yml delete mode 100644 .gitlab/ci/jobs/publish/gitlab:release.yml delete mode 100644 .gitlab/ci/jobs/publish/opam:release.yml diff --git a/.gitlab/ci/jobs/build/bin_packages.yml b/.gitlab/ci/jobs/build/bin_packages.yml deleted file mode 100644 index 6f4c266fdcee..000000000000 --- 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/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 53bf715dba53..000000000000 --- a/.gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-release.yml +++ /dev/null @@ -1,21 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -oc.build:static-arm64-linux-binaries: - image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} - stage: build - tags: - - gcp_arm64 - dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh - before_script: - - ./scripts/ci/take_ownership.sh - - eval $(opam env) - variables: - ARCH: arm64 - EXECUTABLE_FILES: script-inputs/released-executables - artifacts: - expire_in: 90 days - paths: - - octez-binaries/$ARCH/* 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 235d4273c531..000000000000 --- a/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-release.yml +++ /dev/null @@ -1,23 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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: [] - script: - - ./scripts/ci/build_static_binaries.sh - before_script: - - ./scripts/ci/take_ownership.sh - - eval $(opam env) - variables: - ARCH: x86_64 - EXECUTABLE_FILES: script-inputs/released-executables - artifacts: - expire_in: 90 days - paths: - - octez-binaries/$ARCH/* 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 7a05119461d2..000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-release.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -oc.docker:amd64: - image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 - stage: build - tags: - - gcp - rules: - - if: $CI_COMMIT_BRANCH == "master" - when: on_success - - changes: - - scripts/**/* - - script-inputs/**/* - - src/**/* - - tezt/**/* - - vendors/**/* - - dune - - dune-project - - dune-workspace - - opam - - Makefile - - kernels.mk - - build.Dockerfile - - Dockerfile - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - dependencies: [] - script: - - ./scripts/ci/docker_release.sh - before_script: - - ./scripts/ci/docker_wait_for_daemon.sh - - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} - - ./scripts/ci/docker_registry_auth.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 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 0d45e9df975e..000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-test.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -oc.docker:amd64: - image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 - stage: build - tags: - - gcp - rules: - - if: $CI_COMMIT_BRANCH == "master" - when: on_success - - changes: - - scripts/**/* - - script-inputs/**/* - - src/**/* - - tezt/**/* - - vendors/**/* - - dune - - dune-project - - dune-workspace - - opam - - Makefile - - kernels.mk - - build.Dockerfile - - Dockerfile - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - dependencies: [] - script: - - ./scripts/ci/docker_release.sh - before_script: - - ./scripts/ci/docker_wait_for_daemon.sh - - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} - - ./scripts/ci/docker_registry_auth.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 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 90404df259e2..000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-release.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -oc.docker:arm64: - image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 - stage: build - tags: - - gcp_arm64 - rules: - - if: $CI_COMMIT_BRANCH == "master" - when: on_success - - changes: - - scripts/**/* - - script-inputs/**/* - - src/**/* - - tezt/**/* - - vendors/**/* - - dune - - dune-project - - dune-workspace - - opam - - Makefile - - kernels.mk - - build.Dockerfile - - Dockerfile - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - dependencies: [] - script: - - ./scripts/ci/docker_release.sh - before_script: - - ./scripts/ci/docker_wait_for_daemon.sh - - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} - - ./scripts/ci/docker_registry_auth.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 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 1a0c44be90b9..000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-test.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -oc.docker:arm64: - image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 - stage: build - tags: - - gcp_arm64 - rules: - - if: $CI_COMMIT_BRANCH == "master" - when: on_success - - changes: - - scripts/**/* - - script-inputs/**/* - - src/**/* - - tezt/**/* - - vendors/**/* - - dune - - dune-project - - dune-workspace - - opam - - Makefile - - kernels.mk - - build.Dockerfile - - Dockerfile - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - dependencies: [] - script: - - ./scripts/ci/docker_release.sh - before_script: - - ./scripts/ci/docker_wait_for_daemon.sh - - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} - - ./scripts/ci/docker_registry_auth.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 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 a5a0acbf1541..000000000000 --- a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-test.yml +++ /dev/null @@ -1,23 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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: [] - script: - - ./scripts/ci/docker_merge_manifests.sh - before_script: - - ./scripts/ci/docker_wait_for_daemon.sh - - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} - - ./scripts/ci/docker_registry_auth.sh - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_VERSION: 24.0.6 - CI_DOCKER_HUB: "false" diff --git a/.gitlab/ci/jobs/publish/gitlab:publish.yml b/.gitlab/ci/jobs/publish/gitlab:publish.yml deleted file mode 100644 index eb0b1c127ae7..000000000000 --- 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 22a33598e2c4..000000000000 --- 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 6708a7ee424f..000000000000 --- 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/shared/images.yml b/.gitlab/ci/jobs/shared/images.yml index d4aba52668a5..cd7092283320 100644 --- a/.gitlab/ci/jobs/shared/images.yml +++ b/.gitlab/ci/jobs/shared/images.yml @@ -3,8 +3,14 @@ .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__docker: image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 +.image_template__fedora_39: + image: fedora:39 .image_template__runtime_build_dependencies: image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} .image_template__runtime_build_test_dependencies: diff --git a/.gitlab/ci/pipelines/beta_release_tag.yml b/.gitlab/ci/pipelines/beta_release_tag.yml index d3a245bed82f..9ac53d4f5ceb 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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 + 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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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++ + 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: [] + script: + - ./scripts/ci/docker_merge_manifests.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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/non_release_tag.yml b/.gitlab/ci/pipelines/non_release_tag.yml index 1f3462bf4617..146ecee79efe 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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 + 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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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++ + 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: [] + script: + - ./scripts/ci/docker_merge_manifests.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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 4d2822320128..3af1e7951c8b 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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 + 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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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++ + 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: [] + script: + - ./scripts/ci/docker_merge_manifests.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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 85b0c28d81c3..59d422ed9e59 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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 + 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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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++ + 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: [] + script: + - ./scripts/ci/docker_merge_manifests.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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 5cab19e5bbf6..c8d8c3467255 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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 + 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: [] + script: + - . ./scripts/version.sh + - 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 + before_script: + - 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++ + 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: [] + script: + - ./scripts/ci/docker_merge_manifests.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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/ci/bin/main.ml b/ci/bin/main.ml index 654380a166bf..fe8982df34c2 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -39,11 +39,11 @@ module Stages = struct let prepare_release = Stage.register "prepare_release" - let _publish_release_gitlab = Stage.register "publish_release_gitlab" + 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 publish_package_gitlab = Stage.register "publish_package_gitlab" let manual = Stage.register "manual" end @@ -120,7 +120,7 @@ module Images = struct ~image_path: "${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version}" - let _runtime_build_test_dependencies = + let runtime_build_test_dependencies = Image.register ~name:"runtime_build_test_dependencies" ~image_path: @@ -170,6 +170,16 @@ module Images = struct 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 fedora_39 = Image.register ~name:"fedora_39" ~image_path:"fedora:39" end let before_script ?(take_ownership = false) ?(source_version = false) @@ -409,23 +419,9 @@ let job_docker_amd64_experimental : job = ~arch:Amd64 Experimental -let _job_docker_amd64_release : job = - job_docker_build - ~external_:true - ~rules:rules_octez_docker_changes_or_master - ~arch:Amd64 - Release - let _job_docker_amd64_test_manual : job = job_docker_build ~external_:true ~arch:Amd64 Test_manual -let job_docker_amd64_test : job = - job_docker_build - ~external_:true - ~rules:rules_octez_docker_changes_or_master - ~arch:Amd64 - Test - let job_docker_arm64_experimental : job = job_docker_build ~external_:true @@ -433,23 +429,9 @@ let job_docker_arm64_experimental : job = ~arch:Arm64 Experimental -let _job_docker_arm64_release : job = - job_docker_build - ~external_:true - ~rules:rules_octez_docker_changes_or_master - ~arch:Arm64 - Release - let _job_docker_arm64_test_manual : job = job_docker_build ~external_:true ~arch:Arm64 Test_manual -let job_docker_arm64_test : job = - job_docker_build - ~external_:true - ~rules:rules_octez_docker_changes_or_master - ~arch:Arm64 - Test - (* 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, @@ -466,6 +448,7 @@ let job_docker_merge_manifests ~ci_docker_hub ~job_docker_amd64 ~variables:[("CI_DOCKER_HUB", Bool.to_string ci_docker_hub)] ["./scripts/ci/docker_merge_manifests.sh"] +(* This external definition is used in the [master_branch] pipeline *) let _job_docker_merge_manifests_release = job_external ~filename_suffix:"release" @@ job_docker_merge_manifests @@ -475,17 +458,185 @@ let _job_docker_merge_manifests_release = pipeline. In practice, this does not matter as these jobs have the same name in the generated files ([oc.build:ARCH]). However, when the merge_manifest jobs - are created directly in the appropriate pipeline, the - correcty variant must be used. *) + are generated directly in the [master_branch] pipeline, + the correcty variant must be used. *) ~job_docker_amd64:job_docker_amd64_experimental ~job_docker_arm64:job_docker_arm64_experimental -let _job_docker_merge_manifests_test = - job_external ~filename_suffix:"test" - @@ job_docker_merge_manifests - ~ci_docker_hub:false - ~job_docker_amd64:job_docker_amd64_test - ~job_docker_arm64:job_docker_arm64_test +type bin_package_target = Dpkg | Rpm + +let job_build_bin_package ~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 = + 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 + job + ~name + ~arch + ~image + ~stage:Stages.build + ~dependencies:(Dependent []) + ~variables: + [ + ("TARGET", target_string); + ("OCTEZ_PKGMAINTAINER", "nomadic-labs"); + ("BLST_PORTABLE", "yes"); + ("ARCH", arch_string); + ] + ~artifacts + ~before_script + [ + ". ./scripts/version.sh"; + "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 + +(** 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] + | _ -> [] (* Register pipelines types. Pipelines types are used to generate workflow rules and includes of the files where the jobs of the @@ -518,19 +669,24 @@ let () = register "master_branch" If.(on_tezos_namespace && push && on_branch "master") ; register "release_tag" - If.(on_tezos_namespace && push && has_tag_match release_tag_re) ; + 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) ; + 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) ; + 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) ; + 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) ; + 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 (* Split pipelines and writes image templates *) -- GitLab From 0042932a7e131175259478e8f771d43790b9d676 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 10 Jan 2024 16:56:35 +0100 Subject: [PATCH 066/134] CI: generate build_arm64 jobs --- .../build/oc.build_arm64-exp-dev-extra.yml | 52 +++++-- .../ci/jobs/build/oc.build_arm64-released.yml | 47 +++++- ci/bin/main.ml | 139 ++++++++++++++++++ 3 files changed, 219 insertions(+), 19 deletions(-) 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 index 01a9c9408876..cd9f766d52e1 100644 --- a/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml +++ b/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml @@ -1,14 +1,44 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# 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 + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) 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" + 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 diff --git a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml b/.gitlab/ci/jobs/build/oc.build_arm64-released.yml index 4c947e6f3edc..2da09eaada50 100644 --- a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml +++ b/.gitlab/ci/jobs/build/oc.build_arm64-released.yml @@ -1,11 +1,42 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# 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 + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) variables: - EXECUTABLE_FILES: "script-inputs/released-executables" + 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 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index fe8982df34c2..776854d0d83d 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -198,6 +198,17 @@ let before_script ?(take_ownership = false) ?(source_version = false) @ toggle install_js_deps ". ./scripts/install_build_deps.js.sh" @ before_script +let job_enable_coverage (job : job) = + let variables = + Option.value ~default:[] job.variables + @ [ + ("COVERAGE_OPTIONS", "--instrument-with bisect_ppx"); + ("BISECT_FILE", "$CI_PROJECT_DIR/_coverage_output/"); + ("SLACK_COVERAGE_CHANNEL", "C02PHBE7W73"); + ] + in + {job with variables = Some variables} + (* Define the [trigger] job *) let trigger = job @@ -638,6 +649,134 @@ let release_tag_pipeline ?(test = false) release_tag_pipeline_type = | 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_enable_coverage job 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 + (); + ] + +(* Write external files for build_arm64_jobs *) +let _job_build_arm64_release = + job_build_dynamic_binaries + ~external_:true + ~arch:Arm64 + ~needs_trigger:false + ~release:true + ~rules:build_arm_rules + () + +let _job_build_arm64_exp_dev_extra = + job_build_dynamic_binaries + ~external_:true + ~arch:Arm64 + ~needs_trigger:false + ~release:false + ~rules:build_arm_rules + () + (* 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 -- GitLab From 2aa5147cab852581b2db05c799a40d6cd50707ef Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 16:12:00 +0100 Subject: [PATCH 067/134] CI: generate [oc.unified_coverage-default.yml] --- .../coverage/oc.unified_coverage-default.yml | 50 +++++++++++-------- ci/bin/main.ml | 48 +++++++++++++++++- 2 files changed, 75 insertions(+), 23 deletions(-) diff --git a/.gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml b/.gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml index 3a7e8f743869..faea76b47f90 100644 --- a/.gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml +++ b/.gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml @@ -1,28 +1,34 @@ -# 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 +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.unified_coverage: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - - .oc.template__coverage_report + 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: - # 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 + COVERAGE_OPTIONS: --instrument-with bisect_ppx + 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: ([^%]+%)/' diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 776854d0d83d..77039a69b908 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -31,7 +31,7 @@ module Stages = struct let _test = Stage.register "test" - let _test_coverage = Stage.register "test_coverage" + let test_coverage = Stage.register "test_coverage" let _packaging = Stage.register "packaging" @@ -777,6 +777,52 @@ let _job_build_arm64_exp_dev_extra = ~rules:build_arm_rules () +let job_enable_coverage_report job : job = + let coverage = "/Coverage: ([^%]+%)/" in + let artifacts = + match job.artifacts with + | Some _ -> assert false + | None -> + 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"] + in + {job with artifacts = Some artifacts; coverage = Some coverage} + +let _unified_coverage_default : job = + job_external ~directory:"coverage" ~filename_suffix:"default" + @@ job_enable_coverage @@ 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"; + ] + (* 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 -- GitLab From e8312fa57204d1d2adb3a49c39b997d69d8d0787 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 11 Jan 2024 16:37:07 +0100 Subject: [PATCH 068/134] CI: generate [publish:documentation.yml] --- ...atic-arm64-linux-binaries-experimental.yml | 20 -- .../build/oc.docker:amd64-experimental.yml | 43 --- .../build/oc.docker:arm64-experimental.yml | 43 --- .../coverage/oc.unified_coverage-default.yml | 34 --- .gitlab/ci/jobs/doc/publish:documentation.yml | 30 -- .../docker:merge_manifests-release.yml | 23 -- .../ci/jobs/publish/publish_kernel_sdk.yml | 25 -- .gitlab/ci/pipelines/master_branch.yml | 277 ++++++++++++++++-- ci/bin/main.ml | 212 ++++++++------ 9 files changed, 384 insertions(+), 323 deletions(-) delete mode 100644 .gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-experimental.yml delete mode 100644 .gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml delete mode 100644 .gitlab/ci/jobs/build/oc.docker:arm64-experimental.yml delete mode 100644 .gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml delete mode 100644 .gitlab/ci/jobs/doc/publish:documentation.yml delete mode 100644 .gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml delete mode 100644 .gitlab/ci/jobs/publish/publish_kernel_sdk.yml 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 9b42a06374f3..000000000000 --- a/.gitlab/ci/jobs/build/oc.build:static-arm64-linux-binaries-experimental.yml +++ /dev/null @@ -1,20 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -oc.build:static-arm64-linux-binaries: - image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} - stage: build - tags: - - gcp_arm64 - dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh - before_script: - - ./scripts/ci/take_ownership.sh - - eval $(opam env) - variables: - ARCH: arm64 - EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables - artifacts: - paths: - - octez-binaries/$ARCH/* 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 2d0e775b297a..000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-experimental.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -oc.docker:amd64: - image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 - stage: build - tags: - - gcp - rules: - - if: $CI_COMMIT_BRANCH == "master" - when: on_success - - changes: - - scripts/**/* - - script-inputs/**/* - - src/**/* - - tezt/**/* - - vendors/**/* - - dune - - dune-project - - dune-workspace - - opam - - Makefile - - kernels.mk - - build.Dockerfile - - Dockerfile - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - dependencies: [] - script: - - ./scripts/ci/docker_release.sh - before_script: - - ./scripts/ci/docker_wait_for_daemon.sh - - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} - - ./scripts/ci/docker_registry_auth.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 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 4c7a4fef664b..000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-experimental.yml +++ /dev/null @@ -1,43 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -oc.docker:arm64: - image: ${CI_REGISTRY}/tezos/docker-images/ci-docker:v1.9.0 - stage: build - tags: - - gcp_arm64 - rules: - - if: $CI_COMMIT_BRANCH == "master" - when: on_success - - changes: - - scripts/**/* - - script-inputs/**/* - - src/**/* - - tezt/**/* - - vendors/**/* - - dune - - dune-project - - dune-workspace - - opam - - Makefile - - kernels.mk - - build.Dockerfile - - Dockerfile - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - dependencies: [] - script: - - ./scripts/ci/docker_release.sh - before_script: - - ./scripts/ci/docker_wait_for_daemon.sh - - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} - - ./scripts/ci/docker_registry_auth.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 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 faea76b47f90..000000000000 --- a/.gitlab/ci/jobs/coverage/oc.unified_coverage-default.yml +++ /dev/null @@ -1,34 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 - COVERAGE_OPTIONS: --instrument-with bisect_ppx - 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: ([^%]+%)/' diff --git a/.gitlab/ci/jobs/doc/publish:documentation.yml b/.gitlab/ci/jobs/doc/publish:documentation.yml deleted file mode 100644 index 0b92cdda5521..000000000000 --- 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/prepare_release/docker:merge_manifests-release.yml b/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml deleted file mode 100644 index a69044fad2bc..000000000000 --- a/.gitlab/ci/jobs/prepare_release/docker:merge_manifests-release.yml +++ /dev/null @@ -1,23 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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: [] - script: - - ./scripts/ci/docker_merge_manifests.sh - before_script: - - ./scripts/ci/docker_wait_for_daemon.sh - - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} - - ./scripts/ci/docker_registry_auth.sh - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_VERSION: 24.0.6 - CI_DOCKER_HUB: "true" 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 040feb33a13f..000000000000 --- 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/pipelines/master_branch.yml b/.gitlab/ci/pipelines/master_branch.yml index 8ef97f65a3d9..b951a4d3c765 100644 --- a/.gitlab/ci/pipelines/master_branch.yml +++ b/.gitlab/ci/pipelines/master_branch.yml @@ -1,20 +1,259 @@ -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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_static_binaries.sh + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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: [] + script: + - ./scripts/ci/docker_release.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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 + COVERAGE_OPTIONS: --instrument-with bisect_ppx + 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 + script: + - ./scripts/ci/doc_publish.sh + 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 +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: [] + script: + - ./scripts/ci/docker_merge_manifests.sh + before_script: + - ./scripts/ci/docker_wait_for_daemon.sh + - ./scripts/ci/docker_check_version.sh ${DOCKER_VERSION} + - ./scripts/ci/docker_registry_auth.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/ci/bin/main.ml b/ci/bin/main.ml index 77039a69b908..6ce9c4986da3 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -35,7 +35,7 @@ module Stages = struct let _packaging = Stage.register "packaging" - let _doc = Stage.register "doc" + let doc = Stage.register "doc" let prepare_release = Stage.register "prepare_release" @@ -144,7 +144,7 @@ module Images = struct ~image_path: "${build_deps_image_name}:runtime-client-libs-dependencies--${build_deps_image_version}" - let _rust_toolchain = + let rust_toolchain = Image.register ~name:"rust_toolchain" ~image_path: @@ -314,10 +314,8 @@ let job_build_static_binaries ~arch ?(external_ = false) ?(release = false) in if external_ then job_external ~filename_suffix job else job -let _job_static_arm64_experimental = - job_build_static_binaries ~external_:true ~arch:Arm64 () - -let _job_static_x86_64_experimental = +(* 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. @@ -398,48 +396,11 @@ let job_docker_build ?rules ~arch ?(external_ = false) docker_build_type : job = if external_ then job_external ~directory:"build" ~filename_suffix job else job -let changeset_octez_docker_changes_or_master = - [ - "scripts/**/*"; - "script-inputs/**/*"; - "src/**/*"; - "tezt/**/*"; - "vendors/**/*"; - "dune"; - "dune-project"; - "dune-workspace"; - "opam"; - "Makefile"; - "kernels.mk"; - "build.Dockerfile"; - "Dockerfile"; - ".gitlab/**/*"; - ".gitlab-ci.yml"; - ] - -let rules_octez_docker_changes_or_master = - [ - job_rule ~if_:Rules.on_master (); - job_rule ~changes:changeset_octez_docker_changes_or_master (); - ] - -let job_docker_amd64_experimental : job = - job_docker_build - ~external_:true - ~rules:rules_octez_docker_changes_or_master - ~arch:Amd64 - Experimental - +(* Used in [before_merging] pipeline *) let _job_docker_amd64_test_manual : job = job_docker_build ~external_:true ~arch:Amd64 Test_manual -let job_docker_arm64_experimental : job = - job_docker_build - ~external_:true - ~rules:rules_octez_docker_changes_or_master - ~arch:Arm64 - Experimental - +(* Used in [before_merging] pipeline *) let _job_docker_arm64_test_manual : job = job_docker_build ~external_:true ~arch:Arm64 Test_manual @@ -459,21 +420,6 @@ let job_docker_merge_manifests ~ci_docker_hub ~job_docker_amd64 ~variables:[("CI_DOCKER_HUB", Bool.to_string ci_docker_hub)] ["./scripts/ci/docker_merge_manifests.sh"] -(* This external definition is used in the [master_branch] pipeline *) -let _job_docker_merge_manifests_release = - job_external ~filename_suffix:"release" - @@ job_docker_merge_manifests - ~ci_docker_hub:true - (* TODO: In theory, actually uses either release or - experimental variant of docker jobs depending on - pipeline. In practice, this does not matter as these jobs - have the same name in the generated files - ([oc.build:ARCH]). However, when the merge_manifest jobs - are generated directly in the [master_branch] pipeline, - the correcty variant must be used. *) - ~job_docker_amd64:job_docker_amd64_experimental - ~job_docker_arm64:job_docker_arm64_experimental - type bin_package_target = Dpkg | Rpm let job_build_bin_package ~arch ~target : job = @@ -759,7 +705,9 @@ let build_arm_rules = ] (* Write external files for build_arm64_jobs *) -let _job_build_arm64_release = + +(* Used in [before_merging] and [schedule_extended_test] pipelines *) +let job_build_arm64_release = job_build_dynamic_binaries ~external_:true ~arch:Arm64 @@ -768,7 +716,8 @@ let _job_build_arm64_release = ~rules:build_arm_rules () -let _job_build_arm64_exp_dev_extra = +(* Used in [before_merging] and [schedule_extended_test] pipelines *) +let job_build_arm64_exp_dev_extra = job_build_dynamic_binaries ~external_:true ~arch:Arm64 @@ -799,29 +748,20 @@ let job_enable_coverage_report job : job = in {job with artifacts = Some artifacts; coverage = Some coverage} -let _unified_coverage_default : job = - job_external ~directory:"coverage" ~filename_suffix:"default" - @@ job_enable_coverage @@ 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"; - ] +let changeset_octez_docs = + [ + "scripts/**/*/"; + "script-inputs/**/*/"; + "src/**/*"; + "tezt/**/*"; + "vendors/**/*"; + "dune"; + "dune-project"; + "dune-workspace"; + "docs/**/*"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] (* Register pipelines types. Pipelines types are used to generate workflow rules and includes of the files where the jobs of the @@ -851,7 +791,107 @@ let () = "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") ; + 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 @@ 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) -- GitLab From 7073060bff5edc6afadb8bef539e1a179fa85c3b Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 10:00:26 +0100 Subject: [PATCH 069/134] CI-in-OCaml: add target [docker-all] for building through Docker --- ci/makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ci/makefile b/ci/makefile index b8675789b46a..61cf3d240b65 100644 --- a/ci/makefile +++ b/ci/makefile @@ -2,6 +2,10 @@ all: (cd .. && . ./scripts/version.sh && dune exec ci/bin/main.exe) +.PHONY: docker-all +docker-all: + (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 all) + # Used in the CI to verify that [.gitlab-ci.yml] is up to date. .PHONY: check check: -- GitLab From 5008500476aca6ffc1a02e7cc05a622f693fd27d Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 10:18:37 +0100 Subject: [PATCH 070/134] Manifest: write opam packages to test to [script-inputs] --- manifest/manifest.ml | 73 +++-------------------- script-inputs/ci-opam-package-tests | 90 +++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 66 deletions(-) create mode 100644 script-inputs/ci-opam-package-tests diff --git a/manifest/manifest.ml b/manifest/manifest.ml index 251126482ca2..cfbbe002c655 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 000000000000..c33fb10d601a --- /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 -- GitLab From 594d3970fb491e689f462c2ca0b5be60e0b6ebd8 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 10:30:40 +0100 Subject: [PATCH 071/134] CI-in-OCaml: add function for writing sets of jobs to external file --- ci/bin/tezos_ci.ml | 13 +++++++++++++ ci/bin/tezos_ci.mli | 20 +++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index cc14592f9122..a3126729bf87 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -365,3 +365,16 @@ let job_external ?directory ?filename_suffix (job : Gitlab_ci.Types.job) : 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 index d27361ab3a74..bc531d4648ee 100644 --- a/ci/bin/tezos_ci.mli +++ b/ci/bin/tezos_ci.mli @@ -196,9 +196,27 @@ val job : This allows migrating all the jobs of a given pipeline, and including the generated definition of those jobs in other - pipelines where it appears. *) + 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 -- GitLab From 08ec01916ac03e1e4737920be17d18b62deb7cb5 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 19 Jan 2024 10:52:19 +0100 Subject: [PATCH 072/134] CI: generate opam package test jobs --- .gitlab/ci/jobs/packaging/opam:prepare.yml | 95 +- .gitlab/ci/jobs/packaging/opam_package.yml | 5725 +++++++++++++++++--- ci/bin/main.ml | 138 +- ci/lib_gitlab_ci/base.ml | 9 + ci/makefile | 10 +- 5 files changed, 5052 insertions(+), 925 deletions(-) diff --git a/.gitlab/ci/jobs/packaging/opam:prepare.yml b/.gitlab/ci/jobs/packaging/opam:prepare.yml index 1e4be6a5a424..217547ce7e92 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] - before_script: - - eval $(opam env) + 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: [] 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" + before_script: + - eval $(opam env) 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 4b81cba6b19d..ae4ae3c60542 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache 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. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-accuser-Proxford - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-accuser-PtNairob - -# Ignoring unreleased package octez-accuser-alpha. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-alcotezt - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-baker-Proxford - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-baker-PtNairob - -# Ignoring unreleased package octez-baker-alpha. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-client - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-codec - -# Ignoring unreleased package octez-codec-kaitai. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-crawler - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-dac-client - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-dac-node - -# Ignoring unreleased package octez-dal-node. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-distributed-internal - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache 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. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-injector - -# Ignoring unreleased package octez-injector-server. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-internal-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-l2-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-node - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-node-config - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-proto-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-000-Ps9mPmXa-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-001-PtCJ7pwo-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-002-PsYLVpVv-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-003-PsddFKi3-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-004-Pt24m4xi-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-005-PsBabyM1-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-006-PsCARTHA-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-007-PsDELPH1-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-008-PtEdo2Zk-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-009-PsFLoren-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-010-PtGRANAD-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-011-PtHangz2-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-012-Psithaca-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-013-PtJakart-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-014-PtKathma-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-015-PtLimaPt-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-016-PtMumbai-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-017-PtNairob-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-018-Proxford-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-alpha-libs - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-protocol-compiler - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-proxy-server - -# Ignoring unreleased package octez-risc-v-pvm. - -# Ignoring unreleased package octez-risc-v-pvm-test. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-rpc-process - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-shell-libs - -# Ignoring unreleased package octez-shell-tests. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-signer - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-smart-rollup-node - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-smart-rollup-node-Proxford - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-smart-rollup-node-PtNairob - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-smart-rollup-node-alpha - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-smart-rollup-node-lib - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-smart-rollup-wasm-debugger - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-smart-rollup-wasm-debugger-lib - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-smart-rollup-wasm-debugger-plugin - -# Ignoring unreleased package octez-snoop. - -# Ignoring unreleased package octez-store-tests. - -# Ignoring unreleased package octez-testnet-scenarios. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: octez-version - -# Ignoring unreleased package octogram. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache 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. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-client-demo-counter - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-client-genesis - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-dac-client-lib - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-dac-lib - -# Ignoring unreleased package tezos-dac-lib-test. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-dac-node-lib - -# Ignoring unreleased package tezos-dac-node-lib-test. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-dal-node-lib - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache 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. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-openapi - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-000-Ps9mPmXa - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-001-PtCJ7pwo - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-002-PsYLVpVv - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-003-PsddFKi3 - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-004-Pt24m4xi - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-005-PsBABY5H - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-005-PsBabyM1 - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-006-PsCARTHA - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-007-PsDELPH1 - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-008-PtEdo2Zk - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-008-PtEdoTez - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-009-PsFLoren - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-010-PtGRANAD - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-011-PtHangz2 - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-012-Psithaca - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-013-PtJakart - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-014-PtKathma - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-015-PtLimaPt - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-016-PtMumbai - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-017-PtNairob - -# Ignoring unreleased package tezos-protocol-017-PtNairob-tests. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-018-Proxford - -# Ignoring unreleased package tezos-protocol-018-Proxford-tests. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-alpha - -# Ignoring unreleased package tezos-protocol-alpha-tests. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-demo-counter - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-demo-noops - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezos-protocol-genesis - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache 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. - + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) variables: + RUNTEZTALIAS: "true" + SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache + RUSTC_WRAPPER: sccache package: tezt-tezos - -# Ignoring unreleased package tezt-tx-kernel. + artifacts: + expire_in: 1 week + paths: + - opam_logs/ + when: always + retry: 2 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 6ce9c4986da3..c308b357c705 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -33,7 +33,7 @@ module Stages = struct let test_coverage = Stage.register "test_coverage" - let _packaging = Stage.register "packaging" + let packaging = Stage.register "packaging" let doc = Stage.register "doc" @@ -132,7 +132,7 @@ module Images = struct ~image_path: "${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version}" - let _runtime_prebuild_dependencies = + let runtime_prebuild_dependencies = Image.register ~name:"runtime_prebuild_dependencies" ~image_path: @@ -763,6 +763,140 @@ let changeset_octez_docs = ".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 = + 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"); + (* 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"); + ("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 + (* 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 diff --git a/ci/lib_gitlab_ci/base.ml b/ci/lib_gitlab_ci/base.ml index 0fa953d07a7d..7d7fb7204945 100644 --- a/ci/lib_gitlab_ci/base.ml +++ b/ci/lib_gitlab_ci/base.ml @@ -33,6 +33,15 @@ let with_open_in file read_f = 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 diff --git a/ci/makefile b/ci/makefile index 61cf3d240b65..0a093b602037 100644 --- a/ci/makefile +++ b/ci/makefile @@ -1,10 +1,14 @@ .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-all -docker-all: - (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 all) +.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 -- GitLab From 8b8e8408dcc06327d271e83367f5231a013601a1 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 10:59:08 +0100 Subject: [PATCH 073/134] CI-in-OCaml: refactor code for adding variables --- .gitlab/ci/jobs/packaging/opam_package.yml | 180 ++++++++++----------- ci/bin/main.ml | 102 ++++++------ 2 files changed, 144 insertions(+), 138 deletions(-) diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index ae4ae3c60542..1d31cf91d101 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -49,9 +49,9 @@ opam:bls12-381: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: bls12-381 SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: bls12-381 artifacts: expire_in: 1 week paths: @@ -106,9 +106,9 @@ opam:octez-accuser-Proxford: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-accuser-Proxford SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-accuser-Proxford artifacts: expire_in: 1 week paths: @@ -163,9 +163,9 @@ opam:octez-accuser-PtNairob: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-accuser-PtNairob SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-accuser-PtNairob artifacts: expire_in: 1 week paths: @@ -220,9 +220,9 @@ opam:octez-alcotezt: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-alcotezt SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-alcotezt artifacts: expire_in: 1 week paths: @@ -277,9 +277,9 @@ opam:octez-baker-Proxford: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-baker-Proxford SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-baker-Proxford artifacts: expire_in: 1 week paths: @@ -334,9 +334,9 @@ opam:octez-baker-PtNairob: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-baker-PtNairob SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-baker-PtNairob artifacts: expire_in: 1 week paths: @@ -391,9 +391,9 @@ opam:octez-client: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-client SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-client artifacts: expire_in: 1 week paths: @@ -448,9 +448,9 @@ opam:octez-codec: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-codec SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-codec artifacts: expire_in: 1 week paths: @@ -505,9 +505,9 @@ opam:octez-crawler: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-crawler SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-crawler artifacts: expire_in: 1 week paths: @@ -562,9 +562,9 @@ opam:octez-dac-client: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-dac-client SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-dac-client artifacts: expire_in: 1 week paths: @@ -619,9 +619,9 @@ opam:octez-dac-node: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-dac-node SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-dac-node artifacts: expire_in: 1 week paths: @@ -676,9 +676,9 @@ opam:octez-distributed-internal: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-distributed-internal SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-distributed-internal artifacts: expire_in: 1 week paths: @@ -733,9 +733,9 @@ opam:octez-distributed-lwt-internal: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-distributed-lwt-internal SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-distributed-lwt-internal artifacts: expire_in: 1 week paths: @@ -790,9 +790,9 @@ opam:octez-injector: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-injector SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-injector artifacts: expire_in: 1 week paths: @@ -847,9 +847,9 @@ opam:octez-internal-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-internal-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-internal-libs artifacts: expire_in: 1 week paths: @@ -904,9 +904,9 @@ opam:octez-l2-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-l2-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-l2-libs artifacts: expire_in: 1 week paths: @@ -961,9 +961,9 @@ opam:octez-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-libs artifacts: expire_in: 1 week paths: @@ -1018,9 +1018,9 @@ opam:octez-node: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-node SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-node artifacts: expire_in: 1 week paths: @@ -1075,9 +1075,9 @@ opam:octez-node-config: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-node-config SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-node-config artifacts: expire_in: 1 week paths: @@ -1132,9 +1132,9 @@ opam:octez-proto-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-proto-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-proto-libs artifacts: expire_in: 1 week paths: @@ -1189,9 +1189,9 @@ opam:octez-protocol-000-Ps9mPmXa-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-000-Ps9mPmXa-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-000-Ps9mPmXa-libs artifacts: expire_in: 1 week paths: @@ -1246,9 +1246,9 @@ opam:octez-protocol-001-PtCJ7pwo-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-001-PtCJ7pwo-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-001-PtCJ7pwo-libs artifacts: expire_in: 1 week paths: @@ -1303,9 +1303,9 @@ opam:octez-protocol-002-PsYLVpVv-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-002-PsYLVpVv-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-002-PsYLVpVv-libs artifacts: expire_in: 1 week paths: @@ -1360,9 +1360,9 @@ opam:octez-protocol-003-PsddFKi3-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-003-PsddFKi3-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-003-PsddFKi3-libs artifacts: expire_in: 1 week paths: @@ -1417,9 +1417,9 @@ opam:octez-protocol-004-Pt24m4xi-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-004-Pt24m4xi-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-004-Pt24m4xi-libs artifacts: expire_in: 1 week paths: @@ -1474,9 +1474,9 @@ opam:octez-protocol-005-PsBabyM1-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-005-PsBabyM1-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-005-PsBabyM1-libs artifacts: expire_in: 1 week paths: @@ -1531,9 +1531,9 @@ opam:octez-protocol-006-PsCARTHA-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-006-PsCARTHA-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-006-PsCARTHA-libs artifacts: expire_in: 1 week paths: @@ -1588,9 +1588,9 @@ opam:octez-protocol-007-PsDELPH1-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-007-PsDELPH1-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-007-PsDELPH1-libs artifacts: expire_in: 1 week paths: @@ -1645,9 +1645,9 @@ opam:octez-protocol-008-PtEdo2Zk-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-008-PtEdo2Zk-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-008-PtEdo2Zk-libs artifacts: expire_in: 1 week paths: @@ -1702,9 +1702,9 @@ opam:octez-protocol-009-PsFLoren-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-009-PsFLoren-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-009-PsFLoren-libs artifacts: expire_in: 1 week paths: @@ -1759,9 +1759,9 @@ opam:octez-protocol-010-PtGRANAD-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-010-PtGRANAD-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-010-PtGRANAD-libs artifacts: expire_in: 1 week paths: @@ -1816,9 +1816,9 @@ opam:octez-protocol-011-PtHangz2-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-011-PtHangz2-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-011-PtHangz2-libs artifacts: expire_in: 1 week paths: @@ -1873,9 +1873,9 @@ opam:octez-protocol-012-Psithaca-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-012-Psithaca-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-012-Psithaca-libs artifacts: expire_in: 1 week paths: @@ -1930,9 +1930,9 @@ opam:octez-protocol-013-PtJakart-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-013-PtJakart-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-013-PtJakart-libs artifacts: expire_in: 1 week paths: @@ -1987,9 +1987,9 @@ opam:octez-protocol-014-PtKathma-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-014-PtKathma-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-014-PtKathma-libs artifacts: expire_in: 1 week paths: @@ -2044,9 +2044,9 @@ opam:octez-protocol-015-PtLimaPt-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-015-PtLimaPt-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-015-PtLimaPt-libs artifacts: expire_in: 1 week paths: @@ -2101,9 +2101,9 @@ opam:octez-protocol-016-PtMumbai-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-016-PtMumbai-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-016-PtMumbai-libs artifacts: expire_in: 1 week paths: @@ -2158,9 +2158,9 @@ opam:octez-protocol-017-PtNairob-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-017-PtNairob-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-017-PtNairob-libs artifacts: expire_in: 1 week paths: @@ -2215,9 +2215,9 @@ opam:octez-protocol-018-Proxford-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-018-Proxford-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-018-Proxford-libs artifacts: expire_in: 1 week paths: @@ -2272,9 +2272,9 @@ opam:octez-protocol-alpha-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-alpha-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-alpha-libs artifacts: expire_in: 1 week paths: @@ -2329,9 +2329,9 @@ opam:octez-protocol-compiler: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-protocol-compiler SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-protocol-compiler artifacts: expire_in: 1 week paths: @@ -2386,9 +2386,9 @@ opam:octez-proxy-server: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-proxy-server SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-proxy-server artifacts: expire_in: 1 week paths: @@ -2443,9 +2443,9 @@ opam:octez-rpc-process: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-rpc-process SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-rpc-process artifacts: expire_in: 1 week paths: @@ -2500,9 +2500,9 @@ opam:octez-shell-libs: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-shell-libs SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-shell-libs artifacts: expire_in: 1 week paths: @@ -2557,9 +2557,9 @@ opam:octez-signer: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-signer SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-signer artifacts: expire_in: 1 week paths: @@ -2614,9 +2614,9 @@ opam:octez-smart-rollup-node: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-smart-rollup-node SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-smart-rollup-node artifacts: expire_in: 1 week paths: @@ -2671,9 +2671,9 @@ opam:octez-smart-rollup-node-Proxford: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-Proxford SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-smart-rollup-node-Proxford artifacts: expire_in: 1 week paths: @@ -2728,9 +2728,9 @@ opam:octez-smart-rollup-node-PtNairob: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-PtNairob SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-smart-rollup-node-PtNairob artifacts: expire_in: 1 week paths: @@ -2785,9 +2785,9 @@ opam:octez-smart-rollup-node-alpha: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-alpha SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-smart-rollup-node-alpha artifacts: expire_in: 1 week paths: @@ -2842,9 +2842,9 @@ opam:octez-smart-rollup-node-lib: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-smart-rollup-node-lib SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-smart-rollup-node-lib artifacts: expire_in: 1 week paths: @@ -2899,9 +2899,9 @@ opam:octez-smart-rollup-wasm-debugger: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-smart-rollup-wasm-debugger artifacts: expire_in: 1 week paths: @@ -2956,9 +2956,9 @@ opam:octez-smart-rollup-wasm-debugger-lib: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger-lib SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-smart-rollup-wasm-debugger-lib artifacts: expire_in: 1 week paths: @@ -3013,9 +3013,9 @@ opam:octez-smart-rollup-wasm-debugger-plugin: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-smart-rollup-wasm-debugger-plugin SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-smart-rollup-wasm-debugger-plugin artifacts: expire_in: 1 week paths: @@ -3070,9 +3070,9 @@ opam:octez-version: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: octez-version SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: octez-version artifacts: expire_in: 1 week paths: @@ -3127,9 +3127,9 @@ opam:tezos-benchmark: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-benchmark SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-benchmark artifacts: expire_in: 1 week paths: @@ -3184,9 +3184,9 @@ opam:tezos-client-demo-counter: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-client-demo-counter SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-client-demo-counter artifacts: expire_in: 1 week paths: @@ -3241,9 +3241,9 @@ opam:tezos-client-genesis: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-client-genesis SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-client-genesis artifacts: expire_in: 1 week paths: @@ -3298,9 +3298,9 @@ opam:tezos-dac-client-lib: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-dac-client-lib SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-dac-client-lib artifacts: expire_in: 1 week paths: @@ -3355,9 +3355,9 @@ opam:tezos-dac-lib: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-dac-lib SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-dac-lib artifacts: expire_in: 1 week paths: @@ -3412,9 +3412,9 @@ opam:tezos-dac-node-lib: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-dac-node-lib SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-dac-node-lib artifacts: expire_in: 1 week paths: @@ -3469,9 +3469,9 @@ opam:tezos-dal-node-lib: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-dal-node-lib SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-dal-node-lib artifacts: expire_in: 1 week paths: @@ -3526,9 +3526,9 @@ opam:tezos-dal-node-services: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-dal-node-services SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-dal-node-services artifacts: expire_in: 1 week paths: @@ -3583,9 +3583,9 @@ opam:tezos-openapi: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-openapi SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-openapi artifacts: expire_in: 1 week paths: @@ -3640,9 +3640,9 @@ opam:tezos-protocol-000-Ps9mPmXa: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-000-Ps9mPmXa SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-000-Ps9mPmXa artifacts: expire_in: 1 week paths: @@ -3697,9 +3697,9 @@ opam:tezos-protocol-001-PtCJ7pwo: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-001-PtCJ7pwo SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-001-PtCJ7pwo artifacts: expire_in: 1 week paths: @@ -3754,9 +3754,9 @@ opam:tezos-protocol-002-PsYLVpVv: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-002-PsYLVpVv SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-002-PsYLVpVv artifacts: expire_in: 1 week paths: @@ -3811,9 +3811,9 @@ opam:tezos-protocol-003-PsddFKi3: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-003-PsddFKi3 SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-003-PsddFKi3 artifacts: expire_in: 1 week paths: @@ -3868,9 +3868,9 @@ opam:tezos-protocol-004-Pt24m4xi: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-004-Pt24m4xi SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-004-Pt24m4xi artifacts: expire_in: 1 week paths: @@ -3925,9 +3925,9 @@ opam:tezos-protocol-005-PsBABY5H: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-005-PsBABY5H SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-005-PsBABY5H artifacts: expire_in: 1 week paths: @@ -3982,9 +3982,9 @@ opam:tezos-protocol-005-PsBabyM1: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-005-PsBabyM1 SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-005-PsBabyM1 artifacts: expire_in: 1 week paths: @@ -4039,9 +4039,9 @@ opam:tezos-protocol-006-PsCARTHA: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-006-PsCARTHA SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-006-PsCARTHA artifacts: expire_in: 1 week paths: @@ -4096,9 +4096,9 @@ opam:tezos-protocol-007-PsDELPH1: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-007-PsDELPH1 SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-007-PsDELPH1 artifacts: expire_in: 1 week paths: @@ -4153,9 +4153,9 @@ opam:tezos-protocol-008-PtEdo2Zk: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-008-PtEdo2Zk SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-008-PtEdo2Zk artifacts: expire_in: 1 week paths: @@ -4210,9 +4210,9 @@ opam:tezos-protocol-008-PtEdoTez: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-008-PtEdoTez SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-008-PtEdoTez artifacts: expire_in: 1 week paths: @@ -4267,9 +4267,9 @@ opam:tezos-protocol-009-PsFLoren: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-009-PsFLoren SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-009-PsFLoren artifacts: expire_in: 1 week paths: @@ -4324,9 +4324,9 @@ opam:tezos-protocol-010-PtGRANAD: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-010-PtGRANAD SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-010-PtGRANAD artifacts: expire_in: 1 week paths: @@ -4381,9 +4381,9 @@ opam:tezos-protocol-011-PtHangz2: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-011-PtHangz2 SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-011-PtHangz2 artifacts: expire_in: 1 week paths: @@ -4438,9 +4438,9 @@ opam:tezos-protocol-012-Psithaca: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-012-Psithaca SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-012-Psithaca artifacts: expire_in: 1 week paths: @@ -4495,9 +4495,9 @@ opam:tezos-protocol-013-PtJakart: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-013-PtJakart SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-013-PtJakart artifacts: expire_in: 1 week paths: @@ -4552,9 +4552,9 @@ opam:tezos-protocol-014-PtKathma: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-014-PtKathma SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-014-PtKathma artifacts: expire_in: 1 week paths: @@ -4609,9 +4609,9 @@ opam:tezos-protocol-015-PtLimaPt: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-015-PtLimaPt SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-015-PtLimaPt artifacts: expire_in: 1 week paths: @@ -4666,9 +4666,9 @@ opam:tezos-protocol-016-PtMumbai: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-016-PtMumbai SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-016-PtMumbai artifacts: expire_in: 1 week paths: @@ -4723,9 +4723,9 @@ opam:tezos-protocol-017-PtNairob: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-017-PtNairob SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-017-PtNairob artifacts: expire_in: 1 week paths: @@ -4780,9 +4780,9 @@ opam:tezos-protocol-018-Proxford: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-018-Proxford SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-018-Proxford artifacts: expire_in: 1 week paths: @@ -4837,9 +4837,9 @@ opam:tezos-protocol-alpha: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-alpha SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-alpha artifacts: expire_in: 1 week paths: @@ -4894,9 +4894,9 @@ opam:tezos-protocol-demo-counter: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-demo-counter SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-demo-counter artifacts: expire_in: 1 week paths: @@ -4951,9 +4951,9 @@ opam:tezos-protocol-demo-noops: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-demo-noops SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-demo-noops artifacts: expire_in: 1 week paths: @@ -5008,9 +5008,9 @@ opam:tezos-protocol-genesis: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-protocol-genesis SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-protocol-genesis artifacts: expire_in: 1 week paths: @@ -5065,9 +5065,9 @@ opam:tezos-proxy-server-config: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezos-proxy-server-config SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezos-proxy-server-config artifacts: expire_in: 1 week paths: @@ -5122,9 +5122,9 @@ opam:tezt-tezos: - eval $(opam env) variables: RUNTEZTALIAS: "true" + package: tezt-tezos SCCACHE_DIR: $CI_PROJECT_DIR/_build/_sccache RUSTC_WRAPPER: sccache - package: tezt-tezos artifacts: expire_in: 1 week paths: diff --git a/ci/bin/main.ml b/ci/bin/main.ml index c308b357c705..76ee83aa0cd6 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -198,17 +198,19 @@ let before_script ?(take_ownership = false) ?(source_version = false) @ toggle install_js_deps ". ./scripts/install_build_deps.js.sh" @ before_script -let job_enable_coverage (job : job) = - let variables = - Option.value ~default:[] job.variables - @ [ - ("COVERAGE_OPTIONS", "--instrument-with bisect_ppx"); - ("BISECT_FILE", "$CI_PROJECT_DIR/_coverage_output/"); - ("SLACK_COVERAGE_CHANNEL", "C02PHBE7W73"); - ] - in +let job_append_variables variables (job : job) : job = + let variables = Option.value ~default:[] job.variables @ variables in {job with variables = Some variables} +let job_enable_coverage (job : job) = + job_append_variables + [ + ("COVERAGE_OPTIONS", "--instrument-with bisect_ppx"); + ("BISECT_FILE", "$CI_PROJECT_DIR/_coverage_output/"); + ("SLACK_COVERAGE_CHANNEL", "C02PHBE7W73"); + ] + job + (* Define the [trigger] job *) let trigger = job @@ -748,6 +750,11 @@ let job_enable_coverage_report job : job = in {job with artifacts = Some artifacts; coverage = Some coverage} +let enable_sccache ?(sccache_dir = "$CI_PROJECT_DIR/_sccache") job = + job_append_variables + [("SCCACHE_DIR", sccache_dir); ("RUSTC_WRAPPER", "sccache")] + job + let changeset_octez_docs = [ "scripts/**/*/"; @@ -827,45 +834,44 @@ let _job_opam_prepare : job = ] let job_opam_package {name; group; batch_index} : job = - 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"); - (* 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"); - ("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"]}] + (* 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" -- GitLab From e3f781324491da3af90a43704773ca79377f8892 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 10:59:47 +0100 Subject: [PATCH 074/134] CI: generate [oc.build_kernels.yml] --- .gitlab/ci/jobs/build/oc.build_kernels.yml | 69 ++++++++++++++-------- ci/bin/main.ml | 51 ++++++++++++++++ 2 files changed, 94 insertions(+), 26 deletions(-) diff --git a/.gitlab/ci/jobs/build/oc.build_kernels.yml b/.gitlab/ci/jobs/build/oc.build_kernels.yml index 9af66d5f3328..e780c172d546 100644 --- a/.gitlab/ci/jobs/build/oc.build_kernels.yml +++ b/.gitlab/ci/jobs/build/oc.build_kernels.yml @@ -1,33 +1,50 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + oc.build_kernels: - extends: - - .tags_template__build - - .oc.kernels_template + 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: - # 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 + 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" - 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 + 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 - cache: - - key: kernels - paths: - - cargo/ - - key: kernels-sccache - paths: - - _sccache diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 76ee83aa0cd6..06abc4d5a807 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -755,6 +755,17 @@ let enable_sccache ?(sccache_dir = "$CI_PROJECT_DIR/_sccache") job = [("SCCACHE_DIR", sccache_dir); ("RUSTC_WRAPPER", "sccache")] job +let changeset_octez = + [ + "src/**/*"; + "etherlink/**/*"; + "tezt/**/*"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + "michelson_test_scripts/**/*"; + "tzt_reference_test_suite/**/*"; + ] + let changeset_octez_docs = [ "scripts/**/*/"; @@ -903,6 +914,46 @@ let make_opam_packages (packages : opam_package list) : job list = 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"]}; + ] + (* 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 -- GitLab From af5efb4cad6c6b6802fd67d5aa31ad1e648f5319 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 13:21:19 +0100 Subject: [PATCH 075/134] CI: generate [oc.fetch-records.yml] --- .../ci/jobs/build/oc.tezt:fetch-records.yml | 54 ++++++++++--------- ci/bin/main.ml | 35 ++++++++++++ 2 files changed, 64 insertions(+), 25 deletions(-) diff --git a/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml b/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml index dba8fb3c10ad..e27f149e6866 100644 --- a/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml +++ b/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml @@ -1,32 +1,36 @@ -# 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. +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + oc.tezt:fetch-records: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - - .rules__octez_changes - - .tags_template__build + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: build - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) + 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 script: - - dune exec scripts/ci/update_records/update.exe -- --log-file tezt-fetch-records.log --test-arg from=last-merged-pipeline --info + - 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 + - ./scripts/ci/filter_corrupted_records.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) artifacts: + expire_in: 4 hours 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 + - tezt-fetch-records.log + - tezt/records/*.json + - tezt/records/*.json.broken 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/ci/bin/main.ml b/ci/bin/main.ml index 06abc4d5a807..0fdee526eca9 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -954,6 +954,41 @@ let _job_build_kernels : job = {key = "kernels-sccache"; paths = ["_sccache"]}; ] +(* 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"; + ]) + (* 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 -- GitLab From d2487d5c1a887c74a108e775522765f96ac71293 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 12 Jan 2024 13:17:21 +0100 Subject: [PATCH 076/134] CI: generate install test jobs --- .gitlab/ci/jobs/shared/images.yml | 10 ++ .gitlab/ci/jobs/test/install_octez.yml | 238 ++++++++++++++++--------- ci/bin/main.ml | 117 +++++++++++- 3 files changed, 282 insertions(+), 83 deletions(-) diff --git a/.gitlab/ci/jobs/shared/images.yml b/.gitlab/ci/jobs/shared/images.yml index cd7092283320..a631a7c1ef7b 100644 --- a/.gitlab/ci/jobs/shared/images.yml +++ b/.gitlab/ci/jobs/shared/images.yml @@ -9,8 +9,14 @@ image: debian:bookworm .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__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: @@ -23,3 +29,7 @@ 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__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/test/install_octez.yml b/.gitlab/ci/jobs/test/install_octez.yml index bd9d94e11aec..d79542cb08e0 100644 --- a/.gitlab/ci/jobs/test/install_octez.yml +++ b/.gitlab/ci/jobs/test/install_octez.yml @@ -1,104 +1,178 @@ -.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 +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.install_bin_ubuntu_focal: image: public.ecr.aws/lts/ubuntu:20.04_stable - extends: .oc.install_bin_ubuntu_template - + 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 - extends: .oc.install_bin_ubuntu_template - -.oc.install_bin_rc_ubuntu_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template + 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 - + - ./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 - extends: .oc.install_bin_rc_ubuntu_template - + 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 - 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 + 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 - + - ./docs/introduction/install-bin-ubuntu.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 + stage: test + tags: + - gcp rules: - # temporarily disable until these jobs are optimized - - when: manual - allow_failure: true - + - 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 - extends: .oc.install_opam_ubuntu_template - -.oc.compile_sources_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - + 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 - extends: .oc.compile_sources_template + 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 - + - ./docs/introduction/compile-sources.sh tezos/tezos latest-release oc.compile_sources_bullseye: image: ocaml/opam:debian-11 - extends: .oc.compile_sources_template + 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} + - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 0fdee526eca9..b7a592f45609 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -29,7 +29,7 @@ module Stages = struct let build = Stage.register "build" - let _test = Stage.register "test" + let test = Stage.register "test" let test_coverage = Stage.register "test_coverage" @@ -179,7 +179,29 @@ module Images = struct let debian_bookworm = Image.register ~name:"debian_bookworm" ~image_path:"debian:bookworm" + 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" end let before_script ?(take_ownership = false) ?(source_version = false) @@ -954,6 +976,99 @@ let _job_build_kernels : job = {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. *) -- GitLab From 0050e4ae9feddcfaf08ded5ff8653006d88c46c5 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 13:43:30 +0100 Subject: [PATCH 077/134] CI: generate [oc.build_x86_64] jobs --- .../build/oc.build_x86_64-exp-dev-extra.yml | 64 ++++++++++++++----- .../jobs/build/oc.build_x86_64-released.yml | 58 +++++++++++++---- ci/bin/main.ml | 50 +++++++++++---- 3 files changed, 130 insertions(+), 42 deletions(-) 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 index 783cd0e22d02..450910398ca2 100644 --- 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 @@ -1,20 +1,50 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# '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 + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) 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" + 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 + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + SLACK_COVERAGE_CHANNEL: C02PHBE7W73 + 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 diff --git a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml b/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml index d99b6fedb755..5aa3fb63ce76 100644 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml +++ b/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml @@ -1,16 +1,48 @@ -include: .gitlab/ci/jobs/build/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# 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 + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) variables: - EXECUTABLE_FILES: "script-inputs/released-executables" + 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 + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + SLACK_COVERAGE_CHANNEL: C02PHBE7W73 + 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 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index b7a592f45609..702516f034f9 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -728,7 +728,24 @@ let build_arm_rules = (); ] -(* Write external files for build_arm64_jobs *) +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 [before_merging] and [schedule_extended_test] pipelines *) let job_build_arm64_release = @@ -750,6 +767,26 @@ let job_build_arm64_exp_dev_extra = ~rules:build_arm_rules () +(* Used in [before_merging] and [schedule_extended_test] 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 job_enable_coverage_report job : job = let coverage = "/Coverage: ([^%]+%)/" in let artifacts = @@ -777,17 +814,6 @@ let enable_sccache ?(sccache_dir = "$CI_PROJECT_DIR/_sccache") job = [("SCCACHE_DIR", sccache_dir); ("RUSTC_WRAPPER", "sccache")] job -let changeset_octez = - [ - "src/**/*"; - "etherlink/**/*"; - "tezt/**/*"; - ".gitlab/**/*"; - ".gitlab-ci.yml"; - "michelson_test_scripts/**/*"; - "tzt_reference_test_suite/**/*"; - ] - let changeset_octez_docs = [ "scripts/**/*/"; -- GitLab From 406904d02852470eceba7b1280ed29cf29296051 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 12:05:16 +0100 Subject: [PATCH 078/134] CI: refactor, print Tezt variables more consistently In addition, this format allows easier copy-pasting to a terminal for recreating the execution. --- .gitlab/ci/jobs/test/common.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/test/common.yml b/.gitlab/ci/jobs/test/common.yml index 67e729448b68..9859fba8297e 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. -- GitLab From e81cbeda880a2d75fd1059bd1bdb8de2cd9221cb Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 13:45:24 +0100 Subject: [PATCH 079/134] CI: add [job_tezt] and generate [tezt_flaky] --- .gitlab/ci/jobs/test/tezt_flaky.yml | 66 +++++++++++--- ci/bin/main.ml | 135 ++++++++++++++++++++++++++-- 2 files changed, 182 insertions(+), 19 deletions(-) diff --git a/.gitlab/ci/jobs/test/tezt_flaky.yml b/.gitlab/ci/jobs/test/tezt_flaky.yml index c207396bf0cb..11baf081701b 100644 --- a/.gitlab/ci/jobs/test/tezt_flaky.yml +++ b/.gitlab/ci/jobs/test/tezt_flaky.yml @@ -1,18 +1,56 @@ -include: .gitlab/ci/jobs/test/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. -# Runs flaky Tezts in the 'schedule_extended_test' pipeline. tezt_flaky: - extends: - - .tezt_tests + 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 + 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 + before_script: + - . ./scripts/version.sh + - eval $(opam env) 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. + JUNIT: tezt-junit.xml + TEZT_VARIANT: "" + TESTS: flaky + TEZT_RETRY: "3" + TEZT_PARALLEL: "1" + COVERAGE_OPTIONS: --instrument-with bisect_ppx + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + SLACK_COVERAGE_CHANNEL: C02PHBE7W73 + 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 + - $BISECT_FILE + - $JUNIT + reports: + junit: $JUNIT + when: always + retry: 2 parallel: 1 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 702516f034f9..432e5664f3e6 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -114,7 +114,7 @@ let variables : variables = {{:https://gitlab.com/tezos/opam-repository/} tezos/opam-repository}. *) module Images = struct - let _runtime_e2etest_dependencies = + let runtime_e2etest_dependencies = Image.register ~name:"runtime_e2etest_dependencies" ~image_path: @@ -768,7 +768,7 @@ let job_build_arm64_exp_dev_extra = () (* Used in [before_merging] and [schedule_extended_test] pipelines *) -let _job_build_x86_64_release = +let job_build_x86_64_release = job_build_dynamic_binaries ~external_:true ~arch:Amd64 @@ -778,7 +778,7 @@ let _job_build_x86_64_release = () (* Used in [before_merging] and [schedule_extended_test] pipelines *) -let _job_build_x86_64_exp_dev_extra = +let job_build_x86_64_exp_dev_extra = job_build_dynamic_binaries ~external_:true ~arch:Amd64 @@ -971,7 +971,7 @@ let enable_kernels job = ] job -let _job_build_kernels : job = +let job_build_kernels : job = job_external @@ enable_kernels @@ enable_sccache @@ job ~name:"oc.build_kernels" @@ -1098,7 +1098,7 @@ let _jobs_install_octez : job list = (* 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 = +let job_tezt_fetch_records : job = job_external @@ job ~name:"oc.tezt:fetch-records" @@ -1130,6 +1130,131 @@ let _job_tezt_fetch_records : job = "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"; + "$BISECT_FILE"; + "$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_tezt_flaky : job = + let tezt_flaky_dependencies = + [ + job_build_x86_64_release; + job_build_x86_64_exp_dev_extra; + job_build_kernels; + job_tezt_fetch_records; + ] + in + job_external @@ job_enable_coverage + @@ 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)) + () + (* 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 -- GitLab From 5059ea05ce99c22d27f93f912eb656cf476098a7 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Mon, 15 Jan 2024 18:02:18 +0100 Subject: [PATCH 080/134] CI: generate [documentation:linkcheck] --- .../ci/jobs/doc/documentation:linkcheck.yml | 40 +- .gitlab/ci/jobs/doc/oc.install_python.yml | 86 +- .gitlab/ci/jobs/shared/images.yml | 2 + .gitlab/ci/jobs/test/tezt_flaky.yml | 56 - .../ci/pipelines/schedule_extended_test.yml | 5765 ++++++++++++++++- ci/bin/main.ml | 139 +- 6 files changed, 5936 insertions(+), 152 deletions(-) delete mode 100644 .gitlab/ci/jobs/test/tezt_flaky.yml diff --git a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml b/.gitlab/ci/jobs/doc/documentation:linkcheck.yml index b30510a77215..14f95d96bfdc 100644 --- a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml +++ b/.gitlab/ci/jobs/doc/documentation:linkcheck.yml @@ -1,22 +1,26 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + documentation:linkcheck: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} stage: doc - needs: [] + tags: + - gcp 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 + - 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 + script: + - make all + - make -C docs redirectcheck + - make -C docs linkcheck + before_script: + - . ./scripts/version.sh + - eval $(opam env) + - . $HOME/.venv/bin/activate diff --git a/.gitlab/ci/jobs/doc/oc.install_python.yml b/.gitlab/ci/jobs/doc/oc.install_python.yml index 5f557c24d5c2..d57263e7b6e5 100644 --- a/.gitlab/ci/jobs/doc/oc.install_python.yml +++ b/.gitlab/ci/jobs/doc/oc.install_python.yml @@ -1,31 +1,69 @@ -.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} +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.install_python_focal: image: public.ecr.aws/lts/ubuntu:20.04_stable - extends: .oc.install_python_debian_ubuntu_template - + 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 - extends: .oc.install_python_debian_ubuntu_template - + 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 - extends: .oc.install_python_debian_ubuntu_template + 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/jobs/shared/images.yml b/.gitlab/ci/jobs/shared/images.yml index a631a7c1ef7b..a9d461f9c54b 100644 --- a/.gitlab/ci/jobs/shared/images.yml +++ b/.gitlab/ci/jobs/shared/images.yml @@ -7,6 +7,8 @@ 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: diff --git a/.gitlab/ci/jobs/test/tezt_flaky.yml b/.gitlab/ci/jobs/test/tezt_flaky.yml deleted file mode 100644 index 11baf081701b..000000000000 --- a/.gitlab/ci/jobs/test/tezt_flaky.yml +++ /dev/null @@ -1,56 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 - 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 - before_script: - - . ./scripts/version.sh - - eval $(opam env) - variables: - JUNIT: tezt-junit.xml - TEZT_VARIANT: "" - TESTS: flaky - TEZT_RETRY: "3" - TEZT_PARALLEL: "1" - COVERAGE_OPTIONS: --instrument-with bisect_ppx - BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ - SLACK_COVERAGE_CHANNEL: C02PHBE7W73 - 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 - - $BISECT_FILE - - $JUNIT - reports: - junit: $JUNIT - when: always - retry: 2 - parallel: 1 diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index 1494f1c1256b..25f45ae616c2 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -1,23 +1,5744 @@ -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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + 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 + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + SLACK_COVERAGE_CHANNEL: C02PHBE7W73 + 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: [] + script: + - ./scripts/ci/build_full_unreleased.sh + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + 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 + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + SLACK_COVERAGE_CHANNEL: C02PHBE7W73 + 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 + 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 + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + 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: [] + 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" + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + script: + - opam remote add dev-repo ./_opam-repo-for-release + - opam install --yes ${package}.dev + - opam reinstall --yes --with-test ${package}.dev + after_script: + - eval $(opam env) + - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh + before_script: + - eval $(opam env) + 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 + 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 + before_script: + - . ./scripts/version.sh + - eval $(opam env) + variables: + JUNIT: tezt-junit.xml + TEZT_VARIANT: "" + TESTS: flaky + TEZT_RETRY: "3" + TEZT_PARALLEL: "1" + COVERAGE_OPTIONS: --instrument-with bisect_ppx + BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ + SLACK_COVERAGE_CHANNEL: C02PHBE7W73 + 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 + - $BISECT_FILE + - $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 + script: + - make all + - make -C docs redirectcheck + - make -C docs linkcheck + before_script: + - . ./scripts/version.sh + - eval $(opam env) + - . $HOME/.venv/bin/activate +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/bin/main.ml b/ci/bin/main.ml index 432e5664f3e6..7f8888d39a2b 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -179,6 +179,9 @@ module Images = struct 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" @@ -420,11 +423,11 @@ let job_docker_build ?rules ~arch ?(external_ = false) docker_build_type : job = if external_ then job_external ~directory:"build" ~filename_suffix job else job -(* Used in [before_merging] pipeline *) +(* Used in external [before_merging] pipeline *) let _job_docker_amd64_test_manual : job = job_docker_build ~external_:true ~arch:Amd64 Test_manual -(* Used in [before_merging] pipeline *) +(* Used in external [before_merging] pipeline *) let _job_docker_arm64_test_manual : job = job_docker_build ~external_:true ~arch:Arm64 Test_manual @@ -747,7 +750,7 @@ let build_x86_64_rules = (* Write external files for build_{arm64, x86_64} jobs *) -(* Used in [before_merging] and [schedule_extended_test] pipelines *) +(* Used in external [before_merging] pipelines *) let job_build_arm64_release = job_build_dynamic_binaries ~external_:true @@ -757,7 +760,7 @@ let job_build_arm64_release = ~rules:build_arm_rules () -(* Used in [before_merging] and [schedule_extended_test] pipelines *) +(* Used in external [before_merging] pipelines *) let job_build_arm64_exp_dev_extra = job_build_dynamic_binaries ~external_:true @@ -767,7 +770,7 @@ let job_build_arm64_exp_dev_extra = ~rules:build_arm_rules () -(* Used in [before_merging] and [schedule_extended_test] pipelines *) +(* Used in external [before_merging] pipelines *) let job_build_x86_64_release = job_build_dynamic_binaries ~external_:true @@ -875,7 +878,7 @@ let opam_rules ~only_marge_bot ?batch_index () = job_rule ~when_:Never (); ] -let _job_opam_prepare : job = +let job_opam_prepare : job = job_external @@ job ~name:"opam:prepare" @@ -907,7 +910,7 @@ let job_opam_package {name; group; batch_index} : job = Therefore, a retry was added. This should be removed once the underlying tests have been fixed. *) ~retry:2 - ~dependencies:(Dependent [Artifacts _job_opam_prepare]) + ~dependencies:(Dependent [Artifacts job_opam_prepare]) ~rules:(opam_rules ~only_marge_bot:(group = All) ~batch_index ()) ~variables: [ @@ -960,7 +963,7 @@ 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 jobs_opam_package : job list = make_opam_packages read_opam_packages let enable_kernels job = job_append_variables @@ -1011,7 +1014,7 @@ let image_of_distribution = function | Ubuntu_jammy -> Images.ubuntu_jammy | Fedora_37 -> Images.fedora_37 -let _jobs_install_octez : job list = +let jobs_install_octez : job list = let changeset_install_jobs = ["docs/introduction/install*.sh"; "docs/introduction/compile*.sh"] in @@ -1230,30 +1233,65 @@ let job_tezt ?rules ?parallel ?(tags = ["gcp_tezt"]) ~name ~tezt_tests "./scripts/ci/merge_coverage.sh"; ] -let _job_tezt_flaky : job = - let tezt_flaky_dependencies = +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_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_build_x86_64_release; - job_build_x86_64_exp_dev_extra; - job_build_kernels; - job_tezt_fetch_records; + 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; ] - in - job_external @@ job_enable_coverage - @@ 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)) - () (* Register pipelines types. Pipelines types are used to generate workflow rules and includes of the files where the jobs of the @@ -1404,7 +1442,44 @@ let () = "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 + 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_enable_coverage + @@ 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 = -- GitLab From 4aa81b4979fe2035fc60fbbc0c7f68276e2f174d Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 15:21:20 +0100 Subject: [PATCH 081/134] CI: generate job [sanity_ci] --- .gitlab/ci/jobs/sanity/sanity_ci.yml | 27 ++++++++++++++------------- ci/bin/main.ml | 19 ++++++++++++++++++- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/.gitlab/ci/jobs/sanity/sanity_ci.yml b/.gitlab/ci/jobs/sanity/sanity_ci.yml index 1953d5c94cd1..40c81f5638d2 100644 --- a/.gitlab/ci/jobs/sanity/sanity_ci.yml +++ b/.gitlab/ci/jobs/sanity/sanity_ci.yml @@ -1,16 +1,17 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + sanity_ci: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: sanity - before_script: - - ./scripts/ci/take_ownership.sh - - eval $(opam env) + tags: + - gcp + dependencies: [] 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 - # Check that .gitlab-ci.yml is up to date - - make -C ci check + - make -C manifest check + - ./scripts/lint.sh --check-gitlab-ci-yml + - ./scripts/ci/check_alpine_version.sh + - make -C ci check + before_script: + - ./scripts/ci/take_ownership.sh + - eval $(opam env) diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 7f8888d39a2b..858c0c778650 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -25,7 +25,7 @@ let default = default ~interruptible:true () module Stages = struct let trigger = Stage.register "trigger" - let _sanity = Stage.register "sanity" + let sanity = Stage.register "sanity" let build = Stage.register "build" @@ -1293,6 +1293,23 @@ let jobs_install_python = ~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"; + ] + (* 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 -- GitLab From 0e0ffae5713db3c3694eac7729f8b672b2942b6c Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 15:24:51 +0100 Subject: [PATCH 082/134] CI: generate job [docker:hadolint] --- .gitlab/ci/jobs/sanity/docker:hadolint.yml | 24 +++++++++++++--------- .gitlab/ci/jobs/shared/images.yml | 2 ++ ci/bin/main.ml | 21 +++++++++++++++++++ 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/.gitlab/ci/jobs/sanity/docker:hadolint.yml b/.gitlab/ci/jobs/sanity/docker:hadolint.yml index 23a4224aa9e2..3078cb46192a 100644 --- a/.gitlab/ci/jobs/sanity/docker:hadolint.yml +++ b/.gitlab/ci/jobs/sanity/docker:hadolint.yml @@ -1,15 +1,19 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + docker:hadolint: - extends: - - .default_settings_template image: hadolint/hadolint:2.9.3-debian stage: sanity + tags: + - gcp rules: - # Only run on merge requests when Dockerfiles have changed - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - build.Dockerfile - - Dockerfile - allow_failure: true + - changes: + - build.Dockerfile + - Dockerfile + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: on_success + allow_failure: true + dependencies: [] script: - - hadolint build.Dockerfile - - hadolint Dockerfile + - hadolint build.Dockerfile + - hadolint Dockerfile diff --git a/.gitlab/ci/jobs/shared/images.yml b/.gitlab/ci/jobs/shared/images.yml index a9d461f9c54b..860198419083 100644 --- a/.gitlab/ci/jobs/shared/images.yml +++ b/.gitlab/ci/jobs/shared/images.yml @@ -15,6 +15,8 @@ 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: diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 858c0c778650..d75e43728083 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -205,6 +205,9 @@ module Images = struct 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" end let before_script ?(take_ownership = false) ?(source_version = false) @@ -1310,6 +1313,24 @@ let _job_sanity_ci = "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"] + (* 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 -- GitLab From 548b78e068250cd682178cd2adef0baa5071cdeb Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 15:29:52 +0100 Subject: [PATCH 083/134] CI: refactor, remove unused variables and artifacts from [ocaml-check] --- .gitlab/ci/jobs/build/ocaml-check.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitlab/ci/jobs/build/ocaml-check.yml b/.gitlab/ci/jobs/build/ocaml-check.yml index 9cb6519f1120..8b7529e4bc48 100644 --- a/.gitlab/ci/jobs/build/ocaml-check.yml +++ b/.gitlab/ci/jobs/build/ocaml-check.yml @@ -1,7 +1,8 @@ ocaml-check: extends: - - .tags_template__build - - .oc.build + - .default_settings_template + - .image_template__runtime_build_dependencies + stage: build needs: [trigger] rules: - changes: @@ -12,5 +13,9 @@ ocaml-check: - .gitlab-ci.yml - devtools/**/* when: on_success + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) script: - dune build @check -- GitLab From 8d849442edce0ae568790378f5edd8c982cb27d4 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 15:33:45 +0100 Subject: [PATCH 084/134] CI: generate [ocaml-check] --- .gitlab/ci/jobs/build/ocaml-check.yml | 38 +++++++++++++++------------ ci/bin/main.ml | 19 ++++++++++++++ 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/.gitlab/ci/jobs/build/ocaml-check.yml b/.gitlab/ci/jobs/build/ocaml-check.yml index 8b7529e4bc48..cdb336891ae8 100644 --- a/.gitlab/ci/jobs/build/ocaml-check.yml +++ b/.gitlab/ci/jobs/build/ocaml-check.yml @@ -1,21 +1,25 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + ocaml-check: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: build - needs: [trigger] + tags: + - gcp rules: - - changes: - paths: - - src/**/* - - tezt/**/* - - .gitlab/**/* - - .gitlab-ci.yml - - devtools/**/* - when: on_success - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) + - changes: + - src/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - devtools/**/* + when: on_success + needs: + - trigger + dependencies: [] script: - - dune build @check + - dune build @check + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) diff --git a/ci/bin/main.ml b/ci/bin/main.ml index d75e43728083..c36b20222dd3 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1331,6 +1331,25 @@ let _job_docker_hadolint = ] ["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"] + (* 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 -- GitLab From 65dfa5a761d91d903d3cd5132fad34508b6e5379 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 15:37:48 +0100 Subject: [PATCH 085/134] CI: refactor, remove [build_get_contracts] subsumed by [ocaml-check] [build_get_contracts] runs [dune build devtools/get_contracts/@check] where as [ocaml-check] runs [dune build @check] which includes the former. --- .gitlab/ci/jobs/build/build_get_contracts.yml | 16 ---------------- .gitlab/ci/pipelines/before_merging.yml | 1 - 2 files changed, 17 deletions(-) delete mode 100644 .gitlab/ci/jobs/build/build_get_contracts.yml 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 904de9f76988..000000000000 --- 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/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 17871f8300ac..a381a3fd8d01 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -15,7 +15,6 @@ include: - .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 From 31c818be3b4dcd3d9705787240a41816c16bfe21 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 15:47:06 +0100 Subject: [PATCH 086/134] CI: refactor, remove superflous rustup download This is already done in the [script] section of [.bin_packages_common] this job extends (compare with the other [bin_package] jobs). --- .gitlab/ci/jobs/build/bin_packages_manual.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab/ci/jobs/build/bin_packages_manual.yml b/.gitlab/ci/jobs/build/bin_packages_manual.yml index 0d6248ee8a36..44c3d8d49035 100644 --- a/.gitlab/ci/jobs/build/bin_packages_manual.yml +++ b/.gitlab/ci/jobs/build/bin_packages_manual.yml @@ -14,7 +14,6 @@ oc.build:dpkg:amd64: - . ./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 -- GitLab From 73b2632befa8362444f82124637cdec8e5539c31 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 15:50:02 +0100 Subject: [PATCH 087/134] CI: refactor, align [dnf] packages in [rpm] jobs Changes the set of packages downloaded in [oc.build:rpm:amd64] of [bin_packages_manual.yml] to ensure they correspond to those downloaded in the same version of the job in [bin_packages.yml]. --- .gitlab/ci/jobs/build/bin_packages_manual.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/build/bin_packages_manual.yml b/.gitlab/ci/jobs/build/bin_packages_manual.yml index 44c3d8d49035..ba05f714162f 100644 --- a/.gitlab/ci/jobs/build/bin_packages_manual.yml +++ b/.gitlab/ci/jobs/build/bin_packages_manual.yml @@ -31,7 +31,7 @@ oc.build:rpm:amd64: 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++ + - 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 -- GitLab From 39bc318220155240ef5d847e664bdaaa2a99de9d Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Tue, 16 Jan 2024 15:52:58 +0100 Subject: [PATCH 088/134] WIP generate manual bin_packages --- .gitlab/ci/jobs/build/bin_packages_manual.yml | 82 ++++++++++++++----- .gitlab/ci/pipelines/beta_release_tag.yml | 4 +- .gitlab/ci/pipelines/non_release_tag.yml | 4 +- .gitlab/ci/pipelines/non_release_tag_test.yml | 4 +- .gitlab/ci/pipelines/release_tag.yml | 4 +- .gitlab/ci/pipelines/release_tag_test.yml | 4 +- ci/bin/main.ml | 63 ++++++++------ 7 files changed, 110 insertions(+), 55 deletions(-) diff --git a/.gitlab/ci/jobs/build/bin_packages_manual.yml b/.gitlab/ci/jobs/build/bin_packages_manual.yml index ba05f714162f..1e0a3bdc759a 100644 --- a/.gitlab/ci/jobs/build/bin_packages_manual.yml +++ b/.gitlab/ci/jobs/build/bin_packages_manual.yml @@ -1,37 +1,75 @@ -include: .gitlab/ci/jobs/build/bin_packages_common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.build:dpkg:amd64: - extends: - - .tags_template__build - - .bin_packages_common image: debian:bookworm stage: manual - when: manual + tags: + - gcp needs: [] - variables: - TARGET: "dpkg" + dependencies: [] + 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 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 + - . ./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 + 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 - + - octez-*.deb + when: on_success + when: manual oc.build:rpm:amd64: - extends: - - .tags_template__build - - .bin_packages_common image: fedora:39 stage: manual - when: manual + tags: + - gcp needs: [] - variables: - TARGET: "rpm" + dependencies: [] + 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 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++ + - . ./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++ + 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 + - octez-*.rpm + when: on_success + when: manual diff --git a/.gitlab/ci/pipelines/beta_release_tag.yml b/.gitlab/ci/pipelines/beta_release_tag.yml index 9ac53d4f5ceb..0f02c1d89459 100644 --- a/.gitlab/ci/pipelines/beta_release_tag.yml +++ b/.gitlab/ci/pipelines/beta_release_tag.yml @@ -87,7 +87,6 @@ oc.build:dpkg:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -99,6 +98,7 @@ oc.build:dpkg:amd64: - eval $(opam env) - make $TARGET 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 @@ -121,7 +121,6 @@ oc.build:rpm:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -133,6 +132,7 @@ oc.build:rpm:amd64: - eval $(opam env) - make $TARGET 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 diff --git a/.gitlab/ci/pipelines/non_release_tag.yml b/.gitlab/ci/pipelines/non_release_tag.yml index 146ecee79efe..9b0205f7e045 100644 --- a/.gitlab/ci/pipelines/non_release_tag.yml +++ b/.gitlab/ci/pipelines/non_release_tag.yml @@ -87,7 +87,6 @@ oc.build:dpkg:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -99,6 +98,7 @@ oc.build:dpkg:amd64: - eval $(opam env) - make $TARGET 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 @@ -121,7 +121,6 @@ oc.build:rpm:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -133,6 +132,7 @@ oc.build:rpm:amd64: - eval $(opam env) - make $TARGET 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 diff --git a/.gitlab/ci/pipelines/non_release_tag_test.yml b/.gitlab/ci/pipelines/non_release_tag_test.yml index 3af1e7951c8b..60225f89c79d 100644 --- a/.gitlab/ci/pipelines/non_release_tag_test.yml +++ b/.gitlab/ci/pipelines/non_release_tag_test.yml @@ -87,7 +87,6 @@ oc.build:dpkg:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -99,6 +98,7 @@ oc.build:dpkg:amd64: - eval $(opam env) - make $TARGET 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 @@ -121,7 +121,6 @@ oc.build:rpm:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -133,6 +132,7 @@ oc.build:rpm:amd64: - eval $(opam env) - make $TARGET 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 diff --git a/.gitlab/ci/pipelines/release_tag.yml b/.gitlab/ci/pipelines/release_tag.yml index 59d422ed9e59..d20137ac2137 100644 --- a/.gitlab/ci/pipelines/release_tag.yml +++ b/.gitlab/ci/pipelines/release_tag.yml @@ -87,7 +87,6 @@ oc.build:dpkg:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -99,6 +98,7 @@ oc.build:dpkg:amd64: - eval $(opam env) - make $TARGET 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 @@ -121,7 +121,6 @@ oc.build:rpm:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -133,6 +132,7 @@ oc.build:rpm:amd64: - eval $(opam env) - make $TARGET 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 diff --git a/.gitlab/ci/pipelines/release_tag_test.yml b/.gitlab/ci/pipelines/release_tag_test.yml index c8d8c3467255..33367f8c6774 100644 --- a/.gitlab/ci/pipelines/release_tag_test.yml +++ b/.gitlab/ci/pipelines/release_tag_test.yml @@ -87,7 +87,6 @@ oc.build:dpkg:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -99,6 +98,7 @@ oc.build:dpkg:amd64: - eval $(opam env) - make $TARGET 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 @@ -121,7 +121,6 @@ oc.build:rpm:amd64: needs: [] dependencies: [] script: - - . ./scripts/version.sh - wget https://sh.rustup.rs/rustup-init.sh - chmod +x rustup-init.sh - ./rustup-init.sh --profile minimal --default-toolchain $recommended_rust_version @@ -133,6 +132,7 @@ oc.build:rpm:amd64: - eval $(opam env) - make $TARGET 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 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index c36b20222dd3..a43f874815f1 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -452,7 +452,7 @@ let job_docker_merge_manifests ~ci_docker_hub ~job_docker_amd64 type bin_package_target = Dpkg | Rpm -let job_build_bin_package ~arch ~target : job = +let job_build_bin_package ?(manual = false) ~arch ~target () : job = let arch_string = match arch with Tezos_ci.Amd64 -> "amd64" | Arm64 -> "arm64" in @@ -472,29 +472,34 @@ let job_build_bin_package ~arch ~target : job = [artifact_path] in let before_script = - 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++"; - ] + 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:Stages.build + ~stage ~dependencies:(Dependent []) ~variables: [ @@ -506,7 +511,6 @@ let job_build_bin_package ~arch ~target : job = ~artifacts ~before_script [ - ". ./scripts/version.sh"; "wget https://sh.rustup.rs/rustup-init.sh"; "chmod +x rustup-init.sh"; "./rustup-init.sh --profile minimal --default-toolchain \ @@ -520,9 +524,22 @@ let job_build_bin_package ~arch ~target : job = ] 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 + 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 _job_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. -- GitLab From 04ecf77f00e02d87315b70244ad7272c1c8946dc Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 17 Jan 2024 08:36:01 +0100 Subject: [PATCH 089/134] CI: simplify regexp for [Rules.has_mr_label] --- .../build/oc.build_arm64-exp-dev-extra.yml | 2 +- .../ci/jobs/build/oc.build_arm64-released.yml | 2 +- .../ci/jobs/doc/documentation:linkcheck.yml | 2 +- .gitlab/ci/jobs/doc/oc.install_python.yml | 6 +- .gitlab/ci/jobs/packaging/opam:prepare.yml | 2 +- .gitlab/ci/jobs/packaging/opam_package.yml | 180 ++++++++-------- .gitlab/ci/pipelines/master_branch.yml | 4 +- .../ci/pipelines/schedule_extended_test.yml | 194 +++++++++--------- ci/bin/rules.ml | 2 +- 9 files changed, 197 insertions(+), 197 deletions(-) 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 index cd9f766d52e1..22a1582840a3 100644 --- a/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml +++ b/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml @@ -9,7 +9,7 @@ oc.build_arm64-exp-dev-extra: rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: always - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--arm64(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ when: on_success - changes: - src/**/* diff --git a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml b/.gitlab/ci/jobs/build/oc.build_arm64-released.yml index 2da09eaada50..36fea10e0409 100644 --- a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml +++ b/.gitlab/ci/jobs/build/oc.build_arm64-released.yml @@ -9,7 +9,7 @@ oc.build_arm64-released: rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: always - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--arm64(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ when: on_success - changes: - src/**/* diff --git a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml b/.gitlab/ci/jobs/doc/documentation:linkcheck.yml index 14f95d96bfdc..20b04ddf322e 100644 --- a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml +++ b/.gitlab/ci/jobs/doc/documentation:linkcheck.yml @@ -9,7 +9,7 @@ documentation:linkcheck: rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: always - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ when: on_success - when: manual allow_failure: true diff --git a/.gitlab/ci/jobs/doc/oc.install_python.yml b/.gitlab/ci/jobs/doc/oc.install_python.yml index d57263e7b6e5..95cd68e97d29 100644 --- a/.gitlab/ci/jobs/doc/oc.install_python.yml +++ b/.gitlab/ci/jobs/doc/oc.install_python.yml @@ -13,7 +13,7 @@ oc.install_python_focal: - docs/developer/install-python-debian-ubuntu.sh if: $CI_PIPELINE_SOURCE == "merge_request_event" when: on_success - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ when: on_success - when: manual allow_failure: true @@ -35,7 +35,7 @@ oc.install_python_jammy: - docs/developer/install-python-debian-ubuntu.sh if: $CI_PIPELINE_SOURCE == "merge_request_event" when: on_success - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ when: on_success - when: manual allow_failure: true @@ -57,7 +57,7 @@ oc.install_python_bullseye: - docs/developer/install-python-debian-ubuntu.sh if: $CI_PIPELINE_SOURCE == "merge_request_event" when: on_success - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ when: on_success - when: manual allow_failure: true diff --git a/.gitlab/ci/jobs/packaging/opam:prepare.yml b/.gitlab/ci/jobs/packaging/opam:prepare.yml index 217547ce7e92..a03ee988afce 100644 --- a/.gitlab/ci/jobs/packaging/opam:prepare.yml +++ b/.gitlab/ci/jobs/packaging/opam:prepare.yml @@ -10,7 +10,7 @@ opam:prepare: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index 1d31cf91d101..e2eb7e092d8e 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -10,7 +10,7 @@ opam:bls12-381: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -67,7 +67,7 @@ opam:octez-accuser-Proxford: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -124,7 +124,7 @@ opam:octez-accuser-PtNairob: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -181,7 +181,7 @@ opam:octez-alcotezt: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -238,7 +238,7 @@ opam:octez-baker-Proxford: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -295,7 +295,7 @@ opam:octez-baker-PtNairob: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -352,7 +352,7 @@ opam:octez-client: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -409,7 +409,7 @@ opam:octez-codec: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -466,7 +466,7 @@ opam:octez-crawler: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -523,7 +523,7 @@ opam:octez-dac-client: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -580,7 +580,7 @@ opam:octez-dac-node: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -637,7 +637,7 @@ opam:octez-distributed-internal: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -694,7 +694,7 @@ opam:octez-distributed-lwt-internal: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -751,7 +751,7 @@ opam:octez-injector: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -808,7 +808,7 @@ opam:octez-internal-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -865,7 +865,7 @@ opam:octez-l2-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -922,7 +922,7 @@ opam:octez-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -979,7 +979,7 @@ opam:octez-node: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -1036,7 +1036,7 @@ opam:octez-node-config: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -1093,7 +1093,7 @@ opam:octez-proto-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -1150,7 +1150,7 @@ opam:octez-protocol-000-Ps9mPmXa-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -1207,7 +1207,7 @@ opam:octez-protocol-001-PtCJ7pwo-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -1264,7 +1264,7 @@ opam:octez-protocol-002-PsYLVpVv-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -1321,7 +1321,7 @@ opam:octez-protocol-003-PsddFKi3-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1378,7 +1378,7 @@ opam:octez-protocol-004-Pt24m4xi-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1435,7 +1435,7 @@ opam:octez-protocol-005-PsBabyM1-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1492,7 +1492,7 @@ opam:octez-protocol-006-PsCARTHA-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1549,7 +1549,7 @@ opam:octez-protocol-007-PsDELPH1-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1606,7 +1606,7 @@ opam:octez-protocol-008-PtEdo2Zk-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1663,7 +1663,7 @@ opam:octez-protocol-009-PsFLoren-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1720,7 +1720,7 @@ opam:octez-protocol-010-PtGRANAD-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1777,7 +1777,7 @@ opam:octez-protocol-011-PtHangz2-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1834,7 +1834,7 @@ opam:octez-protocol-012-Psithaca-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1891,7 +1891,7 @@ opam:octez-protocol-013-PtJakart-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1948,7 +1948,7 @@ opam:octez-protocol-014-PtKathma-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2005,7 +2005,7 @@ opam:octez-protocol-015-PtLimaPt-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2062,7 +2062,7 @@ opam:octez-protocol-016-PtMumbai-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2119,7 +2119,7 @@ opam:octez-protocol-017-PtNairob-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2176,7 +2176,7 @@ opam:octez-protocol-018-Proxford-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2233,7 +2233,7 @@ opam:octez-protocol-alpha-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2290,7 +2290,7 @@ opam:octez-protocol-compiler: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -2347,7 +2347,7 @@ opam:octez-proxy-server: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -2404,7 +2404,7 @@ opam:octez-rpc-process: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -2461,7 +2461,7 @@ opam:octez-shell-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -2518,7 +2518,7 @@ opam:octez-signer: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -2575,7 +2575,7 @@ opam:octez-smart-rollup-node: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -2632,7 +2632,7 @@ opam:octez-smart-rollup-node-Proxford: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -2689,7 +2689,7 @@ opam:octez-smart-rollup-node-PtNairob: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2746,7 +2746,7 @@ opam:octez-smart-rollup-node-alpha: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2803,7 +2803,7 @@ opam:octez-smart-rollup-node-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2860,7 +2860,7 @@ opam:octez-smart-rollup-wasm-debugger: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -2917,7 +2917,7 @@ opam:octez-smart-rollup-wasm-debugger-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2974,7 +2974,7 @@ opam:octez-smart-rollup-wasm-debugger-plugin: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -3031,7 +3031,7 @@ opam:octez-version: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -3088,7 +3088,7 @@ opam:tezos-benchmark: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -3145,7 +3145,7 @@ opam:tezos-client-demo-counter: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3202,7 +3202,7 @@ opam:tezos-client-genesis: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3259,7 +3259,7 @@ opam:tezos-dac-client-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3316,7 +3316,7 @@ opam:tezos-dac-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3373,7 +3373,7 @@ opam:tezos-dac-node-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -3430,7 +3430,7 @@ opam:tezos-dal-node-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3487,7 +3487,7 @@ opam:tezos-dal-node-services: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -3544,7 +3544,7 @@ opam:tezos-openapi: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -3601,7 +3601,7 @@ opam:tezos-protocol-000-Ps9mPmXa: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3658,7 +3658,7 @@ opam:tezos-protocol-001-PtCJ7pwo: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3715,7 +3715,7 @@ opam:tezos-protocol-002-PsYLVpVv: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3772,7 +3772,7 @@ opam:tezos-protocol-003-PsddFKi3: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3829,7 +3829,7 @@ opam:tezos-protocol-004-Pt24m4xi: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -3886,7 +3886,7 @@ opam:tezos-protocol-005-PsBABY5H: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -3943,7 +3943,7 @@ opam:tezos-protocol-005-PsBabyM1: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4000,7 +4000,7 @@ opam:tezos-protocol-006-PsCARTHA: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4057,7 +4057,7 @@ opam:tezos-protocol-007-PsDELPH1: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4114,7 +4114,7 @@ opam:tezos-protocol-008-PtEdo2Zk: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4171,7 +4171,7 @@ opam:tezos-protocol-008-PtEdoTez: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4228,7 +4228,7 @@ opam:tezos-protocol-009-PsFLoren: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4285,7 +4285,7 @@ opam:tezos-protocol-010-PtGRANAD: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4342,7 +4342,7 @@ opam:tezos-protocol-011-PtHangz2: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4399,7 +4399,7 @@ opam:tezos-protocol-012-Psithaca: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4456,7 +4456,7 @@ opam:tezos-protocol-013-PtJakart: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4513,7 +4513,7 @@ opam:tezos-protocol-014-PtKathma: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4570,7 +4570,7 @@ opam:tezos-protocol-015-PtLimaPt: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4627,7 +4627,7 @@ opam:tezos-protocol-016-PtMumbai: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4684,7 +4684,7 @@ opam:tezos-protocol-017-PtNairob: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4741,7 +4741,7 @@ opam:tezos-protocol-018-Proxford: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4798,7 +4798,7 @@ opam:tezos-protocol-alpha: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4855,7 +4855,7 @@ opam:tezos-protocol-demo-counter: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4912,7 +4912,7 @@ opam:tezos-protocol-demo-noops: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4969,7 +4969,7 @@ opam:tezos-protocol-genesis: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -5026,7 +5026,7 @@ opam:tezos-proxy-server-config: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -5083,7 +5083,7 @@ opam:tezt-tezos: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: diff --git a/.gitlab/ci/pipelines/master_branch.yml b/.gitlab/ci/pipelines/master_branch.yml index b951a4d3c765..76094d51f188 100644 --- a/.gitlab/ci/pipelines/master_branch.yml +++ b/.gitlab/ci/pipelines/master_branch.yml @@ -45,7 +45,7 @@ oc.build_arm64-released: rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: always - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--arm64(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ when: on_success - changes: - src/**/* @@ -84,7 +84,7 @@ oc.build_arm64-exp-dev-extra: rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: always - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--arm64(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ when: on_success - changes: - src/**/* diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index 25f45ae616c2..ed783205d845 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -9,7 +9,7 @@ oc.build_arm64-released: rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: always - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--arm64(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ when: on_success - changes: - src/**/* @@ -48,7 +48,7 @@ oc.build_arm64-exp-dev-extra: rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: always - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--arm64(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--arm64(?:$|,)/ when: on_success - changes: - src/**/* @@ -262,7 +262,7 @@ opam:prepare: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -304,7 +304,7 @@ opam:bls12-381: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -361,7 +361,7 @@ opam:octez-accuser-Proxford: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -418,7 +418,7 @@ opam:octez-accuser-PtNairob: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -475,7 +475,7 @@ opam:octez-alcotezt: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -532,7 +532,7 @@ opam:octez-baker-Proxford: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -589,7 +589,7 @@ opam:octez-baker-PtNairob: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -646,7 +646,7 @@ opam:octez-client: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -703,7 +703,7 @@ opam:octez-codec: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -760,7 +760,7 @@ opam:octez-crawler: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -817,7 +817,7 @@ opam:octez-dac-client: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -874,7 +874,7 @@ opam:octez-dac-node: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -931,7 +931,7 @@ opam:octez-distributed-internal: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -988,7 +988,7 @@ opam:octez-distributed-lwt-internal: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -1045,7 +1045,7 @@ opam:octez-injector: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -1102,7 +1102,7 @@ opam:octez-internal-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -1159,7 +1159,7 @@ opam:octez-l2-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -1216,7 +1216,7 @@ opam:octez-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -1273,7 +1273,7 @@ opam:octez-node: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -1330,7 +1330,7 @@ opam:octez-node-config: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -1387,7 +1387,7 @@ opam:octez-proto-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -1444,7 +1444,7 @@ opam:octez-protocol-000-Ps9mPmXa-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -1501,7 +1501,7 @@ opam:octez-protocol-001-PtCJ7pwo-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -1558,7 +1558,7 @@ opam:octez-protocol-002-PsYLVpVv-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -1615,7 +1615,7 @@ opam:octez-protocol-003-PsddFKi3-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1672,7 +1672,7 @@ opam:octez-protocol-004-Pt24m4xi-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1729,7 +1729,7 @@ opam:octez-protocol-005-PsBabyM1-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1786,7 +1786,7 @@ opam:octez-protocol-006-PsCARTHA-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1843,7 +1843,7 @@ opam:octez-protocol-007-PsDELPH1-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1900,7 +1900,7 @@ opam:octez-protocol-008-PtEdo2Zk-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -1957,7 +1957,7 @@ opam:octez-protocol-009-PsFLoren-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2014,7 +2014,7 @@ opam:octez-protocol-010-PtGRANAD-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2071,7 +2071,7 @@ opam:octez-protocol-011-PtHangz2-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2128,7 +2128,7 @@ opam:octez-protocol-012-Psithaca-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2185,7 +2185,7 @@ opam:octez-protocol-013-PtJakart-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2242,7 +2242,7 @@ opam:octez-protocol-014-PtKathma-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2299,7 +2299,7 @@ opam:octez-protocol-015-PtLimaPt-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 3 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 3 minutes - changes: @@ -2356,7 +2356,7 @@ opam:octez-protocol-016-PtMumbai-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2413,7 +2413,7 @@ opam:octez-protocol-017-PtNairob-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2470,7 +2470,7 @@ opam:octez-protocol-018-Proxford-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2527,7 +2527,7 @@ opam:octez-protocol-alpha-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -2584,7 +2584,7 @@ opam:octez-protocol-compiler: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -2641,7 +2641,7 @@ opam:octez-proxy-server: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -2698,7 +2698,7 @@ opam:octez-rpc-process: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -2755,7 +2755,7 @@ opam:octez-shell-libs: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -2812,7 +2812,7 @@ opam:octez-signer: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -2869,7 +2869,7 @@ opam:octez-smart-rollup-node: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -2926,7 +2926,7 @@ opam:octez-smart-rollup-node-Proxford: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -2983,7 +2983,7 @@ opam:octez-smart-rollup-node-PtNairob: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -3040,7 +3040,7 @@ opam:octez-smart-rollup-node-alpha: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -3097,7 +3097,7 @@ opam:octez-smart-rollup-node-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -3154,7 +3154,7 @@ opam:octez-smart-rollup-wasm-debugger: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 1 minute - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 1 minute - changes: @@ -3211,7 +3211,7 @@ opam:octez-smart-rollup-wasm-debugger-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -3268,7 +3268,7 @@ opam:octez-smart-rollup-wasm-debugger-plugin: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -3325,7 +3325,7 @@ opam:octez-version: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -3382,7 +3382,7 @@ opam:tezos-benchmark: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -3439,7 +3439,7 @@ opam:tezos-client-demo-counter: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3496,7 +3496,7 @@ opam:tezos-client-genesis: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3553,7 +3553,7 @@ opam:tezos-dac-client-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3610,7 +3610,7 @@ opam:tezos-dac-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3667,7 +3667,7 @@ opam:tezos-dac-node-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 2 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 2 minutes - changes: @@ -3724,7 +3724,7 @@ opam:tezos-dal-node-lib: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3781,7 +3781,7 @@ opam:tezos-dal-node-services: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -3838,7 +3838,7 @@ opam:tezos-openapi: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -3895,7 +3895,7 @@ opam:tezos-protocol-000-Ps9mPmXa: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -3952,7 +3952,7 @@ opam:tezos-protocol-001-PtCJ7pwo: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -4009,7 +4009,7 @@ opam:tezos-protocol-002-PsYLVpVv: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -4066,7 +4066,7 @@ opam:tezos-protocol-003-PsddFKi3: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 4 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 4 minutes - changes: @@ -4123,7 +4123,7 @@ opam:tezos-protocol-004-Pt24m4xi: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4180,7 +4180,7 @@ opam:tezos-protocol-005-PsBABY5H: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4237,7 +4237,7 @@ opam:tezos-protocol-005-PsBabyM1: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4294,7 +4294,7 @@ opam:tezos-protocol-006-PsCARTHA: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4351,7 +4351,7 @@ opam:tezos-protocol-007-PsDELPH1: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4408,7 +4408,7 @@ opam:tezos-protocol-008-PtEdo2Zk: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4465,7 +4465,7 @@ opam:tezos-protocol-008-PtEdoTez: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4522,7 +4522,7 @@ opam:tezos-protocol-009-PsFLoren: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4579,7 +4579,7 @@ opam:tezos-protocol-010-PtGRANAD: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4636,7 +4636,7 @@ opam:tezos-protocol-011-PtHangz2: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4693,7 +4693,7 @@ opam:tezos-protocol-012-Psithaca: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4750,7 +4750,7 @@ opam:tezos-protocol-013-PtJakart: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4807,7 +4807,7 @@ opam:tezos-protocol-014-PtKathma: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 5 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 5 minutes - changes: @@ -4864,7 +4864,7 @@ opam:tezos-protocol-015-PtLimaPt: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4921,7 +4921,7 @@ opam:tezos-protocol-016-PtMumbai: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -4978,7 +4978,7 @@ opam:tezos-protocol-017-PtNairob: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -5035,7 +5035,7 @@ opam:tezos-protocol-018-Proxford: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -5092,7 +5092,7 @@ opam:tezos-protocol-alpha: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -5149,7 +5149,7 @@ opam:tezos-protocol-demo-counter: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -5206,7 +5206,7 @@ opam:tezos-protocol-demo-noops: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -5263,7 +5263,7 @@ opam:tezos-protocol-genesis: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 6 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 6 minutes - changes: @@ -5320,7 +5320,7 @@ opam:tezos-proxy-server-config: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -5377,7 +5377,7 @@ opam:tezt-tezos: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: delayed start_in: 7 minutes - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--opam(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ when: delayed start_in: 7 minutes - changes: @@ -5661,7 +5661,7 @@ documentation:linkcheck: rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" when: always - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ when: on_success - when: manual allow_failure: true @@ -5688,7 +5688,7 @@ oc.install_python_focal: - docs/developer/install-python-debian-ubuntu.sh if: $CI_PIPELINE_SOURCE == "merge_request_event" when: on_success - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ when: on_success - when: manual allow_failure: true @@ -5710,7 +5710,7 @@ oc.install_python_jammy: - docs/developer/install-python-debian-ubuntu.sh if: $CI_PIPELINE_SOURCE == "merge_request_event" when: on_success - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ when: on_success - when: manual allow_failure: true @@ -5732,7 +5732,7 @@ oc.install_python_bullseye: - docs/developer/install-python-debian-ubuntu.sh if: $CI_PIPELINE_SOURCE == "merge_request_event" when: on_success - - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|[,])ci--docs(?:$|[,])/ + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--docs(?:$|,)/ when: on_success - when: manual allow_failure: true diff --git a/ci/bin/rules.ml b/ci/bin/rules.ml index 1b10fca817b7..819a73ac193e 100644 --- a/ci/bin/rules.ml +++ b/ci/bin/rules.ml @@ -47,4 +47,4 @@ 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 ^ "(?:$|[,])/" + Predefined_vars.ci_merge_request_labels =~ "/(?:^|,)" ^ label ^ "(?:$|,)/" -- GitLab From 7412d890cf6b0e4afeec5a04c51042f9fe4c2fb2 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 09:16:33 +0100 Subject: [PATCH 090/134] todo notes --- ci/bin/tezos_ci.ml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/bin/tezos_ci.ml b/ci/bin/tezos_ci.ml index a3126729bf87..c4e60cb73db4 100644 --- a/ci/bin/tezos_ci.ml +++ b/ci/bin/tezos_ci.ml @@ -138,7 +138,8 @@ module Pipeline = struct | 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 () = -- GitLab From dcc726c637ed63a6263955a14eafd6086522808f Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 09:54:15 +0100 Subject: [PATCH 091/134] CI: refactor, split [jobs/test/misc_checks.yml] into separate files --- .gitlab/ci/jobs/test/commit_titles.yml | 14 +++ .gitlab/ci/jobs/test/kaitai_checks.yml | 19 +++ .gitlab/ci/jobs/test/kaitai_e2e_checks.yml | 29 +++++ .gitlab/ci/jobs/test/misc_checks.yml | 116 ------------------ .../jobs/test/oc.check_lift_limits_patch.yml | 20 +++ .gitlab/ci/jobs/test/oc.misc_checks.yml | 30 +++++ .gitlab/ci/pipelines/before_merging.yml | 6 +- 7 files changed, 117 insertions(+), 117 deletions(-) create mode 100644 .gitlab/ci/jobs/test/commit_titles.yml create mode 100644 .gitlab/ci/jobs/test/kaitai_checks.yml create mode 100644 .gitlab/ci/jobs/test/kaitai_e2e_checks.yml delete mode 100644 .gitlab/ci/jobs/test/misc_checks.yml create mode 100644 .gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml create mode 100644 .gitlab/ci/jobs/test/oc.misc_checks.yml diff --git a/.gitlab/ci/jobs/test/commit_titles.yml b/.gitlab/ci/jobs/test/commit_titles.yml new file mode 100644 index 000000000000..781ee78ea732 --- /dev/null +++ b/.gitlab/ci/jobs/test/commit_titles.yml @@ -0,0 +1,14 @@ +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/kaitai_checks.yml b/.gitlab/ci/jobs/test/kaitai_checks.yml new file mode 100644 index 000000000000..5c6150fe9f12 --- /dev/null +++ b/.gitlab/ci/jobs/test/kaitai_checks.yml @@ -0,0 +1,19 @@ +# 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) diff --git a/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml b/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml new file mode 100644 index 000000000000..254ad87cf822 --- /dev/null +++ b/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml @@ -0,0 +1,29 @@ +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 diff --git a/.gitlab/ci/jobs/test/misc_checks.yml b/.gitlab/ci/jobs/test/misc_checks.yml deleted file mode 100644 index 96daf7021de4..000000000000 --- 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/oc.check_lift_limits_patch.yml b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml new file mode 100644 index 000000000000..064066b205e5 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml @@ -0,0 +1,20 @@ +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 diff --git a/.gitlab/ci/jobs/test/oc.misc_checks.yml b/.gitlab/ci/jobs/test/oc.misc_checks.yml new file mode 100644 index 000000000000..93a89fda43fe --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.misc_checks.yml @@ -0,0 +1,30 @@ +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 diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index a381a3fd8d01..6d900004a84c 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -23,7 +23,11 @@ include: # Stage: test - .gitlab/ci/jobs/test/check_precommit_hook.yml - - .gitlab/ci/jobs/test/misc_checks.yml + - .gitlab/ci/jobs/test/commit_titles.yml + - .gitlab/ci/jobs/test/kaitai_checks.yml + - .gitlab/ci/jobs/test/kaitai_e2e_checks.yml + - .gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml + - .gitlab/ci/jobs/test/oc.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 From 7aa9ef4dd5119ad47fd52443de488845eb378b2d Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 09:57:21 +0100 Subject: [PATCH 092/134] CI: refactor, fix [before_script] ordering in [oc.misc_checks.yml] Changes the order to follow the guideline in [.gitlab/ci/README.md]. --- .gitlab/ci/jobs/test/oc.misc_checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/test/oc.misc_checks.yml b/.gitlab/ci/jobs/test/oc.misc_checks.yml index 93a89fda43fe..13254534e200 100644 --- a/.gitlab/ci/jobs/test/oc.misc_checks.yml +++ b/.gitlab/ci/jobs/test/oc.misc_checks.yml @@ -6,8 +6,8 @@ oc.misc_checks: needs: [trigger] before_script: - ./scripts/ci/take_ownership.sh - - eval $(opam env) - . ./scripts/version.sh + - eval $(opam env) # Load the environment poetry previously created in the docker image. # Give access to the Python dependencies/executables - . $HOME/.venv/bin/activate -- GitLab From 77426fd0521cd182a64db42e931ab3be3f6361c8 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 11:25:04 +0100 Subject: [PATCH 093/134] CI: generate [oc.misc-checks] --- .gitlab/ci/jobs/test/oc.misc_checks.yml | 55 +++++++++++++------------ ci/bin/main.ml | 37 +++++++++++++++++ scripts/lint.sh | 2 + 3 files changed, 67 insertions(+), 27 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.misc_checks.yml b/.gitlab/ci/jobs/test/oc.misc_checks.yml index 13254534e200..e68b224275a3 100644 --- a/.gitlab/ci/jobs/test/oc.misc_checks.yml +++ b/.gitlab/ci/jobs/test/oc.misc_checks.yml @@ -1,30 +1,31 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + oc.misc_checks: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - stage: "test" - needs: [trigger] - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) - # Load the environment poetry previously created in the docker image. - # Give access to the Python dependencies/executables - - . $HOME/.venv/bin/activate + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp 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/**/* + - changes: + - src/**/* + - tezt/**/* + - devtools/**/* + - scripts/**/* + - docs/**/* + - contrib/**/* + - etherlink/**/* + - .gitlab-ci.yml + - .gitlab/**/* + when: on_success + needs: + - trigger + dependencies: [] script: - - ./scripts/ci/lint_misc_check.sh - - scripts/check_wasm_pvm_regressions.sh check + - ./scripts/ci/lint_misc_check.sh + - scripts/check_wasm_pvm_regressions.sh check + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + - . $HOME/.venv/bin/activate diff --git a/ci/bin/main.ml b/ci/bin/main.ml index a43f874815f1..24ef56f7a562 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1367,6 +1367,43 @@ let _job_ocaml_check = []) ["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"; + ] + (* 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 diff --git a/scripts/lint.sh b/scripts/lint.sh index 646c6eae6c6a..952afec20c9b 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=$( -- GitLab From 44ff5943a6258360e8f76becf46a7c2defb53e74 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 11:26:07 +0100 Subject: [PATCH 094/134] CI: reorder [{before_,,after_}script] --- .gitlab/ci/jobs/build/bin_packages_manual.yml | 24 +- ...tic-x86_64-linux-binaries-experimental.yml | 4 +- .../build/oc.build_arm64-exp-dev-extra.yml | 4 +- .../ci/jobs/build/oc.build_arm64-released.yml | 4 +- .../build/oc.build_x86_64-exp-dev-extra.yml | 4 +- .../jobs/build/oc.build_x86_64-released.yml | 4 +- .../build/oc.docker:amd64-test_manual.yml | 4 +- .../build/oc.docker:arm64-test_manual.yml | 4 +- .../ci/jobs/build/oc.tezt:fetch-records.yml | 8 +- .gitlab/ci/jobs/build/ocaml-check.yml | 4 +- .../ci/jobs/doc/documentation:linkcheck.yml | 8 +- .gitlab/ci/jobs/packaging/opam:prepare.yml | 4 +- .gitlab/ci/jobs/packaging/opam_package.yml | 360 ++++++++-------- .gitlab/ci/jobs/sanity/sanity_ci.yml | 6 +- .gitlab/ci/jobs/test/oc.misc_checks.yml | 6 +- .gitlab/ci/pipelines/beta_release_tag.yml | 44 +- .gitlab/ci/pipelines/latest_release.yml | 4 +- .gitlab/ci/pipelines/latest_release_test.yml | 4 +- .gitlab/ci/pipelines/master_branch.yml | 32 +- .gitlab/ci/pipelines/non_release_tag.yml | 44 +- .gitlab/ci/pipelines/non_release_tag_test.yml | 44 +- .gitlab/ci/pipelines/release_tag.yml | 44 +- .gitlab/ci/pipelines/release_tag_test.yml | 44 +- .../ci/pipelines/schedule_extended_test.yml | 402 +++++++++--------- ci/lib_gitlab_ci/to_yaml.ml | 2 +- 25 files changed, 556 insertions(+), 556 deletions(-) diff --git a/.gitlab/ci/jobs/build/bin_packages_manual.yml b/.gitlab/ci/jobs/build/bin_packages_manual.yml index 1e0a3bdc759a..82144216ca09 100644 --- a/.gitlab/ci/jobs/build/bin_packages_manual.yml +++ b/.gitlab/ci/jobs/build/bin_packages_manual.yml @@ -8,6 +8,11 @@ oc.build:dpkg:amd64: - 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 @@ -19,11 +24,6 @@ oc.build:dpkg:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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 variables: TARGET: dpkg OCTEZ_PKGMAINTAINER: nomadic-labs @@ -43,6 +43,13 @@ oc.build:rpm:amd64: - 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 @@ -54,13 +61,6 @@ oc.build:rpm:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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++ variables: TARGET: rpm OCTEZ_PKGMAINTAINER: nomadic-labs 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 index d619a7d3c201..60e14e3c88be 100644 --- 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 @@ -9,11 +9,11 @@ oc.build:static-x86_64-linux-binaries: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 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 index 22a1582840a3..cef4bbad86ae 100644 --- a/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml +++ b/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml @@ -18,12 +18,12 @@ oc.build_arm64-exp-dev-extra: when: manual allow_failure: true dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 diff --git a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml b/.gitlab/ci/jobs/build/oc.build_arm64-released.yml index 36fea10e0409..66a56340b8c1 100644 --- a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml +++ b/.gitlab/ci/jobs/build/oc.build_arm64-released.yml @@ -18,12 +18,12 @@ oc.build_arm64-released: when: manual allow_failure: true dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 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 index 450910398ca2..221b08f986e1 100644 --- 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 @@ -21,12 +21,12 @@ oc.build_x86_64-exp-dev-extra: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 diff --git a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml b/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml index 5aa3fb63ce76..89900ad2cc55 100644 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml +++ b/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml @@ -21,12 +21,12 @@ oc.build_x86_64-released: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 diff --git a/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml b/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml index e3e93e12a7e1..002fba9b53cf 100644 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml +++ b/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml @@ -9,12 +9,12 @@ oc.docker:amd64: needs: [] dependencies: [] allow_failure: true - script: - - ./scripts/ci/docker_release.sh 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: diff --git a/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml b/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml index cab4b3e35fa1..bca3d762a6fe 100644 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml +++ b/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml @@ -9,12 +9,12 @@ oc.docker:arm64: needs: [] dependencies: [] allow_failure: true - script: - - ./scripts/ci/docker_release.sh 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: diff --git a/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml b/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml index e27f149e6866..2a895abf6110 100644 --- a/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml +++ b/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml @@ -18,15 +18,15 @@ oc.tezt:fetch-records: 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 - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) artifacts: expire_in: 4 hours paths: diff --git a/.gitlab/ci/jobs/build/ocaml-check.yml b/.gitlab/ci/jobs/build/ocaml-check.yml index cdb336891ae8..fcd32e692684 100644 --- a/.gitlab/ci/jobs/build/ocaml-check.yml +++ b/.gitlab/ci/jobs/build/ocaml-check.yml @@ -17,9 +17,9 @@ ocaml-check: needs: - trigger dependencies: [] - script: - - dune build @check before_script: - ./scripts/ci/take_ownership.sh - . ./scripts/version.sh - eval $(opam env) + script: + - dune build @check diff --git a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml b/.gitlab/ci/jobs/doc/documentation:linkcheck.yml index 20b04ddf322e..54efd206fb31 100644 --- a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml +++ b/.gitlab/ci/jobs/doc/documentation:linkcheck.yml @@ -16,11 +16,11 @@ documentation:linkcheck: needs: [] dependencies: [] allow_failure: true - script: - - make all - - make -C docs redirectcheck - - make -C docs linkcheck before_script: - . ./scripts/version.sh - eval $(opam env) - . $HOME/.venv/bin/activate + script: + - make all + - make -C docs redirectcheck + - make -C docs linkcheck diff --git a/.gitlab/ci/jobs/packaging/opam:prepare.yml b/.gitlab/ci/jobs/packaging/opam:prepare.yml index a03ee988afce..0d431c5b3f86 100644 --- a/.gitlab/ci/jobs/packaging/opam:prepare.yml +++ b/.gitlab/ci/jobs/packaging/opam:prepare.yml @@ -33,13 +33,13 @@ opam:prepare: 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" - before_script: - - eval $(opam env) artifacts: paths: - _opam-repo-for-release/ diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index e2eb7e092d8e..098bdc89ba15 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -38,6 +38,8 @@ opam:bls12-381: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -45,8 +47,6 @@ opam:bls12-381: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: bls12-381 @@ -95,6 +95,8 @@ opam:octez-accuser-Proxford: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -102,8 +104,6 @@ opam:octez-accuser-Proxford: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-accuser-Proxford @@ -152,6 +152,8 @@ opam:octez-accuser-PtNairob: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -159,8 +161,6 @@ opam:octez-accuser-PtNairob: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-accuser-PtNairob @@ -209,6 +209,8 @@ opam:octez-alcotezt: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -216,8 +218,6 @@ opam:octez-alcotezt: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-alcotezt @@ -266,6 +266,8 @@ opam:octez-baker-Proxford: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -273,8 +275,6 @@ opam:octez-baker-Proxford: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-baker-Proxford @@ -323,6 +323,8 @@ opam:octez-baker-PtNairob: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -330,8 +332,6 @@ opam:octez-baker-PtNairob: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-baker-PtNairob @@ -380,6 +380,8 @@ opam:octez-client: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -387,8 +389,6 @@ opam:octez-client: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-client @@ -437,6 +437,8 @@ opam:octez-codec: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -444,8 +446,6 @@ opam:octez-codec: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-codec @@ -494,6 +494,8 @@ opam:octez-crawler: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -501,8 +503,6 @@ opam:octez-crawler: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-crawler @@ -551,6 +551,8 @@ opam:octez-dac-client: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -558,8 +560,6 @@ opam:octez-dac-client: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-dac-client @@ -608,6 +608,8 @@ opam:octez-dac-node: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -615,8 +617,6 @@ opam:octez-dac-node: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-dac-node @@ -665,6 +665,8 @@ opam:octez-distributed-internal: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -672,8 +674,6 @@ opam:octez-distributed-internal: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-distributed-internal @@ -722,6 +722,8 @@ opam:octez-distributed-lwt-internal: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -729,8 +731,6 @@ opam:octez-distributed-lwt-internal: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-distributed-lwt-internal @@ -779,6 +779,8 @@ opam:octez-injector: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -786,8 +788,6 @@ opam:octez-injector: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-injector @@ -836,6 +836,8 @@ opam:octez-internal-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -843,8 +845,6 @@ opam:octez-internal-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-internal-libs @@ -893,6 +893,8 @@ opam:octez-l2-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -900,8 +902,6 @@ opam:octez-l2-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-l2-libs @@ -950,6 +950,8 @@ opam:octez-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -957,8 +959,6 @@ opam:octez-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-libs @@ -1007,6 +1007,8 @@ opam:octez-node: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1014,8 +1016,6 @@ opam:octez-node: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-node @@ -1064,6 +1064,8 @@ opam:octez-node-config: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1071,8 +1073,6 @@ opam:octez-node-config: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-node-config @@ -1121,6 +1121,8 @@ opam:octez-proto-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1128,8 +1130,6 @@ opam:octez-proto-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-proto-libs @@ -1178,6 +1178,8 @@ opam:octez-protocol-000-Ps9mPmXa-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1185,8 +1187,6 @@ opam:octez-protocol-000-Ps9mPmXa-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-000-Ps9mPmXa-libs @@ -1235,6 +1235,8 @@ opam:octez-protocol-001-PtCJ7pwo-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1242,8 +1244,6 @@ opam:octez-protocol-001-PtCJ7pwo-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-001-PtCJ7pwo-libs @@ -1292,6 +1292,8 @@ opam:octez-protocol-002-PsYLVpVv-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1299,8 +1301,6 @@ opam:octez-protocol-002-PsYLVpVv-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-002-PsYLVpVv-libs @@ -1349,6 +1349,8 @@ opam:octez-protocol-003-PsddFKi3-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1356,8 +1358,6 @@ opam:octez-protocol-003-PsddFKi3-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-003-PsddFKi3-libs @@ -1406,6 +1406,8 @@ opam:octez-protocol-004-Pt24m4xi-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1413,8 +1415,6 @@ opam:octez-protocol-004-Pt24m4xi-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-004-Pt24m4xi-libs @@ -1463,6 +1463,8 @@ opam:octez-protocol-005-PsBabyM1-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1470,8 +1472,6 @@ opam:octez-protocol-005-PsBabyM1-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-005-PsBabyM1-libs @@ -1520,6 +1520,8 @@ opam:octez-protocol-006-PsCARTHA-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1527,8 +1529,6 @@ opam:octez-protocol-006-PsCARTHA-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-006-PsCARTHA-libs @@ -1577,6 +1577,8 @@ opam:octez-protocol-007-PsDELPH1-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1584,8 +1586,6 @@ opam:octez-protocol-007-PsDELPH1-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-007-PsDELPH1-libs @@ -1634,6 +1634,8 @@ opam:octez-protocol-008-PtEdo2Zk-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1641,8 +1643,6 @@ opam:octez-protocol-008-PtEdo2Zk-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-008-PtEdo2Zk-libs @@ -1691,6 +1691,8 @@ opam:octez-protocol-009-PsFLoren-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1698,8 +1700,6 @@ opam:octez-protocol-009-PsFLoren-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-009-PsFLoren-libs @@ -1748,6 +1748,8 @@ opam:octez-protocol-010-PtGRANAD-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1755,8 +1757,6 @@ opam:octez-protocol-010-PtGRANAD-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-010-PtGRANAD-libs @@ -1805,6 +1805,8 @@ opam:octez-protocol-011-PtHangz2-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1812,8 +1814,6 @@ opam:octez-protocol-011-PtHangz2-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-011-PtHangz2-libs @@ -1862,6 +1862,8 @@ opam:octez-protocol-012-Psithaca-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1869,8 +1871,6 @@ opam:octez-protocol-012-Psithaca-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-012-Psithaca-libs @@ -1919,6 +1919,8 @@ opam:octez-protocol-013-PtJakart-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1926,8 +1928,6 @@ opam:octez-protocol-013-PtJakart-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-013-PtJakart-libs @@ -1976,6 +1976,8 @@ opam:octez-protocol-014-PtKathma-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1983,8 +1985,6 @@ opam:octez-protocol-014-PtKathma-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-014-PtKathma-libs @@ -2033,6 +2033,8 @@ opam:octez-protocol-015-PtLimaPt-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2040,8 +2042,6 @@ opam:octez-protocol-015-PtLimaPt-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-015-PtLimaPt-libs @@ -2090,6 +2090,8 @@ opam:octez-protocol-016-PtMumbai-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2097,8 +2099,6 @@ opam:octez-protocol-016-PtMumbai-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-016-PtMumbai-libs @@ -2147,6 +2147,8 @@ opam:octez-protocol-017-PtNairob-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2154,8 +2156,6 @@ opam:octez-protocol-017-PtNairob-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-017-PtNairob-libs @@ -2204,6 +2204,8 @@ opam:octez-protocol-018-Proxford-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2211,8 +2213,6 @@ opam:octez-protocol-018-Proxford-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-018-Proxford-libs @@ -2261,6 +2261,8 @@ opam:octez-protocol-alpha-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2268,8 +2270,6 @@ opam:octez-protocol-alpha-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-alpha-libs @@ -2318,6 +2318,8 @@ opam:octez-protocol-compiler: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2325,8 +2327,6 @@ opam:octez-protocol-compiler: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-compiler @@ -2375,6 +2375,8 @@ opam:octez-proxy-server: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2382,8 +2384,6 @@ opam:octez-proxy-server: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-proxy-server @@ -2432,6 +2432,8 @@ opam:octez-rpc-process: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2439,8 +2441,6 @@ opam:octez-rpc-process: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-rpc-process @@ -2489,6 +2489,8 @@ opam:octez-shell-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2496,8 +2498,6 @@ opam:octez-shell-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-shell-libs @@ -2546,6 +2546,8 @@ opam:octez-signer: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2553,8 +2555,6 @@ opam:octez-signer: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-signer @@ -2603,6 +2603,8 @@ opam:octez-smart-rollup-node: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2610,8 +2612,6 @@ opam:octez-smart-rollup-node: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node @@ -2660,6 +2660,8 @@ opam:octez-smart-rollup-node-Proxford: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2667,8 +2669,6 @@ opam:octez-smart-rollup-node-Proxford: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node-Proxford @@ -2717,6 +2717,8 @@ opam:octez-smart-rollup-node-PtNairob: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2724,8 +2726,6 @@ opam:octez-smart-rollup-node-PtNairob: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node-PtNairob @@ -2774,6 +2774,8 @@ opam:octez-smart-rollup-node-alpha: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2781,8 +2783,6 @@ opam:octez-smart-rollup-node-alpha: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node-alpha @@ -2831,6 +2831,8 @@ opam:octez-smart-rollup-node-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2838,8 +2840,6 @@ opam:octez-smart-rollup-node-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node-lib @@ -2888,6 +2888,8 @@ opam:octez-smart-rollup-wasm-debugger: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2895,8 +2897,6 @@ opam:octez-smart-rollup-wasm-debugger: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger @@ -2945,6 +2945,8 @@ opam:octez-smart-rollup-wasm-debugger-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2952,8 +2954,6 @@ opam:octez-smart-rollup-wasm-debugger-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger-lib @@ -3002,6 +3002,8 @@ opam:octez-smart-rollup-wasm-debugger-plugin: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3009,8 +3011,6 @@ opam:octez-smart-rollup-wasm-debugger-plugin: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger-plugin @@ -3059,6 +3059,8 @@ opam:octez-version: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3066,8 +3068,6 @@ opam:octez-version: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-version @@ -3116,6 +3116,8 @@ opam:tezos-benchmark: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3123,8 +3125,6 @@ opam:tezos-benchmark: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-benchmark @@ -3173,6 +3173,8 @@ opam:tezos-client-demo-counter: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3180,8 +3182,6 @@ opam:tezos-client-demo-counter: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-client-demo-counter @@ -3230,6 +3230,8 @@ opam:tezos-client-genesis: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3237,8 +3239,6 @@ opam:tezos-client-genesis: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-client-genesis @@ -3287,6 +3287,8 @@ opam:tezos-dac-client-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3294,8 +3296,6 @@ opam:tezos-dac-client-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dac-client-lib @@ -3344,6 +3344,8 @@ opam:tezos-dac-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3351,8 +3353,6 @@ opam:tezos-dac-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dac-lib @@ -3401,6 +3401,8 @@ opam:tezos-dac-node-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3408,8 +3410,6 @@ opam:tezos-dac-node-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dac-node-lib @@ -3458,6 +3458,8 @@ opam:tezos-dal-node-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3465,8 +3467,6 @@ opam:tezos-dal-node-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dal-node-lib @@ -3515,6 +3515,8 @@ opam:tezos-dal-node-services: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3522,8 +3524,6 @@ opam:tezos-dal-node-services: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dal-node-services @@ -3572,6 +3572,8 @@ opam:tezos-openapi: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3579,8 +3581,6 @@ opam:tezos-openapi: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-openapi @@ -3629,6 +3629,8 @@ opam:tezos-protocol-000-Ps9mPmXa: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3636,8 +3638,6 @@ opam:tezos-protocol-000-Ps9mPmXa: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-000-Ps9mPmXa @@ -3686,6 +3686,8 @@ opam:tezos-protocol-001-PtCJ7pwo: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3693,8 +3695,6 @@ opam:tezos-protocol-001-PtCJ7pwo: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-001-PtCJ7pwo @@ -3743,6 +3743,8 @@ opam:tezos-protocol-002-PsYLVpVv: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3750,8 +3752,6 @@ opam:tezos-protocol-002-PsYLVpVv: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-002-PsYLVpVv @@ -3800,6 +3800,8 @@ opam:tezos-protocol-003-PsddFKi3: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3807,8 +3809,6 @@ opam:tezos-protocol-003-PsddFKi3: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-003-PsddFKi3 @@ -3857,6 +3857,8 @@ opam:tezos-protocol-004-Pt24m4xi: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3864,8 +3866,6 @@ opam:tezos-protocol-004-Pt24m4xi: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-004-Pt24m4xi @@ -3914,6 +3914,8 @@ opam:tezos-protocol-005-PsBABY5H: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3921,8 +3923,6 @@ opam:tezos-protocol-005-PsBABY5H: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-005-PsBABY5H @@ -3971,6 +3971,8 @@ opam:tezos-protocol-005-PsBabyM1: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3978,8 +3980,6 @@ opam:tezos-protocol-005-PsBabyM1: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-005-PsBabyM1 @@ -4028,6 +4028,8 @@ opam:tezos-protocol-006-PsCARTHA: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4035,8 +4037,6 @@ opam:tezos-protocol-006-PsCARTHA: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-006-PsCARTHA @@ -4085,6 +4085,8 @@ opam:tezos-protocol-007-PsDELPH1: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4092,8 +4094,6 @@ opam:tezos-protocol-007-PsDELPH1: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-007-PsDELPH1 @@ -4142,6 +4142,8 @@ opam:tezos-protocol-008-PtEdo2Zk: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4149,8 +4151,6 @@ opam:tezos-protocol-008-PtEdo2Zk: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-008-PtEdo2Zk @@ -4199,6 +4199,8 @@ opam:tezos-protocol-008-PtEdoTez: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4206,8 +4208,6 @@ opam:tezos-protocol-008-PtEdoTez: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-008-PtEdoTez @@ -4256,6 +4256,8 @@ opam:tezos-protocol-009-PsFLoren: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4263,8 +4265,6 @@ opam:tezos-protocol-009-PsFLoren: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-009-PsFLoren @@ -4313,6 +4313,8 @@ opam:tezos-protocol-010-PtGRANAD: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4320,8 +4322,6 @@ opam:tezos-protocol-010-PtGRANAD: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-010-PtGRANAD @@ -4370,6 +4370,8 @@ opam:tezos-protocol-011-PtHangz2: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4377,8 +4379,6 @@ opam:tezos-protocol-011-PtHangz2: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-011-PtHangz2 @@ -4427,6 +4427,8 @@ opam:tezos-protocol-012-Psithaca: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4434,8 +4436,6 @@ opam:tezos-protocol-012-Psithaca: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-012-Psithaca @@ -4484,6 +4484,8 @@ opam:tezos-protocol-013-PtJakart: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4491,8 +4493,6 @@ opam:tezos-protocol-013-PtJakart: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-013-PtJakart @@ -4541,6 +4541,8 @@ opam:tezos-protocol-014-PtKathma: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4548,8 +4550,6 @@ opam:tezos-protocol-014-PtKathma: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-014-PtKathma @@ -4598,6 +4598,8 @@ opam:tezos-protocol-015-PtLimaPt: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4605,8 +4607,6 @@ opam:tezos-protocol-015-PtLimaPt: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-015-PtLimaPt @@ -4655,6 +4655,8 @@ opam:tezos-protocol-016-PtMumbai: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4662,8 +4664,6 @@ opam:tezos-protocol-016-PtMumbai: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-016-PtMumbai @@ -4712,6 +4712,8 @@ opam:tezos-protocol-017-PtNairob: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4719,8 +4721,6 @@ opam:tezos-protocol-017-PtNairob: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-017-PtNairob @@ -4769,6 +4769,8 @@ opam:tezos-protocol-018-Proxford: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4776,8 +4778,6 @@ opam:tezos-protocol-018-Proxford: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-018-Proxford @@ -4826,6 +4826,8 @@ opam:tezos-protocol-alpha: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4833,8 +4835,6 @@ opam:tezos-protocol-alpha: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-alpha @@ -4883,6 +4883,8 @@ opam:tezos-protocol-demo-counter: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4890,8 +4892,6 @@ opam:tezos-protocol-demo-counter: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-demo-counter @@ -4940,6 +4940,8 @@ opam:tezos-protocol-demo-noops: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4947,8 +4949,6 @@ opam:tezos-protocol-demo-noops: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-demo-noops @@ -4997,6 +4997,8 @@ opam:tezos-protocol-genesis: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5004,8 +5006,6 @@ opam:tezos-protocol-genesis: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-genesis @@ -5054,6 +5054,8 @@ opam:tezos-proxy-server-config: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5061,8 +5063,6 @@ opam:tezos-proxy-server-config: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-proxy-server-config @@ -5111,6 +5111,8 @@ opam:tezt-tezos: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5118,8 +5120,6 @@ opam:tezt-tezos: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezt-tezos diff --git a/.gitlab/ci/jobs/sanity/sanity_ci.yml b/.gitlab/ci/jobs/sanity/sanity_ci.yml index 40c81f5638d2..03fbc48c8a15 100644 --- a/.gitlab/ci/jobs/sanity/sanity_ci.yml +++ b/.gitlab/ci/jobs/sanity/sanity_ci.yml @@ -7,11 +7,11 @@ sanity_ci: 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 - before_script: - - ./scripts/ci/take_ownership.sh - - eval $(opam env) diff --git a/.gitlab/ci/jobs/test/oc.misc_checks.yml b/.gitlab/ci/jobs/test/oc.misc_checks.yml index e68b224275a3..fc8c2173e1b0 100644 --- a/.gitlab/ci/jobs/test/oc.misc_checks.yml +++ b/.gitlab/ci/jobs/test/oc.misc_checks.yml @@ -21,11 +21,11 @@ oc.misc_checks: needs: - trigger dependencies: [] - script: - - ./scripts/ci/lint_misc_check.sh - - scripts/check_wasm_pvm_regressions.sh check 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 diff --git a/.gitlab/ci/pipelines/beta_release_tag.yml b/.gitlab/ci/pipelines/beta_release_tag.yml index 0f02c1d89459..992fd06296e0 100644 --- a/.gitlab/ci/pipelines/beta_release_tag.yml +++ b/.gitlab/ci/pipelines/beta_release_tag.yml @@ -9,11 +9,11 @@ oc.build:static-x86_64-linux-binaries: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -27,11 +27,11 @@ oc.build:static-arm64-linux-binaries: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -45,12 +45,12 @@ oc.docker:amd64: tags: - gcp dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -65,12 +65,12 @@ oc.docker:arm64: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -86,6 +86,11 @@ oc.build:dpkg:amd64: - 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 @@ -97,11 +102,6 @@ oc.build:dpkg:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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 variables: TARGET: dpkg OCTEZ_PKGMAINTAINER: nomadic-labs @@ -120,6 +120,13 @@ oc.build:rpm:amd64: - 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 @@ -131,13 +138,6 @@ oc.build:rpm:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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++ variables: TARGET: rpm OCTEZ_PKGMAINTAINER: nomadic-labs @@ -158,12 +158,12 @@ docker:merge_manifests: - oc.docker:amd64 - oc.docker:arm64 dependencies: [] - script: - - ./scripts/ci/docker_merge_manifests.sh 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: diff --git a/.gitlab/ci/pipelines/latest_release.yml b/.gitlab/ci/pipelines/latest_release.yml index 2d7a9341453a..144a37910242 100644 --- a/.gitlab/ci/pipelines/latest_release.yml +++ b/.gitlab/ci/pipelines/latest_release.yml @@ -7,12 +7,12 @@ docker:promote_to_latest: tags: - gcp dependencies: [] - script: - - ./scripts/ci/docker_promote_to_latest.sh 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: diff --git a/.gitlab/ci/pipelines/latest_release_test.yml b/.gitlab/ci/pipelines/latest_release_test.yml index 2f4e7a6cf274..29dbe02f2c99 100644 --- a/.gitlab/ci/pipelines/latest_release_test.yml +++ b/.gitlab/ci/pipelines/latest_release_test.yml @@ -7,12 +7,12 @@ docker:promote_to_latest: tags: - gcp dependencies: [] - script: - - ./scripts/ci/docker_promote_to_latest.sh 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: diff --git a/.gitlab/ci/pipelines/master_branch.yml b/.gitlab/ci/pipelines/master_branch.yml index 76094d51f188..6f993d8fe515 100644 --- a/.gitlab/ci/pipelines/master_branch.yml +++ b/.gitlab/ci/pipelines/master_branch.yml @@ -9,11 +9,11 @@ oc.build:static-x86_64-linux-binaries: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -26,11 +26,11 @@ oc.build:static-arm64-linux-binaries: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -54,12 +54,12 @@ oc.build_arm64-released: when: manual allow_failure: true dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 @@ -93,12 +93,12 @@ oc.build_arm64-exp-dev-extra: when: manual allow_failure: true dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 @@ -123,12 +123,12 @@ oc.docker:amd64: tags: - gcp dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -143,12 +143,12 @@ oc.docker:arm64: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -210,14 +210,14 @@ publish:documentation: needs: [] dependencies: [] interruptible: false - script: - - ./scripts/ci/doc_publish.sh 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 @@ -227,12 +227,12 @@ docker:merge_manifests: - oc.docker:amd64 - oc.docker:arm64 dependencies: [] - script: - - ./scripts/ci/docker_merge_manifests.sh 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: diff --git a/.gitlab/ci/pipelines/non_release_tag.yml b/.gitlab/ci/pipelines/non_release_tag.yml index 9b0205f7e045..b2e5d9a580d3 100644 --- a/.gitlab/ci/pipelines/non_release_tag.yml +++ b/.gitlab/ci/pipelines/non_release_tag.yml @@ -9,11 +9,11 @@ oc.build:static-x86_64-linux-binaries: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -27,11 +27,11 @@ oc.build:static-arm64-linux-binaries: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -45,12 +45,12 @@ oc.docker:amd64: tags: - gcp dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -65,12 +65,12 @@ oc.docker:arm64: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -86,6 +86,11 @@ oc.build:dpkg:amd64: - 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 @@ -97,11 +102,6 @@ oc.build:dpkg:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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 variables: TARGET: dpkg OCTEZ_PKGMAINTAINER: nomadic-labs @@ -120,6 +120,13 @@ oc.build:rpm:amd64: - 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 @@ -131,13 +138,6 @@ oc.build:rpm:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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++ variables: TARGET: rpm OCTEZ_PKGMAINTAINER: nomadic-labs @@ -158,12 +158,12 @@ docker:merge_manifests: - oc.docker:amd64 - oc.docker:arm64 dependencies: [] - script: - - ./scripts/ci/docker_merge_manifests.sh 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: diff --git a/.gitlab/ci/pipelines/non_release_tag_test.yml b/.gitlab/ci/pipelines/non_release_tag_test.yml index 60225f89c79d..c3a632d563bf 100644 --- a/.gitlab/ci/pipelines/non_release_tag_test.yml +++ b/.gitlab/ci/pipelines/non_release_tag_test.yml @@ -9,11 +9,11 @@ oc.build:static-x86_64-linux-binaries: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -27,11 +27,11 @@ oc.build:static-arm64-linux-binaries: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -45,12 +45,12 @@ oc.docker:amd64: tags: - gcp dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -65,12 +65,12 @@ oc.docker:arm64: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -86,6 +86,11 @@ oc.build:dpkg:amd64: - 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 @@ -97,11 +102,6 @@ oc.build:dpkg:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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 variables: TARGET: dpkg OCTEZ_PKGMAINTAINER: nomadic-labs @@ -120,6 +120,13 @@ oc.build:rpm:amd64: - 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 @@ -131,13 +138,6 @@ oc.build:rpm:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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++ variables: TARGET: rpm OCTEZ_PKGMAINTAINER: nomadic-labs @@ -158,12 +158,12 @@ docker:merge_manifests: - oc.docker:amd64 - oc.docker:arm64 dependencies: [] - script: - - ./scripts/ci/docker_merge_manifests.sh 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: diff --git a/.gitlab/ci/pipelines/release_tag.yml b/.gitlab/ci/pipelines/release_tag.yml index d20137ac2137..72e93e8c01c3 100644 --- a/.gitlab/ci/pipelines/release_tag.yml +++ b/.gitlab/ci/pipelines/release_tag.yml @@ -9,11 +9,11 @@ oc.build:static-x86_64-linux-binaries: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -27,11 +27,11 @@ oc.build:static-arm64-linux-binaries: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -45,12 +45,12 @@ oc.docker:amd64: tags: - gcp dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -65,12 +65,12 @@ oc.docker:arm64: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -86,6 +86,11 @@ oc.build:dpkg:amd64: - 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 @@ -97,11 +102,6 @@ oc.build:dpkg:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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 variables: TARGET: dpkg OCTEZ_PKGMAINTAINER: nomadic-labs @@ -120,6 +120,13 @@ oc.build:rpm:amd64: - 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 @@ -131,13 +138,6 @@ oc.build:rpm:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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++ variables: TARGET: rpm OCTEZ_PKGMAINTAINER: nomadic-labs @@ -158,12 +158,12 @@ docker:merge_manifests: - oc.docker:amd64 - oc.docker:arm64 dependencies: [] - script: - - ./scripts/ci/docker_merge_manifests.sh 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: diff --git a/.gitlab/ci/pipelines/release_tag_test.yml b/.gitlab/ci/pipelines/release_tag_test.yml index 33367f8c6774..ef8c77cbaae2 100644 --- a/.gitlab/ci/pipelines/release_tag_test.yml +++ b/.gitlab/ci/pipelines/release_tag_test.yml @@ -9,11 +9,11 @@ oc.build:static-x86_64-linux-binaries: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -27,11 +27,11 @@ oc.build:static-arm64-linux-binaries: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/build_static_binaries.sh 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 @@ -45,12 +45,12 @@ oc.docker:amd64: tags: - gcp dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -65,12 +65,12 @@ oc.docker:arm64: tags: - gcp_arm64 dependencies: [] - script: - - ./scripts/ci/docker_release.sh 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: @@ -86,6 +86,11 @@ oc.build:dpkg:amd64: - 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 @@ -97,11 +102,6 @@ oc.build:dpkg:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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 variables: TARGET: dpkg OCTEZ_PKGMAINTAINER: nomadic-labs @@ -120,6 +120,13 @@ oc.build:rpm:amd64: - 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 @@ -131,13 +138,6 @@ oc.build:rpm:amd64: - make build-deps - eval $(opam env) - make $TARGET - 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++ variables: TARGET: rpm OCTEZ_PKGMAINTAINER: nomadic-labs @@ -158,12 +158,12 @@ docker:merge_manifests: - oc.docker:amd64 - oc.docker:arm64 dependencies: [] - script: - - ./scripts/ci/docker_merge_manifests.sh 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: diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index ed783205d845..8c8f80dfa84a 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -18,12 +18,12 @@ oc.build_arm64-released: when: manual allow_failure: true dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 @@ -57,12 +57,12 @@ oc.build_arm64-exp-dev-extra: when: manual allow_failure: true dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 @@ -101,12 +101,12 @@ oc.build_x86_64-released: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 @@ -146,12 +146,12 @@ oc.build_x86_64-exp-dev-extra: needs: - trigger dependencies: [] - script: - - ./scripts/ci/build_full_unreleased.sh 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 @@ -237,15 +237,15 @@ oc.tezt:fetch-records: 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 - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) artifacts: expire_in: 4 hours paths: @@ -285,13 +285,13 @@ opam:prepare: 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" - before_script: - - eval $(opam env) artifacts: paths: - _opam-repo-for-release/ @@ -332,6 +332,8 @@ opam:bls12-381: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -339,8 +341,6 @@ opam:bls12-381: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: bls12-381 @@ -389,6 +389,8 @@ opam:octez-accuser-Proxford: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -396,8 +398,6 @@ opam:octez-accuser-Proxford: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-accuser-Proxford @@ -446,6 +446,8 @@ opam:octez-accuser-PtNairob: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -453,8 +455,6 @@ opam:octez-accuser-PtNairob: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-accuser-PtNairob @@ -503,6 +503,8 @@ opam:octez-alcotezt: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -510,8 +512,6 @@ opam:octez-alcotezt: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-alcotezt @@ -560,6 +560,8 @@ opam:octez-baker-Proxford: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -567,8 +569,6 @@ opam:octez-baker-Proxford: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-baker-Proxford @@ -617,6 +617,8 @@ opam:octez-baker-PtNairob: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -624,8 +626,6 @@ opam:octez-baker-PtNairob: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-baker-PtNairob @@ -674,6 +674,8 @@ opam:octez-client: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -681,8 +683,6 @@ opam:octez-client: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-client @@ -731,6 +731,8 @@ opam:octez-codec: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -738,8 +740,6 @@ opam:octez-codec: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-codec @@ -788,6 +788,8 @@ opam:octez-crawler: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -795,8 +797,6 @@ opam:octez-crawler: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-crawler @@ -845,6 +845,8 @@ opam:octez-dac-client: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -852,8 +854,6 @@ opam:octez-dac-client: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-dac-client @@ -902,6 +902,8 @@ opam:octez-dac-node: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -909,8 +911,6 @@ opam:octez-dac-node: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-dac-node @@ -959,6 +959,8 @@ opam:octez-distributed-internal: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -966,8 +968,6 @@ opam:octez-distributed-internal: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-distributed-internal @@ -1016,6 +1016,8 @@ opam:octez-distributed-lwt-internal: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1023,8 +1025,6 @@ opam:octez-distributed-lwt-internal: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-distributed-lwt-internal @@ -1073,6 +1073,8 @@ opam:octez-injector: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1080,8 +1082,6 @@ opam:octez-injector: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-injector @@ -1130,6 +1130,8 @@ opam:octez-internal-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1137,8 +1139,6 @@ opam:octez-internal-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-internal-libs @@ -1187,6 +1187,8 @@ opam:octez-l2-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1194,8 +1196,6 @@ opam:octez-l2-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-l2-libs @@ -1244,6 +1244,8 @@ opam:octez-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1251,8 +1253,6 @@ opam:octez-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-libs @@ -1301,6 +1301,8 @@ opam:octez-node: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1308,8 +1310,6 @@ opam:octez-node: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-node @@ -1358,6 +1358,8 @@ opam:octez-node-config: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1365,8 +1367,6 @@ opam:octez-node-config: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-node-config @@ -1415,6 +1415,8 @@ opam:octez-proto-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1422,8 +1424,6 @@ opam:octez-proto-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-proto-libs @@ -1472,6 +1472,8 @@ opam:octez-protocol-000-Ps9mPmXa-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1479,8 +1481,6 @@ opam:octez-protocol-000-Ps9mPmXa-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-000-Ps9mPmXa-libs @@ -1529,6 +1529,8 @@ opam:octez-protocol-001-PtCJ7pwo-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1536,8 +1538,6 @@ opam:octez-protocol-001-PtCJ7pwo-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-001-PtCJ7pwo-libs @@ -1586,6 +1586,8 @@ opam:octez-protocol-002-PsYLVpVv-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1593,8 +1595,6 @@ opam:octez-protocol-002-PsYLVpVv-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-002-PsYLVpVv-libs @@ -1643,6 +1643,8 @@ opam:octez-protocol-003-PsddFKi3-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1650,8 +1652,6 @@ opam:octez-protocol-003-PsddFKi3-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-003-PsddFKi3-libs @@ -1700,6 +1700,8 @@ opam:octez-protocol-004-Pt24m4xi-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1707,8 +1709,6 @@ opam:octez-protocol-004-Pt24m4xi-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-004-Pt24m4xi-libs @@ -1757,6 +1757,8 @@ opam:octez-protocol-005-PsBabyM1-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1764,8 +1766,6 @@ opam:octez-protocol-005-PsBabyM1-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-005-PsBabyM1-libs @@ -1814,6 +1814,8 @@ opam:octez-protocol-006-PsCARTHA-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1821,8 +1823,6 @@ opam:octez-protocol-006-PsCARTHA-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-006-PsCARTHA-libs @@ -1871,6 +1871,8 @@ opam:octez-protocol-007-PsDELPH1-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1878,8 +1880,6 @@ opam:octez-protocol-007-PsDELPH1-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-007-PsDELPH1-libs @@ -1928,6 +1928,8 @@ opam:octez-protocol-008-PtEdo2Zk-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1935,8 +1937,6 @@ opam:octez-protocol-008-PtEdo2Zk-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-008-PtEdo2Zk-libs @@ -1985,6 +1985,8 @@ opam:octez-protocol-009-PsFLoren-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -1992,8 +1994,6 @@ opam:octez-protocol-009-PsFLoren-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-009-PsFLoren-libs @@ -2042,6 +2042,8 @@ opam:octez-protocol-010-PtGRANAD-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2049,8 +2051,6 @@ opam:octez-protocol-010-PtGRANAD-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-010-PtGRANAD-libs @@ -2099,6 +2099,8 @@ opam:octez-protocol-011-PtHangz2-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2106,8 +2108,6 @@ opam:octez-protocol-011-PtHangz2-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-011-PtHangz2-libs @@ -2156,6 +2156,8 @@ opam:octez-protocol-012-Psithaca-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2163,8 +2165,6 @@ opam:octez-protocol-012-Psithaca-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-012-Psithaca-libs @@ -2213,6 +2213,8 @@ opam:octez-protocol-013-PtJakart-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2220,8 +2222,6 @@ opam:octez-protocol-013-PtJakart-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-013-PtJakart-libs @@ -2270,6 +2270,8 @@ opam:octez-protocol-014-PtKathma-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2277,8 +2279,6 @@ opam:octez-protocol-014-PtKathma-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-014-PtKathma-libs @@ -2327,6 +2327,8 @@ opam:octez-protocol-015-PtLimaPt-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2334,8 +2336,6 @@ opam:octez-protocol-015-PtLimaPt-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-015-PtLimaPt-libs @@ -2384,6 +2384,8 @@ opam:octez-protocol-016-PtMumbai-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2391,8 +2393,6 @@ opam:octez-protocol-016-PtMumbai-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-016-PtMumbai-libs @@ -2441,6 +2441,8 @@ opam:octez-protocol-017-PtNairob-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2448,8 +2450,6 @@ opam:octez-protocol-017-PtNairob-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-017-PtNairob-libs @@ -2498,6 +2498,8 @@ opam:octez-protocol-018-Proxford-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2505,8 +2507,6 @@ opam:octez-protocol-018-Proxford-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-018-Proxford-libs @@ -2555,6 +2555,8 @@ opam:octez-protocol-alpha-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2562,8 +2564,6 @@ opam:octez-protocol-alpha-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-alpha-libs @@ -2612,6 +2612,8 @@ opam:octez-protocol-compiler: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2619,8 +2621,6 @@ opam:octez-protocol-compiler: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-protocol-compiler @@ -2669,6 +2669,8 @@ opam:octez-proxy-server: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2676,8 +2678,6 @@ opam:octez-proxy-server: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-proxy-server @@ -2726,6 +2726,8 @@ opam:octez-rpc-process: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2733,8 +2735,6 @@ opam:octez-rpc-process: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-rpc-process @@ -2783,6 +2783,8 @@ opam:octez-shell-libs: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2790,8 +2792,6 @@ opam:octez-shell-libs: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-shell-libs @@ -2840,6 +2840,8 @@ opam:octez-signer: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2847,8 +2849,6 @@ opam:octez-signer: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-signer @@ -2897,6 +2897,8 @@ opam:octez-smart-rollup-node: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2904,8 +2906,6 @@ opam:octez-smart-rollup-node: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node @@ -2954,6 +2954,8 @@ opam:octez-smart-rollup-node-Proxford: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -2961,8 +2963,6 @@ opam:octez-smart-rollup-node-Proxford: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node-Proxford @@ -3011,6 +3011,8 @@ opam:octez-smart-rollup-node-PtNairob: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3018,8 +3020,6 @@ opam:octez-smart-rollup-node-PtNairob: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node-PtNairob @@ -3068,6 +3068,8 @@ opam:octez-smart-rollup-node-alpha: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3075,8 +3077,6 @@ opam:octez-smart-rollup-node-alpha: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node-alpha @@ -3125,6 +3125,8 @@ opam:octez-smart-rollup-node-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3132,8 +3134,6 @@ opam:octez-smart-rollup-node-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-node-lib @@ -3182,6 +3182,8 @@ opam:octez-smart-rollup-wasm-debugger: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3189,8 +3191,6 @@ opam:octez-smart-rollup-wasm-debugger: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger @@ -3239,6 +3239,8 @@ opam:octez-smart-rollup-wasm-debugger-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3246,8 +3248,6 @@ opam:octez-smart-rollup-wasm-debugger-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger-lib @@ -3296,6 +3296,8 @@ opam:octez-smart-rollup-wasm-debugger-plugin: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3303,8 +3305,6 @@ opam:octez-smart-rollup-wasm-debugger-plugin: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-smart-rollup-wasm-debugger-plugin @@ -3353,6 +3353,8 @@ opam:octez-version: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3360,8 +3362,6 @@ opam:octez-version: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: octez-version @@ -3410,6 +3410,8 @@ opam:tezos-benchmark: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3417,8 +3419,6 @@ opam:tezos-benchmark: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-benchmark @@ -3467,6 +3467,8 @@ opam:tezos-client-demo-counter: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3474,8 +3476,6 @@ opam:tezos-client-demo-counter: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-client-demo-counter @@ -3524,6 +3524,8 @@ opam:tezos-client-genesis: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3531,8 +3533,6 @@ opam:tezos-client-genesis: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-client-genesis @@ -3581,6 +3581,8 @@ opam:tezos-dac-client-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3588,8 +3590,6 @@ opam:tezos-dac-client-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dac-client-lib @@ -3638,6 +3638,8 @@ opam:tezos-dac-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3645,8 +3647,6 @@ opam:tezos-dac-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dac-lib @@ -3695,6 +3695,8 @@ opam:tezos-dac-node-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3702,8 +3704,6 @@ opam:tezos-dac-node-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dac-node-lib @@ -3752,6 +3752,8 @@ opam:tezos-dal-node-lib: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3759,8 +3761,6 @@ opam:tezos-dal-node-lib: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dal-node-lib @@ -3809,6 +3809,8 @@ opam:tezos-dal-node-services: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3816,8 +3818,6 @@ opam:tezos-dal-node-services: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-dal-node-services @@ -3866,6 +3866,8 @@ opam:tezos-openapi: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3873,8 +3875,6 @@ opam:tezos-openapi: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-openapi @@ -3923,6 +3923,8 @@ opam:tezos-protocol-000-Ps9mPmXa: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3930,8 +3932,6 @@ opam:tezos-protocol-000-Ps9mPmXa: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-000-Ps9mPmXa @@ -3980,6 +3980,8 @@ opam:tezos-protocol-001-PtCJ7pwo: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -3987,8 +3989,6 @@ opam:tezos-protocol-001-PtCJ7pwo: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-001-PtCJ7pwo @@ -4037,6 +4037,8 @@ opam:tezos-protocol-002-PsYLVpVv: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4044,8 +4046,6 @@ opam:tezos-protocol-002-PsYLVpVv: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-002-PsYLVpVv @@ -4094,6 +4094,8 @@ opam:tezos-protocol-003-PsddFKi3: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4101,8 +4103,6 @@ opam:tezos-protocol-003-PsddFKi3: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-003-PsddFKi3 @@ -4151,6 +4151,8 @@ opam:tezos-protocol-004-Pt24m4xi: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4158,8 +4160,6 @@ opam:tezos-protocol-004-Pt24m4xi: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-004-Pt24m4xi @@ -4208,6 +4208,8 @@ opam:tezos-protocol-005-PsBABY5H: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4215,8 +4217,6 @@ opam:tezos-protocol-005-PsBABY5H: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-005-PsBABY5H @@ -4265,6 +4265,8 @@ opam:tezos-protocol-005-PsBabyM1: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4272,8 +4274,6 @@ opam:tezos-protocol-005-PsBabyM1: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-005-PsBabyM1 @@ -4322,6 +4322,8 @@ opam:tezos-protocol-006-PsCARTHA: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4329,8 +4331,6 @@ opam:tezos-protocol-006-PsCARTHA: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-006-PsCARTHA @@ -4379,6 +4379,8 @@ opam:tezos-protocol-007-PsDELPH1: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4386,8 +4388,6 @@ opam:tezos-protocol-007-PsDELPH1: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-007-PsDELPH1 @@ -4436,6 +4436,8 @@ opam:tezos-protocol-008-PtEdo2Zk: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4443,8 +4445,6 @@ opam:tezos-protocol-008-PtEdo2Zk: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-008-PtEdo2Zk @@ -4493,6 +4493,8 @@ opam:tezos-protocol-008-PtEdoTez: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4500,8 +4502,6 @@ opam:tezos-protocol-008-PtEdoTez: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-008-PtEdoTez @@ -4550,6 +4550,8 @@ opam:tezos-protocol-009-PsFLoren: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4557,8 +4559,6 @@ opam:tezos-protocol-009-PsFLoren: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-009-PsFLoren @@ -4607,6 +4607,8 @@ opam:tezos-protocol-010-PtGRANAD: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4614,8 +4616,6 @@ opam:tezos-protocol-010-PtGRANAD: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-010-PtGRANAD @@ -4664,6 +4664,8 @@ opam:tezos-protocol-011-PtHangz2: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4671,8 +4673,6 @@ opam:tezos-protocol-011-PtHangz2: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-011-PtHangz2 @@ -4721,6 +4721,8 @@ opam:tezos-protocol-012-Psithaca: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4728,8 +4730,6 @@ opam:tezos-protocol-012-Psithaca: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-012-Psithaca @@ -4778,6 +4778,8 @@ opam:tezos-protocol-013-PtJakart: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4785,8 +4787,6 @@ opam:tezos-protocol-013-PtJakart: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-013-PtJakart @@ -4835,6 +4835,8 @@ opam:tezos-protocol-014-PtKathma: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4842,8 +4844,6 @@ opam:tezos-protocol-014-PtKathma: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-014-PtKathma @@ -4892,6 +4892,8 @@ opam:tezos-protocol-015-PtLimaPt: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4899,8 +4901,6 @@ opam:tezos-protocol-015-PtLimaPt: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-015-PtLimaPt @@ -4949,6 +4949,8 @@ opam:tezos-protocol-016-PtMumbai: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -4956,8 +4958,6 @@ opam:tezos-protocol-016-PtMumbai: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-016-PtMumbai @@ -5006,6 +5006,8 @@ opam:tezos-protocol-017-PtNairob: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5013,8 +5015,6 @@ opam:tezos-protocol-017-PtNairob: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-017-PtNairob @@ -5063,6 +5063,8 @@ opam:tezos-protocol-018-Proxford: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5070,8 +5072,6 @@ opam:tezos-protocol-018-Proxford: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-018-Proxford @@ -5120,6 +5120,8 @@ opam:tezos-protocol-alpha: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5127,8 +5129,6 @@ opam:tezos-protocol-alpha: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-alpha @@ -5177,6 +5177,8 @@ opam:tezos-protocol-demo-counter: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5184,8 +5186,6 @@ opam:tezos-protocol-demo-counter: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-demo-counter @@ -5234,6 +5234,8 @@ opam:tezos-protocol-demo-noops: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5241,8 +5243,6 @@ opam:tezos-protocol-demo-noops: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-demo-noops @@ -5291,6 +5291,8 @@ opam:tezos-protocol-genesis: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5298,8 +5300,6 @@ opam:tezos-protocol-genesis: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-protocol-genesis @@ -5348,6 +5348,8 @@ opam:tezos-proxy-server-config: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5355,8 +5357,6 @@ opam:tezos-proxy-server-config: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezos-proxy-server-config @@ -5405,6 +5405,8 @@ opam:tezt-tezos: key: opam-sccache paths: - _build/_sccache + before_script: + - eval $(opam env) script: - opam remote add dev-repo ./_opam-repo-for-release - opam install --yes ${package}.dev @@ -5412,8 +5414,6 @@ opam:tezt-tezos: after_script: - eval $(opam env) - OPAM_LOGS=opam_logs ./scripts/ci/opam_handle_output.sh - before_script: - - eval $(opam env) variables: RUNTEZTALIAS: "true" package: tezt-tezos @@ -5615,6 +5615,9 @@ tezt_flaky: - 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}\"" @@ -5626,9 +5629,6 @@ tezt_flaky: --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 - before_script: - - . ./scripts/version.sh - - eval $(opam env) variables: JUNIT: tezt-junit.xml TEZT_VARIANT: "" @@ -5668,14 +5668,14 @@ documentation:linkcheck: needs: [] dependencies: [] allow_failure: true - script: - - make all - - make -C docs redirectcheck - - make -C docs linkcheck 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 diff --git a/ci/lib_gitlab_ci/to_yaml.ml b/ci/lib_gitlab_ci/to_yaml.ml index 8d9bf205babd..3e50cea0ac06 100644 --- a/ci/lib_gitlab_ci/to_yaml.ml +++ b/ci/lib_gitlab_ci/to_yaml.ml @@ -226,9 +226,9 @@ let enc_job : job -> value = 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 "before_script" strings before_script; opt "services" enc_services services; opt "variables" enc_variables variables; opt "artifacts" enc_artifacts artifacts; -- GitLab From 6e310014f82786e468cb8ebfd870e5d73f315745 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 11:51:43 +0100 Subject: [PATCH 095/134] CI: generate [commit_titles] --- .gitlab/ci/jobs/test/commit_titles.yml | 25 +++++++++++++------------ ci/bin/main.ml | 11 +++++++++++ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.gitlab/ci/jobs/test/commit_titles.yml b/.gitlab/ci/jobs/test/commit_titles.yml index 781ee78ea732..1034fc1273de 100644 --- a/.gitlab/ci/jobs/test/commit_titles.yml +++ b/.gitlab/ci/jobs/test/commit_titles.yml @@ -1,14 +1,15 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + 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 $? + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + needs: + - trigger + dependencies: [] 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] + exit_codes: 65 + script: + - ./scripts/ci/check_commit_messages.sh || exit $? diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 24ef56f7a562..b36a43a17f29 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1404,6 +1404,17 @@ let _job_oc_misc_checks = "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]) + (* 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 -- GitLab From 92d2c9277560babc56a74276bd1eb1a0518d8574 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:02:30 +0100 Subject: [PATCH 096/134] CI: refactor, [kaitai_checks]: remove coverage info, fix [needs:] There is no need to instrument for coverage in this job, and by removing [test_template] we omit the overwrite of [retry]. The [needs:] clause was given twice. As the job downloads no dependencies from [oc.build_x86_64-released], seems the correct value is [trigger]. --- .gitlab/ci/jobs/test/kaitai_checks.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.gitlab/ci/jobs/test/kaitai_checks.yml b/.gitlab/ci/jobs/test/kaitai_checks.yml index 5c6150fe9f12..8b5d9889f0ac 100644 --- a/.gitlab/ci/jobs/test/kaitai_checks.yml +++ b/.gitlab/ci/jobs/test/kaitai_checks.yml @@ -1,7 +1,10 @@ # check that ksy files are still up-to-date with octez kaitai_checks: extends: - - .test_template + - .default_settings_template + - .image_template__runtime_build_dependencies + stage: test + needs: [trigger] rules: - changes: paths: @@ -10,10 +13,8 @@ kaitai_checks: - .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" + 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) -- GitLab From eb7c51ab9eef0a28ad3af9a99d92faff06a4c379 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:07:28 +0100 Subject: [PATCH 097/134] CI: generate [kaitai_checks] --- .gitlab/ci/jobs/test/kaitai_checks.yml | 35 +++++++++++++++----------- ci/bin/main.ml | 20 +++++++++++++++ 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/.gitlab/ci/jobs/test/kaitai_checks.yml b/.gitlab/ci/jobs/test/kaitai_checks.yml index 8b5d9889f0ac..b31c4bca8d10 100644 --- a/.gitlab/ci/jobs/test/kaitai_checks.yml +++ b/.gitlab/ci/jobs/test/kaitai_checks.yml @@ -1,20 +1,25 @@ -# check that ksy files are still up-to-date with octez +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + kaitai_checks: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: test - needs: [trigger] + tags: + - gcp rules: - - changes: - paths: - - src/**/* - - contrib/*kaitai*/**/* - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success + - changes: + - src/**/* + - contrib/*kaitai*/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - trigger + dependencies: [] before_script: - - . ./scripts/version.sh - - eval $(opam env) + - . ./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) + - 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) diff --git a/ci/bin/main.ml b/ci/bin/main.ml index b36a43a17f29..fa590c851f86 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1415,6 +1415,26 @@ let _job_oc_commit_titles = ["./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 _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)"; + ] + (* 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 -- GitLab From e00c0981bbbed4685bc9e73e11c7004ab09dad64 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:08:37 +0100 Subject: [PATCH 098/134] CI: refactor [kaitai_e2e_checks], remove retry, add stage This job does not extend [retry:] from anywhere so this clause can be removed. Although [test] is the default stage in GitLab CI, we usually make this explicit. --- .gitlab/ci/jobs/test/kaitai_e2e_checks.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml b/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml index 254ad87cf822..76d98060d666 100644 --- a/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml +++ b/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml @@ -2,8 +2,7 @@ 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 + stage: test needs: [kaitai_checks] rules: - changes: -- GitLab From 3041fe5afa3b36b3bcfcc3be852b54abc0762389 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:12:03 +0100 Subject: [PATCH 099/134] CI: generate [kaitai_e2e_checks] --- .gitlab/ci/jobs/test/kaitai_e2e_checks.yml | 42 ++++++++++------------ ci/bin/main.ml | 20 +++++++++-- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml b/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml index 76d98060d666..8fc7e4580fcc 100644 --- a/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml +++ b/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml @@ -1,28 +1,24 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + kaitai_e2e_checks: - extends: - - .default_settings_template - - .image_template__runtime_client_libs_dependencies + image: ${build_deps_image_name}:runtime-client-libs-dependencies--${build_deps_image_version} stage: test - needs: [kaitai_checks] + tags: + - gcp rules: - - changes: - paths: - - src/**/* - - contrib/*kaitai*/**/* - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success + - changes: + - src/**/* + - contrib/*kaitai*/**/* + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - kaitai_checks + dependencies: [] 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 + - . ./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 + - ./contrib/kaitai-struct-files/scripts/kaitai_e2e.sh contrib/kaitai-struct-files/files + contrib/kaitai-struct-files/input diff --git a/ci/bin/main.ml b/ci/bin/main.ml index fa590c851f86..0b74722b2607 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -138,7 +138,7 @@ module Images = struct ~image_path: "${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version}" - let _runtime_client_libs_dependencies = + let runtime_client_libs_dependencies = Image.register ~name:"runtime_client_libs_dependencies" ~image_path: @@ -1419,7 +1419,7 @@ let changeset_kaitai_files = ["src/**/*"; "contrib/*kaitai*/**/*"; ".gitlab/**/*"; ".gitlab-ci.yml"] (* check that ksy files are still up-to-date with octez *) -let _kaitai_checks = +let job_kaitai_checks = job_external @@ job ~name:"kaitai_checks" @@ -1435,6 +1435,22 @@ let _kaitai_checks = ; 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"; + ] + (* 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 -- GitLab From d48b8cc56ffc3c04d62600b8e6f0147dbe54fe67 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:17:42 +0100 Subject: [PATCH 100/134] CI: refactor [oc.check_lift_limits_patch], remove coverage, retry This job does not need coverage instrumentation. By removing the [.test_template] extension we no longer have to overwrite [retry:]. --- .gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml index 064066b205e5..7dacf1f7f568 100644 --- a/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml +++ b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml @@ -1,8 +1,8 @@ oc.check_lift_limits_patch: extends: - - .test_template - # These tests are not flaky at all so we overwrite the retry value - retry: 0 + - .default_settings_template + - .image_template__runtime_build_dependencies + stage: test needs: [trigger] rules: - changes: @@ -11,6 +11,9 @@ oc.check_lift_limits_patch: - .gitlab/**/* - .gitlab-ci.yml when: on_success + before_script: + - . ./scripts/version.sh + - eval $(opam env) script: # Check that the patch only modifies the # src/proto_alpha/lib_protocol. If not, the rules above have to be -- GitLab From c605073ca3f5a22f6469954b850d1d1c2b918ecc Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:23:59 +0100 Subject: [PATCH 101/134] CI: generate [oc.check_lift_limits_patch] --- .../jobs/test/oc.check_lift_limits_patch.yml | 39 ++++++++++--------- ci/bin/main.ml | 27 +++++++++++++ 2 files changed, 48 insertions(+), 18 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml index 7dacf1f7f568..610cf568666b 100644 --- a/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml +++ b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml @@ -1,23 +1,26 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + oc.check_lift_limits_patch: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: test - needs: [trigger] + 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 + - 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) + - . ./scripts/version.sh + - eval $(opam env) 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 + - '[ $(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 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 0b74722b2607..5f56837ab5a2 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1451,6 +1451,33 @@ let _job_kaitai_e2e_checks = 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"; + ] + (* 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 -- GitLab From ba2287b9b0259915c45e7251d9903f7a290746b8 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:26:48 +0100 Subject: [PATCH 102/134] CI: turn off [allow_failure] for [misc_opam_checks] Closes #6604. The ocamlfind issue was resolved long ago. --- .gitlab/ci/jobs/test/misc_opam_checks.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitlab/ci/jobs/test/misc_opam_checks.yml b/.gitlab/ci/jobs/test/misc_opam_checks.yml index 1ddced10c818..94ac0f6f3723 100644 --- a/.gitlab/ci/jobs/test/misc_opam_checks.yml +++ b/.gitlab/ci/jobs/test/misc_opam_checks.yml @@ -5,10 +5,6 @@ misc_opam_checks: 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: -- GitLab From c291267b1c011996a24910bab982a2b8cf75191a Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:28:03 +0100 Subject: [PATCH 103/134] CI: refactor [misc_opam_checks], remove coverage instrumentation We keep [retry: 2] from [.test_template] as this job is known to be flaky. --- .gitlab/ci/jobs/test/misc_opam_checks.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/test/misc_opam_checks.yml b/.gitlab/ci/jobs/test/misc_opam_checks.yml index 94ac0f6f3723..0e0dc0fb2010 100644 --- a/.gitlab/ci/jobs/test/misc_opam_checks.yml +++ b/.gitlab/ci/jobs/test/misc_opam_checks.yml @@ -1,7 +1,14 @@ misc_opam_checks: extends: - - .test_template + - .default_settings_template + - .image_template__runtime_build_dependencies + - .rules__octez_changes + stage: test needs: [trigger] + retry: 2 + before_script: + - . ./scripts/version.sh + - eval $(opam env) script: # checks that all deps of opam packages are already installed - ./scripts/opam-check.sh -- GitLab From e0ada5978a471da2abc9647c288d7c9aa7167219 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:30:12 +0100 Subject: [PATCH 104/134] CI: generate [misc_opam_checks] --- .gitlab/ci/jobs/test/misc_opam_checks.yml | 39 +++++++++++++++-------- ci/bin/main.ml | 17 ++++++++++ 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/.gitlab/ci/jobs/test/misc_opam_checks.yml b/.gitlab/ci/jobs/test/misc_opam_checks.yml index 0e0dc0fb2010..c10986efa640 100644 --- a/.gitlab/ci/jobs/test/misc_opam_checks.yml +++ b/.gitlab/ci/jobs/test/misc_opam_checks.yml @@ -1,19 +1,32 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + misc_opam_checks: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - - .rules__octez_changes + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: test - needs: [trigger] - retry: 2 + 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) + - . ./scripts/version.sh + - eval $(opam env) script: - # checks that all deps of opam packages are already installed - - ./scripts/opam-check.sh + - ./scripts/opam-check.sh artifacts: - when: always + expire_in: 1 day paths: - - opam_repo.patch - expire_in: 1 days + - opam_repo.patch + when: always + retry: 2 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 5f56837ab5a2..f3352e4b7ee0 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1478,6 +1478,23 @@ let _job_oc_check_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)) + (* 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 -- GitLab From 18768867b6c70db936c6857fb8641a9bc11539cb Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 12:35:04 +0100 Subject: [PATCH 105/134] CI: generate [oc.semgrep] --- .gitlab/ci/jobs/shared/images.yml | 2 ++ .gitlab/ci/jobs/test/oc.semgrep.yml | 43 ++++++++++++++--------------- ci/bin/main.ml | 37 +++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 23 deletions(-) diff --git a/.gitlab/ci/jobs/shared/images.yml b/.gitlab/ci/jobs/shared/images.yml index 860198419083..eeb885e01190 100644 --- a/.gitlab/ci/jobs/shared/images.yml +++ b/.gitlab/ci/jobs/shared/images.yml @@ -33,6 +33,8 @@ 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: diff --git a/.gitlab/ci/jobs/test/oc.semgrep.yml b/.gitlab/ci/jobs/test/oc.semgrep.yml index f85a7c09ae5c..7a61020a0fb8 100644 --- a/.gitlab/ci/jobs/test/oc.semgrep.yml +++ b/.gitlab/ci/jobs/test/oc.semgrep.yml @@ -1,27 +1,24 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + 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] + 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 + - 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/ci/bin/main.ml b/ci/bin/main.ml index f3352e4b7ee0..df69ceb40429 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -208,6 +208,19 @@ module Images = struct 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) @@ -1495,6 +1508,30 @@ let _job_misc_opam_checks = ~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"; + ] + (* 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 -- GitLab From 2092895d5bff291446e8833bc36f058b89499de7 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 13:12:16 +0100 Subject: [PATCH 106/134] CI: remove coverage, artifacts, retry from [oc.unit:protocol_compiles] This job does not need coverage instrumentation, nor does it need to store any artifacts. It is not flaky and should not have retry. --- .gitlab/ci/jobs/test/oc.unit.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/test/oc.unit.yml b/.gitlab/ci/jobs/test/oc.unit.yml index a6915a1e0062..6143e566348f 100644 --- a/.gitlab/ci/jobs/test/oc.unit.yml +++ b/.gitlab/ci/jobs/test/oc.unit.yml @@ -120,6 +120,16 @@ oc.unit:js_components: - make test-js oc.unit:protocol_compiles: - extends: .oc.unit_test_template_x86_64 + extends: + - .default_settings_template + - .image_template__runtime_build_dependencies + - .rules__octez_changes + stage: test + needs: + - "oc.build_x86_64-released" + - "oc.build_x86_64-exp-dev-extra" + before_script: + - . ./scripts/version.sh + - eval $(opam env) script: - dune build @runtest_compile_protocol -- GitLab From 74250d7221bd7a3ed0727a2c9fa715a5c028f81b Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 13:16:17 +0100 Subject: [PATCH 107/134] CI: remove coverage, artifacts from [oc.unit:js_components] This job does not need coverage instrumentation, nor does it need to store any artifacts. --- .gitlab/ci/jobs/test/oc.unit.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/test/oc.unit.yml b/.gitlab/ci/jobs/test/oc.unit.yml index 6143e566348f..26b0c9bd7880 100644 --- a/.gitlab/ci/jobs/test/oc.unit.yml +++ b/.gitlab/ci/jobs/test/oc.unit.yml @@ -104,8 +104,15 @@ oc.unit:non-proto-arm64: oc.unit:js_components: extends: - - .oc.unit_test_template_x86_64 + - .default_settings_template - .image_template__runtime_build_test_dependencies + - .rules__octez_changes + stage: test + needs: + - "oc.build_x86_64-released" + - "oc.build_x86_64-exp-dev-extra" + # This is known to have been flaky + retry: 2 variables: # See `.gitlab-ci.yml` for details on `RUNTEZTALIAS` RUNTEZTALIAS: "true" -- GitLab From 1622ac7f28e9c8ac8213433e6b43f9bb3ff66867 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 13:33:57 +0100 Subject: [PATCH 108/134] CI: remove coverage, artifacts from [oc.unit:webassembly-x86_64] This job does not need coverage instrumentation, nor does it need to store any artifacts. --- .gitlab/ci/jobs/test/oc.unit.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.unit.yml b/.gitlab/ci/jobs/test/oc.unit.yml index 26b0c9bd7880..b42aebafa53d 100644 --- a/.gitlab/ci/jobs/test/oc.unit.yml +++ b/.gitlab/ci/jobs/test/oc.unit.yml @@ -80,17 +80,25 @@ oc.unit:proto-x86_64: oc.unit:webassembly-x86_64: extends: - - .oc.unit_test_template_x86_64 + - .default_settings_template # The wasm tests are written in Python - .image_template__runtime_build_test_dependencies - variables: - MAKE_TARGETS: test-webassembly + - .rules__octez_changes + needs: + - "oc.build_x86_64-released" + - "oc.build_x86_64-exp-dev-extra" + stage: test # 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 + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - make test-webassembly oc.unit:non-proto-arm64: extends: -- GitLab From cc31212371c76a0754252cf2f588fab6f289f516 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 13:34:53 +0100 Subject: [PATCH 109/134] CI: refactor, re-order jobs in [oc.unit] to group ocaml unit tests --- .gitlab/ci/jobs/test/oc.unit.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.unit.yml b/.gitlab/ci/jobs/test/oc.unit.yml index b42aebafa53d..9606e0a4e13f 100644 --- a/.gitlab/ci/jobs/test/oc.unit.yml +++ b/.gitlab/ci/jobs/test/oc.unit.yml @@ -78,6 +78,16 @@ oc.unit:proto-x86_64: variables: MAKE_TARGETS: test-proto-unit +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:webassembly-x86_64: extends: - .default_settings_template @@ -100,16 +110,6 @@ oc.unit:webassembly-x86_64: script: - make test-webassembly -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: - .default_settings_template -- GitLab From c4d27bc33ec260a25944163177cb4a1ac6c540d3 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 15:36:13 +0100 Subject: [PATCH 110/134] CI: improve implementation of coverage in the CI This refactoring makes sure the variables [BISECT_FILE], [SLACK_COVERAGE_CHANNEL] and [COVERAGE_OPTIONS] is only set where required: - [COVERAGE_OPTIONS] should be set in jobs that builds instrumented binaries for testing: build and unit tests jobs. - [BISECT_FILE] should be set in jobs that produce or consume traces (test jobs and coverage report production). - [SLACK_COVERAGE_CHANNEL] should be set in jobs that produce coverage reports from traces (i.e. [unified_coverage]). --- .../build/oc.build_x86_64-exp-dev-extra.yml | 2 - .../jobs/build/oc.build_x86_64-released.yml | 2 - .gitlab/ci/pipelines/master_branch.yml | 1 - .../ci/pipelines/schedule_extended_test.yml | 8 +- ci/bin/main.ml | 193 ++++++++++++++---- 5 files changed, 155 insertions(+), 51 deletions(-) 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 index 221b08f986e1..63ba7a6e7a0e 100644 --- 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 @@ -36,8 +36,6 @@ oc.build_x86_64-exp-dev-extra: 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 - BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ - SLACK_COVERAGE_CHANNEL: C02PHBE7W73 artifacts: name: build-$ARCH-$CI_COMMIT_REF_SLUG expire_in: 1 day diff --git a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml b/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml index 89900ad2cc55..2f2427a8f9a4 100644 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml +++ b/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml @@ -34,8 +34,6 @@ oc.build_x86_64-released: GIT_DATETIME: 1970-01-01 00:00:00 +0000% GIT_VERSION: dev COVERAGE_OPTIONS: --instrument-with bisect_ppx - BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ - SLACK_COVERAGE_CHANNEL: C02PHBE7W73 artifacts: name: build-$ARCH-$CI_COMMIT_REF_SLUG expire_in: 1 day diff --git a/.gitlab/ci/pipelines/master_branch.yml b/.gitlab/ci/pipelines/master_branch.yml index 6f993d8fe515..378fc5d57d63 100644 --- a/.gitlab/ci/pipelines/master_branch.yml +++ b/.gitlab/ci/pipelines/master_branch.yml @@ -173,7 +173,6 @@ oc.unified_coverage: variables: PROJECT: $CI_PROJECT_PATH DEFAULT_BRANCH: $CI_COMMIT_SHA - COVERAGE_OPTIONS: --instrument-with bisect_ppx BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ SLACK_COVERAGE_CHANNEL: C02PHBE7W73 artifacts: diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index 8c8f80dfa84a..e61a0b0b6493 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -114,8 +114,6 @@ oc.build_x86_64-released: GIT_DATETIME: 1970-01-01 00:00:00 +0000% GIT_VERSION: dev COVERAGE_OPTIONS: --instrument-with bisect_ppx - BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ - SLACK_COVERAGE_CHANNEL: C02PHBE7W73 artifacts: name: build-$ARCH-$CI_COMMIT_REF_SLUG expire_in: 1 day @@ -161,8 +159,6 @@ oc.build_x86_64-exp-dev-extra: 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 - BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ - SLACK_COVERAGE_CHANNEL: C02PHBE7W73 artifacts: name: build-$ARCH-$CI_COMMIT_REF_SLUG expire_in: 1 day @@ -5635,9 +5631,7 @@ tezt_flaky: TESTS: flaky TEZT_RETRY: "3" TEZT_PARALLEL: "1" - COVERAGE_OPTIONS: --instrument-with bisect_ppx BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ - SLACK_COVERAGE_CHANNEL: C02PHBE7W73 artifacts: name: coverage-files-$CI_JOB_ID expire_in: 3 days @@ -5646,8 +5640,8 @@ tezt_flaky: - tezt.log - tezt-*.log - tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json - - $BISECT_FILE - $JUNIT + - $BISECT_FILE reports: junit: $JUNIT when: always diff --git a/ci/bin/main.ml b/ci/bin/main.ml index df69ceb40429..51f4f9193eee 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -240,16 +240,159 @@ let before_script ?(take_ownership = false) ?(source_version = false) @ before_script let job_append_variables variables (job : job) : job = - let variables = Option.value ~default:[] job.variables @ variables in - {job with variables = Some variables} + 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. -let job_enable_coverage (job : job) = + 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"); - ("BISECT_FILE", "$CI_PROJECT_DIR/_coverage_output/"); - ("SLACK_COVERAGE_CHANNEL", "C02PHBE7W73"); - ] + [("COVERAGE_OPTIONS", "--instrument-with bisect_ppx")] + job + +let job_enable_coverage_output ?(expire_in = Days 1) (job : job) = + 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 *) @@ -749,7 +892,7 @@ let job_build_dynamic_binaries ?rules ~arch ?(external_ = false) in let job = (* Disable coverage for arm64 *) - if arch = Amd64 then job_enable_coverage job else job + if arch = Amd64 then job |> job_enable_coverage_instrumentation else job in if external_ then job_external job else job @@ -823,33 +966,6 @@ let job_build_x86_64_exp_dev_extra = ~rules:build_x86_64_rules () -let job_enable_coverage_report job : job = - let coverage = "/Coverage: ([^%]+%)/" in - let artifacts = - match job.artifacts with - | Some _ -> assert false - | None -> - 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"] - in - {job with artifacts = Some artifacts; coverage = Some coverage} - -let enable_sccache ?(sccache_dir = "$CI_PROJECT_DIR/_sccache") job = - job_append_variables - [("SCCACHE_DIR", sccache_dir); ("RUSTC_WRAPPER", "sccache")] - job - let changeset_octez_docs = [ "scripts/**/*/"; @@ -1188,7 +1304,6 @@ let job_tezt ?rules ?parallel ?(tags = ["gcp_tezt"]) ~name ~tezt_tests "tezt.log"; "tezt-*.log"; "tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json"; - "$BISECT_FILE"; "$JUNIT"; ] (* The record artifacts [tezt-results-$CI_NODE_INDEX.json] @@ -1597,7 +1712,7 @@ let () = ["./scripts/ci/doc_publish.sh"] in let unified_coverage_default = - job_enable_coverage @@ job_enable_coverage_report + job_enable_coverage_report @@ job ~image:Images.runtime_build_test_dependencies ~name:"oc.unified_coverage" @@ -1694,7 +1809,7 @@ let () = ] in let job_tezt_flaky : job = - job_enable_coverage + job_enable_coverage_output ~expire_in:(Days 3) @@ job_tezt ~name:"tezt_flaky" ~tezt_tests:"flaky" -- GitLab From d79615c78a285028a15fac1b32b1b8085556a4a0 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 15:58:41 +0100 Subject: [PATCH 111/134] CI: remove unused coverage variables for [tezt_flaky] --- .../ci/pipelines/schedule_extended_test.yml | 2 -- ci/bin/main.ml | 31 +++++++++---------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index e61a0b0b6493..ec9314ee366a 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -5631,7 +5631,6 @@ tezt_flaky: TESTS: flaky TEZT_RETRY: "3" TEZT_PARALLEL: "1" - BISECT_FILE: $CI_PROJECT_DIR/_coverage_output/ artifacts: name: coverage-files-$CI_JOB_ID expire_in: 3 days @@ -5641,7 +5640,6 @@ tezt_flaky: - tezt-*.log - tezt-results-${CI_NODE_INDEX}${TEZT_VARIANT}.json - $JUNIT - - $BISECT_FILE reports: junit: $JUNIT when: always diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 51f4f9193eee..2f02a11ce155 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -353,7 +353,7 @@ let job_enable_coverage_instrumentation (job : job) = [("COVERAGE_OPTIONS", "--instrument-with bisect_ppx")] job -let job_enable_coverage_output ?(expire_in = Days 1) (job : job) = +let _job_enable_coverage_output ?(expire_in = Days 1) (job : job) = job (* Set the run-time environment variable that specifies the directory where coverage traces should be stored. *) @@ -1809,21 +1809,20 @@ let () = ] in let job_tezt_flaky : job = - job_enable_coverage_output ~expire_in:(Days 3) - @@ 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)) - () + 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 *) -- GitLab From c8cf85624cd09c2c889f554942be340210c337bf Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 16:00:33 +0100 Subject: [PATCH 112/134] CI: generate unit tests --- .gitlab/ci/jobs/test/oc.unit.yml | 323 +++++++++++++++++++------------ ci/bin/main.ml | 157 ++++++++++++++- 2 files changed, 360 insertions(+), 120 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.unit.yml b/.gitlab/ci/jobs/test/oc.unit.yml index 9606e0a4e13f..9b25f9e44710 100644 --- a/.gitlab/ci/jobs/test/oc.unit.yml +++ b/.gitlab/ci/jobs/test/oc.unit.yml @@ -1,150 +1,235 @@ -.oc.unit_test_template: - extends: - - .test_template - - .rules__octez_changes - variables: - ARCH: "" - MAKE_TARGETS: "" +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +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 + - 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: "$CI_JOB_NAME-$CI_COMMIT_SHA-${ARCH}" + name: coverage-files-$CI_JOB_ID + expire_in: 1 day paths: - - test_results + - test_results + - $BISECT_FILE 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 - + retry: 2 oc.unit:other-x86_64: - extends: - - .oc.unit_test_template_x86_64_coverage + 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: - extends: - - .oc.unit_test_template_x86_64_coverage + 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: - extends: - - .oc.unit_test_template_arm64 - # The [lib_benchmark] unit tests require Python - - .image_template__runtime_build_test_dependencies + 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: - extends: - - .default_settings_template - # The wasm tests are written in Python - - .image_template__runtime_build_test_dependencies - - .rules__octez_changes - needs: - - "oc.build_x86_64-released" - - "oc.build_x86_64-exp-dev-extra" + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} stage: test - # 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 + 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) + - . ./scripts/version.sh + - eval $(opam env) script: - - make test-webassembly - + - make test-webassembly oc.unit:js_components: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - - .rules__octez_changes + 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" - # This is known to have been flaky - retry: 2 - 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`. + - 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 + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + - . ./scripts/install_build_deps.js.sh script: - - make test-js - + - make test-js + variables: + RUNTEZTALIAS: "true" + retry: 2 oc.unit:protocol_compiles: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - - .rules__octez_changes + 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" + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] before_script: - - . ./scripts/version.sh - - eval $(opam env) + - . ./scripts/version.sh + - eval $(opam env) script: - - dune build @runtest_compile_protocol + - dune build @runtest_compile_protocol diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 2f02a11ce155..9fbffd1fecea 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -353,7 +353,7 @@ let job_enable_coverage_instrumentation (job : job) = [("COVERAGE_OPTIONS", "--instrument-with bisect_ppx")] job -let _job_enable_coverage_output ?(expire_in = Days 1) (job : job) = +let job_enable_coverage_output ?(expire_in = Days 1) (job : job) = job (* Set the run-time environment variable that specifies the directory where coverage traces should be stored. *) @@ -1647,6 +1647,161 @@ let _job_semgrep = "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; + ] + (* 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 -- GitLab From 573ee7f254e36a4979d82a55010998aea7addf0f Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 16:36:21 +0100 Subject: [PATCH 113/134] CI: generate [oc.integration:compiler-rejections] --- .../oc.integration:compiler-rejections.yml | 27 +++++++++++++++++-- ci/bin/main.ml | 13 +++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml b/.gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml index 812136a66822..cc8ac5280334 100644 --- a/.gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml +++ b/.gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml @@ -1,4 +1,27 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + oc.integration:compiler-rejections: - extends: .test_template + 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 + - dune build @runtest_rejections diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 9fbffd1fecea..e7684852edcd 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1802,6 +1802,19 @@ let _jobs_unit_tests = 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"] + (* 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 -- GitLab From f70e72fc3b8b2ef28a9f5a2c97a2c75c182e1c73 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 17:12:43 +0100 Subject: [PATCH 114/134] CI: refactor, split [oc.script.yml] --- .gitlab/ci/jobs/test/oc.script.yml | 83 ------------------- .gitlab/ci/jobs/test/oc.script:b58_prefix.yml | 25 ++++++ .../oc.script:snapshot_alpha_and_link.yml | 31 +++++++ .../jobs/test/oc.script:test-gen-genesis.yml | 12 +++ .../test/oc.script:test_release_versions.yml | 8 ++ .gitlab/ci/pipelines/before_merging.yml | 5 +- 6 files changed, 80 insertions(+), 84 deletions(-) delete mode 100644 .gitlab/ci/jobs/test/oc.script.yml create mode 100644 .gitlab/ci/jobs/test/oc.script:b58_prefix.yml create mode 100644 .gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml create mode 100644 .gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml create mode 100644 .gitlab/ci/jobs/test/oc.script:test_release_versions.yml diff --git a/.gitlab/ci/jobs/test/oc.script.yml b/.gitlab/ci/jobs/test/oc.script.yml deleted file mode 100644 index 6bae1ede5f4f..000000000000 --- 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.script:b58_prefix.yml b/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml new file mode 100644 index 000000000000..580d470fb149 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml @@ -0,0 +1,25 @@ +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.script:snapshot_alpha_and_link.yml b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml new file mode 100644 index 000000000000..f4af89375376 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml @@ -0,0 +1,31 @@ +# 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 diff --git a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml new file mode 100644 index 000000000000..0e6d3f3605cc --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml @@ -0,0 +1,12 @@ +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 diff --git a/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml b/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml new file mode 100644 index 000000000000..db82de9047f9 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml @@ -0,0 +1,8 @@ +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 diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 6d900004a84c..0d08ec9baea7 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -32,7 +32,10 @@ include: - .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.script:snapshot_alpha_and_link.yml + - .gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml + - .gitlab/ci/jobs/test/oc.script:test_release_versions.yml + - .gitlab/ci/jobs/test/oc.script:b58_prefix.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 From 89d9ef6f31a2ac42319627790fd14473c6e64f02 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 17:18:28 +0100 Subject: [PATCH 115/134] CI: generate [oc.script:snapshot_alpha_and_link.yml] --- .../oc.script:snapshot_alpha_and_link.yml | 54 +++++++++---------- ci/bin/main.ml | 41 ++++++++++++++ 2 files changed, 68 insertions(+), 27 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml index f4af89375376..72512f3a64f4 100644 --- a/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml +++ b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml @@ -1,31 +1,31 @@ -# 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. +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + oc.script:snapshot_alpha_and_link: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: test - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) + 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 + - 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 - 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 + - ./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh diff --git a/ci/bin/main.ml b/ci/bin/main.ml index e7684852edcd..2edfad8e298e 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1815,6 +1815,47 @@ let _job_oc_integration_compiler_rejections = ~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"] + (* 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 -- GitLab From 307ecb88064118b812e8f2a778f2cf562473e731 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 17:33:46 +0100 Subject: [PATCH 116/134] CI: generate [oc.script:oc.script:test-gen-genesis] --- .../jobs/test/oc.script:test-gen-genesis.yml | 30 ++++++++++++++----- ci/bin/main.ml | 11 +++++++ 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml index 0e6d3f3605cc..494766065f7b 100644 --- a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml +++ b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml @@ -1,12 +1,26 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + oc.script:test-gen-genesis: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - - .rules__octez_changes + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: test - needs: [trigger] + 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 + - eval $(opam env) + - cd scripts/gen-genesis script: - - dune build gen_genesis.exe + - dune build gen_genesis.exe diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 2edfad8e298e..793e454104bd 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1856,6 +1856,17 @@ let _job_oc_script_snapshot_alpha_and_link = []) ["./.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"] + (* 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 -- GitLab From 31dbf64da626cd2ddd2b1362f3c5b161d64e9f3d Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 17:45:14 +0100 Subject: [PATCH 117/134] CI: refactor [oc.script:test_release_versions], remove coverage, retry --- .gitlab/ci/jobs/test/oc.script:test_release_versions.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml b/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml index db82de9047f9..bd73e2f8574a 100644 --- a/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml +++ b/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml @@ -1,5 +1,12 @@ oc.script:test_release_versions: - extends: .test_template + extends: + - .default_settings_template + - .image_template__runtime_build_dependencies + - .rules__octez_changes + stage: test + needs: + - "oc.build_x86_64-released" + - "oc.build_x86_64-exp-dev-extra" before_script: - ./scripts/ci/take_ownership.sh - . ./scripts/version.sh -- GitLab From ad61089135351fa4c38217c5a8f70ecc4fea163b Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 17:46:19 +0100 Subject: [PATCH 118/134] CI: generate [oc.script:test_release_versions] --- .../test/oc.script:test_release_versions.yml | 33 +++++++++++++------ ci/bin/main.ml | 18 ++++++++++ 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml b/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml index bd73e2f8574a..1758664399ec 100644 --- a/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml +++ b/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml @@ -1,15 +1,28 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + oc.script:test_release_versions: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - - .rules__octez_changes + 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" + - 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/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) script: - - ./scripts/test_release_version.sh + - ./scripts/test_release_version.sh diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 793e454104bd..722dffdd45d8 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1867,6 +1867,24 @@ let _job_oc_script_test_gen_genesis = ~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"] + (* 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 -- GitLab From ec3699bd88f05ded8d9baf2fce876ebbc8eec2c0 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 17:55:25 +0100 Subject: [PATCH 119/134] CI: generate [oc.script:b58_prefix] --- .gitlab/ci/jobs/test/oc.script:b58_prefix.yml | 42 +++++++++---------- ci/bin/main.ml | 27 ++++++++++++ 2 files changed, 48 insertions(+), 21 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml b/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml index 580d470fb149..79adc98add53 100644 --- a/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml +++ b/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml @@ -1,25 +1,25 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + 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 + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} stage: test - needs: [trigger] + 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 - # Load the environment poetry previously created in the docker image. - # Give access to the Python dependencies/executables - - . $HOME/.venv/bin/activate + - . ./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 + - 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/ci/bin/main.ml b/ci/bin/main.ml index 722dffdd45d8..5bf4dc41c0ed 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1885,6 +1885,33 @@ let _job_oc_script_test_release_versions = []) ["./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"; + ] + (* 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 -- GitLab From 9dea0fc7371152390570ca9027eee228bc679adb Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 17:57:44 +0100 Subject: [PATCH 120/134] CI: refactor [oc.test-liquidity-baking-scripts.yml], remove coverage, retry --- .../ci/jobs/test/oc.test-liquidity-baking-scripts.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml index 15459d19a592..854f3619f784 100644 --- a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml +++ b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml @@ -1,7 +1,10 @@ include: .gitlab/ci/jobs/test/common.yml oc.test-liquidity-baking-scripts: - extends: .test_template + extends: + - .default_settings_template + - .image_template__runtime_build_dependencies + stage: test rules: - changes: paths: @@ -11,7 +14,13 @@ oc.test-liquidity-baking-scripts: - .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 -- GitLab From b3eaa3c38775dbd331d9b88e10956799b3fed550 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Thu, 18 Jan 2024 18:01:01 +0100 Subject: [PATCH 121/134] CI: generate [oc.test-liquidity-baking-scripts] --- .../test/oc.test-liquidity-baking-scripts.yml | 39 ++++++++++--------- ci/bin/main.ml | 25 ++++++++++++ 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml index 854f3619f784..c3ac1da85667 100644 --- a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml +++ b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml @@ -1,26 +1,27 @@ -include: .gitlab/ci/jobs/test/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.test-liquidity-baking-scripts: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} stage: test + tags: + - gcp rules: - - changes: - paths: - - src/**/* - - scripts/ci/test_liquidity_baking_scripts.sh - - scripts/check-liquidity-baking-scripts.sh - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success + - 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" + - 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" + - 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 + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/test_liquidity_baking_scripts.sh diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 5bf4dc41c0ed..a5d5f1f210de 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1912,6 +1912,31 @@ let _job_oc_script_b58_prefix = "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"] + (* 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 -- GitLab From e4f7eb42b0f8d077cc4513e80bbb41264d20a92d Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 13:28:33 +0100 Subject: [PATCH 122/134] CI: refactor, add stage [test] explicitly to [tezt:static-binaries] --- .gitlab/ci/jobs/test/tezt.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab/ci/jobs/test/tezt.yml b/.gitlab/ci/jobs/test/tezt.yml index 1d0cc93adafc..3559bb159178 100644 --- a/.gitlab/ci/jobs/test/tezt.yml +++ b/.gitlab/ci/jobs/test/tezt.yml @@ -41,6 +41,7 @@ tezt-time-sensitive: # these are tezt tests as above, but run using the static binaries tezt:static-binaries: + stage: test extends: # Expansion of .integration_template but without coverage. - .default_settings_template -- GitLab From ed9cba582a193f064a584471b2ca8a0669a0b3bb Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 13:40:25 +0100 Subject: [PATCH 123/134] CI: generate all [tezt] jobs --- .gitlab/ci/jobs/test/tezt.yml | 345 +++++++++++++++++++++++++++------- ci/bin/main.ml | 90 +++++++++ 2 files changed, 365 insertions(+), 70 deletions(-) diff --git a/.gitlab/ci/jobs/test/tezt.yml b/.gitlab/ci/jobs/test/tezt.yml index 3559bb159178..5dcccd473f66 100644 --- a/.gitlab/ci/jobs/test/tezt.yml +++ b/.gitlab/ci/jobs/test/tezt.yml @@ -1,86 +1,291 @@ -include: .gitlab/ci/jobs/test/common.yml +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. tezt: - extends: - - .tezt_tests + 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: - # 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 + 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: - extends: [.tezt_tests] + 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: - TESTS: "memory_4k" - TEZT_PARALLEL: 1 - TEZT_VARIANT: "-memory_4k" + 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: - extends: [.tezt_tests] + 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: - TESTS: "memory_3k" - TEZT_PARALLEL: 1 - TEZT_VARIANT: "-memory_3k" + 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 - -# 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] + 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: - TESTS: "time_sensitive" - TEZT_PARALLEL: 1 - TEZT_VARIANT: "-time_sensitive" + 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 - -# these are tezt tests as above, but run using the static binaries tezt:static-binaries: + image: ${build_deps_image_name}:runtime-e2etest-dependencies--${build_deps_image_version} stage: test - 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 + 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 - variables: - TESTS: "cli" - # Disable coverage - BISECT_FILE: "" + - 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-* . - -# 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 + - 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 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index a5d5f1f210de..8f0382c98eee 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1937,6 +1937,96 @@ let _job_oc_test_liquidity_baking_scripts = ~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; + ] + (* 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 -- GitLab From cc674635da72c15f2b89c3a53bcf3ca16fd473bc Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 16:55:22 +0100 Subject: [PATCH 124/134] CI: refactor, move [documentation:build_all] to [doc] stage This makes sense base on the fact that it is stored in the folder [.gitlab/jobs/doc]. It might have been put in the [build] stage at some point for ordering reasons, but they no longer apply since the job has [needs: [trigger]]. --- .gitlab/ci/jobs/doc/documentation:build_all.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/doc/documentation:build_all.yml b/.gitlab/ci/jobs/doc/documentation:build_all.yml index 7f509dc4d4a5..214ce12fd1db 100644 --- a/.gitlab/ci/jobs/doc/documentation:build_all.yml +++ b/.gitlab/ci/jobs/doc/documentation:build_all.yml @@ -8,7 +8,7 @@ documentation:build_all: - .image_template__runtime_build_test_dependencies - .tags_template__build - .rules__octez_docs_changes - stage: build + stage: doc needs: [trigger] before_script: - eval $(opam env) -- GitLab From 333a4360f5d89bd0c8e3e692945bb00f8423b495 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 16:58:08 +0100 Subject: [PATCH 125/134] CI: generate [documentation:build_all] --- .../ci/jobs/doc/documentation:build_all.yml | 46 ++++++++++++------- ci/bin/main.ml | 21 +++++++++ 2 files changed, 50 insertions(+), 17 deletions(-) diff --git a/.gitlab/ci/jobs/doc/documentation:build_all.yml b/.gitlab/ci/jobs/doc/documentation:build_all.yml index 214ce12fd1db..0238ba4e6654 100644 --- a/.gitlab/ci/jobs/doc/documentation:build_all.yml +++ b/.gitlab/ci/jobs/doc/documentation:build_all.yml @@ -1,23 +1,35 @@ -# 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. +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + documentation:build_all: - extends: - - .default_settings_template - - .image_template__runtime_build_test_dependencies - - .tags_template__build - - .rules__octez_docs_changes + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} stage: doc - needs: [trigger] + 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 + - eval $(opam env) + - . $HOME/.venv/bin/activate script: - - ./.gitlab/ci/jobs/doc/documentation:build_all.sh + - ./.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 + paths: + - docs/_build/ + expose_as: Documentation - excluding old protocols diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 8f0382c98eee..b5acb5ff4ed8 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -1403,6 +1403,27 @@ let job_documentation_linkcheck = ~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 -- GitLab From 36ea39f885c7350b2859a1b1c56ad2f1002e4233 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 17:16:29 +0100 Subject: [PATCH 126/134] Scripts: remove old custom pre-commit hook --- .gitlab/ci/jobs/test/check_precommit_hook.yml | 22 -- .gitlab/ci/pipelines/before_merging.yml | 1 - docs/developer/guidelines.rst | 4 - docs/developer/pre_commit_hook.rst | 19 -- docs/developer/tezt.rst | 15 - docs/developer/tools.rst | 2 +- scripts/README.md | 1 - scripts/pre_commit/pre_commit.py | 258 ------------------ 8 files changed, 1 insertion(+), 321 deletions(-) delete mode 100644 .gitlab/ci/jobs/test/check_precommit_hook.yml delete mode 100755 scripts/pre_commit/pre_commit.py 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 9d0502c4c981..000000000000 --- 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/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 0d08ec9baea7..5bd20046022e 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -22,7 +22,6 @@ include: - .gitlab/ci/jobs/build/oc.tezt:fetch-records.yml # Stage: test - - .gitlab/ci/jobs/test/check_precommit_hook.yml - .gitlab/ci/jobs/test/commit_titles.yml - .gitlab/ci/jobs/test/kaitai_checks.yml - .gitlab/ci/jobs/test/kaitai_e2e_checks.yml diff --git a/docs/developer/guidelines.rst b/docs/developer/guidelines.rst index 1c4ceaef60fa..00f2e0328031 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 78f412bd9f54..83475ce30e25 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 1ab4cc462745..2f4d0172c6ba 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 403a9c693cae..d709933b0fee 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/scripts/README.md b/scripts/README.md index 2f3399a0afe1..33006f21e3e8 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/pre_commit/pre_commit.py b/scripts/pre_commit/pre_commit.py deleted file mode 100755 index 02d998bf4e4b..000000000000 --- 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()) -- GitLab From ecdc279b2f8669972ebb311e9162a093ee214d22 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 17:21:22 +0100 Subject: [PATCH 127/134] CI: refactor, remove job [tezt:build-long] subsumed by [ocaml-check] [tezt:build-long] runs [dune build @tezt/long_tests/check] where as [ocaml-check] runs [dune build @check] which includes the former. --- .gitlab/ci/jobs/test/tezt:build-long.yml | 13 ------------- .gitlab/ci/pipelines/before_merging.yml | 1 - 2 files changed, 14 deletions(-) delete mode 100644 .gitlab/ci/jobs/test/tezt:build-long.yml 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 37131369c2da..000000000000 --- 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/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 5bd20046022e..5fcc7fe34d3f 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -38,7 +38,6 @@ include: - .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 -- GitLab From 32d7520ef0eb15c718c41e2d97384c6df693ad33 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 17:25:21 +0100 Subject: [PATCH 128/134] CI: refactor, apply [.default_settings_template] to [test_kernels] --- .gitlab/ci/jobs/test/test_kernels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/test/test_kernels.yml b/.gitlab/ci/jobs/test/test_kernels.yml index f13d954afdb4..3aea98df1ad7 100644 --- a/.gitlab/ci/jobs/test/test_kernels.yml +++ b/.gitlab/ci/jobs/test/test_kernels.yml @@ -1,8 +1,8 @@ test_kernels: extends: + - .default_settings_template - .oc.kernels_template stage: test - dependencies: [] script: - make -f kernels.mk check - make -f kernels.mk test -- GitLab From 3b2dde6bc006d7e73930e4e036d6ec8069141c3f Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 17:30:19 +0100 Subject: [PATCH 129/134] CI: refactor, specify [when:] in [test_kernels] and simpler [cache:] [when: on_success] is the default, but we usually write it out. Since there is only one [cache:], we use the simple form. --- .gitlab/ci/README.md | 28 +++++++++++++++++++++++++++ .gitlab/ci/jobs/test/test_kernels.yml | 7 ++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.gitlab/ci/README.md b/.gitlab/ci/README.md index b225be2813bf..30c778e0b6ff 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/test/test_kernels.yml b/.gitlab/ci/jobs/test/test_kernels.yml index 3aea98df1ad7..608381de1127 100644 --- a/.gitlab/ci/jobs/test/test_kernels.yml +++ b/.gitlab/ci/jobs/test/test_kernels.yml @@ -15,7 +15,8 @@ test_kernels: - etherlink/kernel_evm/**/* - .gitlab/**/* - .gitlab-ci.yml + when: on_success cache: - - key: kernels - paths: - - cargo/ + key: kernels + paths: + - cargo/ -- GitLab From 6f585cf44e6373d0e2cb1b34fb382a4e2d93b43b Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 17:33:42 +0100 Subject: [PATCH 130/134] CI: generate job [test_kernels] --- .gitlab/ci/jobs/test/test_kernels.yml | 42 +++++++++++++++++---------- ci/bin/main.ml | 22 ++++++++++++++ 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/.gitlab/ci/jobs/test/test_kernels.yml b/.gitlab/ci/jobs/test/test_kernels.yml index 608381de1127..1138f3097d37 100644 --- a/.gitlab/ci/jobs/test/test_kernels.yml +++ b/.gitlab/ci/jobs/test/test_kernels.yml @@ -1,22 +1,32 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + test_kernels: - extends: - - .default_settings_template - - .oc.kernels_template + image: ${build_deps_image_name}:rust-toolchain--${build_deps_image_version} stage: test - script: - - make -f kernels.mk check - - make -f kernels.mk 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 + - 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/ + - 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 diff --git a/ci/bin/main.ml b/ci/bin/main.ml index b5acb5ff4ed8..33cf1bb98bd3 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -2048,6 +2048,28 @@ let _jobs_tezt = 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/"]}] + (* 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 -- GitLab From db67b38d683e1d5989d54ee9fc0b1d1c09e4d200 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 17:43:41 +0100 Subject: [PATCH 131/134] CI: refactor, extract [changes:] from [oc.unified_coverage] and align The intent of the rule on the [unified_coverage] is to run it when any of its dependencies run, namely tezt and unit jobs. The latter jobs have the [.rules__octez_changes] template. However, the [changes:] list of [unified_coverage] does not align. We need to add an extra condition to stop marge-bot from running this job. For this reason we need to create a new template. --- .../oc.unified_coverage-before_merging.yml | 11 +---------- .gitlab/ci/jobs/shared/templates.yml | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml b/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml index 8e1c739ace06..e49e2f197446 100644 --- a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml +++ b/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml @@ -9,19 +9,10 @@ oc.unified_coverage: - .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 + - .rules__octez_changes_and_not_margebot variables: # This inhibites the Makefile's opam version check, which this # job's opam-less image cannot pass. diff --git a/.gitlab/ci/jobs/shared/templates.yml b/.gitlab/ci/jobs/shared/templates.yml index acd49e49cc32..ea523ca5212b 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: -- GitLab From 7836611a8c004012df1b88a58c31209c8a7c71f4 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 18:19:32 +0100 Subject: [PATCH 132/134] CI: refactor, remove superfluous need from [oc.unified_coverage] This job is listed twice. --- .gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml b/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml index e49e2f197446..b85dd4a2357c 100644 --- a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml +++ b/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml @@ -53,7 +53,6 @@ oc.unified_coverage: - "tezt 28/60" - "tezt 29/60" - "tezt 30/60" - - "tezt 20/60" - "tezt 31/60" - "tezt 32/60" - "tezt 33/60" -- GitLab From 6d7acf28c8542ca30599d89f1e1e5f3cd29b8266 Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Wed, 24 Jan 2024 18:27:57 +0100 Subject: [PATCH 133/134] CI: generate [unified_coverage-before_merging] --- .../oc.unified_coverage-before_merging.yml | 201 +++++++++--------- ci/bin/main.ml | 36 ++++ 2 files changed, 141 insertions(+), 96 deletions(-) diff --git a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml b/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml index b85dd4a2357c..60d7e985bde9 100644 --- a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml +++ b/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml @@ -1,101 +1,110 @@ ---- -# 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 +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. oc.unified_coverage: - extends: - - .default_settings_template - - .image_template__runtime_e2etest_dependencies - - .oc.template__coverage_report - # 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. - - .rules__octez_changes_and_not_margebot - 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. + 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: - - "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" - - "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 $? + - 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: ([^%]+%)/' diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 33cf1bb98bd3..d0623a17f974 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -353,7 +353,13 @@ let job_enable_coverage_instrumentation (job : job) = [("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. *) @@ -2070,6 +2076,36 @@ let _job_test_kernels : job = ["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 -- GitLab From eb86eda63dfe730bac3d9b74c9b4300904a0ca2e Mon Sep 17 00:00:00 2001 From: Arvid Jakobsson Date: Fri, 26 Jan 2024 15:00:45 +0100 Subject: [PATCH 134/134] CI: Generate [before_merging] pipeline --- .gitlab/ci/jobs/build/bin_packages_manual.yml | 75 - ...tic-x86_64-linux-binaries-experimental.yml | 22 - .../build/oc.build_arm64-exp-dev-extra.yml | 44 - .../ci/jobs/build/oc.build_arm64-released.yml | 42 - .gitlab/ci/jobs/build/oc.build_kernels.yml | 50 - .../build/oc.build_x86_64-exp-dev-extra.yml | 48 - .../jobs/build/oc.build_x86_64-released.yml | 46 - .../build/oc.docker:amd64-test_manual.yml | 26 - .../build/oc.docker:arm64-test_manual.yml | 26 - .../ci/jobs/build/oc.tezt:fetch-records.yml | 36 - .gitlab/ci/jobs/build/ocaml-check.yml | 25 - .../oc.unified_coverage-before_merging.yml | 110 - .../ci/jobs/doc/documentation:build_all.yml | 35 - .../ci/jobs/doc/documentation:linkcheck.yml | 26 - .gitlab/ci/jobs/doc/oc.install_python.yml | 69 - .gitlab/ci/jobs/sanity/docker:hadolint.yml | 19 - .gitlab/ci/jobs/sanity/sanity_ci.yml | 17 - .gitlab/ci/jobs/test/commit_titles.yml | 15 - .gitlab/ci/jobs/test/install_octez.yml | 178 - .gitlab/ci/jobs/test/kaitai_checks.yml | 25 - .gitlab/ci/jobs/test/kaitai_e2e_checks.yml | 24 - .gitlab/ci/jobs/test/misc_opam_checks.yml | 32 - .../jobs/test/oc.check_lift_limits_patch.yml | 26 - .../oc.integration:compiler-rejections.yml | 27 - .gitlab/ci/jobs/test/oc.misc_checks.yml | 31 - .gitlab/ci/jobs/test/oc.script:b58_prefix.yml | 25 - .../oc.script:snapshot_alpha_and_link.yml | 31 - .../jobs/test/oc.script:test-gen-genesis.yml | 26 - .../test/oc.script:test_release_versions.yml | 28 - .gitlab/ci/jobs/test/oc.semgrep.yml | 24 - .../test/oc.test-liquidity-baking-scripts.yml | 27 - .gitlab/ci/jobs/test/oc.unit.yml | 235 - .gitlab/ci/jobs/test/test_kernels.yml | 32 - .gitlab/ci/jobs/test/tezt.yml | 291 - .gitlab/ci/pipelines/before_merging.yml | 6915 ++++++++++++++++- ci/bin/main.ml | 99 +- 36 files changed, 6940 insertions(+), 1867 deletions(-) delete mode 100644 .gitlab/ci/jobs/build/bin_packages_manual.yml delete mode 100644 .gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-experimental.yml delete mode 100644 .gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml delete mode 100644 .gitlab/ci/jobs/build/oc.build_arm64-released.yml delete mode 100644 .gitlab/ci/jobs/build/oc.build_kernels.yml delete mode 100644 .gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra.yml delete mode 100644 .gitlab/ci/jobs/build/oc.build_x86_64-released.yml delete mode 100644 .gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml delete mode 100644 .gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml delete mode 100644 .gitlab/ci/jobs/build/oc.tezt:fetch-records.yml delete mode 100644 .gitlab/ci/jobs/build/ocaml-check.yml delete mode 100644 .gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml delete mode 100644 .gitlab/ci/jobs/doc/documentation:build_all.yml delete mode 100644 .gitlab/ci/jobs/doc/documentation:linkcheck.yml delete mode 100644 .gitlab/ci/jobs/doc/oc.install_python.yml delete mode 100644 .gitlab/ci/jobs/sanity/docker:hadolint.yml delete mode 100644 .gitlab/ci/jobs/sanity/sanity_ci.yml delete mode 100644 .gitlab/ci/jobs/test/commit_titles.yml delete mode 100644 .gitlab/ci/jobs/test/install_octez.yml delete mode 100644 .gitlab/ci/jobs/test/kaitai_checks.yml delete mode 100644 .gitlab/ci/jobs/test/kaitai_e2e_checks.yml delete mode 100644 .gitlab/ci/jobs/test/misc_opam_checks.yml delete mode 100644 .gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml delete mode 100644 .gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml delete mode 100644 .gitlab/ci/jobs/test/oc.misc_checks.yml delete mode 100644 .gitlab/ci/jobs/test/oc.script:b58_prefix.yml delete mode 100644 .gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml delete mode 100644 .gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml delete mode 100644 .gitlab/ci/jobs/test/oc.script:test_release_versions.yml delete mode 100644 .gitlab/ci/jobs/test/oc.semgrep.yml delete mode 100644 .gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml delete mode 100644 .gitlab/ci/jobs/test/oc.unit.yml delete mode 100644 .gitlab/ci/jobs/test/test_kernels.yml delete mode 100644 .gitlab/ci/jobs/test/tezt.yml 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 82144216ca09..000000000000 --- a/.gitlab/ci/jobs/build/bin_packages_manual.yml +++ /dev/null @@ -1,75 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 60e14e3c88be..000000000000 --- a/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-experimental.yml +++ /dev/null @@ -1,22 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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/* 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 cef4bbad86ae..000000000000 --- a/.gitlab/ci/jobs/build/oc.build_arm64-exp-dev-extra.yml +++ /dev/null @@ -1,44 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 66a56340b8c1..000000000000 --- a/.gitlab/ci/jobs/build/oc.build_arm64-released.yml +++ /dev/null @@ -1,42 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 e780c172d546..000000000000 --- a/.gitlab/ci/jobs/build/oc.build_kernels.yml +++ /dev/null @@ -1,50 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 63ba7a6e7a0e..000000000000 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra.yml +++ /dev/null @@ -1,48 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 2f2427a8f9a4..000000000000 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-released.yml +++ /dev/null @@ -1,46 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 002fba9b53cf..000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:amd64-test_manual.yml +++ /dev/null @@ -1,26 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 bca3d762a6fe..000000000000 --- a/.gitlab/ci/jobs/build/oc.docker:arm64-test_manual.yml +++ /dev/null @@ -1,26 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 2a895abf6110..000000000000 --- a/.gitlab/ci/jobs/build/oc.tezt:fetch-records.yml +++ /dev/null @@ -1,36 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/build/ocaml-check.yml b/.gitlab/ci/jobs/build/ocaml-check.yml deleted file mode 100644 index fcd32e692684..000000000000 --- a/.gitlab/ci/jobs/build/ocaml-check.yml +++ /dev/null @@ -1,25 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 60d7e985bde9..000000000000 --- a/.gitlab/ci/jobs/coverage/oc.unified_coverage-before_merging.yml +++ /dev/null @@ -1,110 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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: ([^%]+%)/' 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 0238ba4e6654..000000000000 --- a/.gitlab/ci/jobs/doc/documentation:build_all.yml +++ /dev/null @@ -1,35 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml b/.gitlab/ci/jobs/doc/documentation:linkcheck.yml deleted file mode 100644 index 54efd206fb31..000000000000 --- a/.gitlab/ci/jobs/doc/documentation:linkcheck.yml +++ /dev/null @@ -1,26 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 95cd68e97d29..000000000000 --- a/.gitlab/ci/jobs/doc/oc.install_python.yml +++ /dev/null @@ -1,69 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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/jobs/sanity/docker:hadolint.yml b/.gitlab/ci/jobs/sanity/docker:hadolint.yml deleted file mode 100644 index 3078cb46192a..000000000000 --- a/.gitlab/ci/jobs/sanity/docker:hadolint.yml +++ /dev/null @@ -1,19 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/sanity/sanity_ci.yml b/.gitlab/ci/jobs/sanity/sanity_ci.yml deleted file mode 100644 index 03fbc48c8a15..000000000000 --- a/.gitlab/ci/jobs/sanity/sanity_ci.yml +++ /dev/null @@ -1,17 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/commit_titles.yml b/.gitlab/ci/jobs/test/commit_titles.yml deleted file mode 100644 index 1034fc1273de..000000000000 --- a/.gitlab/ci/jobs/test/commit_titles.yml +++ /dev/null @@ -1,15 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 $? diff --git a/.gitlab/ci/jobs/test/install_octez.yml b/.gitlab/ci/jobs/test/install_octez.yml deleted file mode 100644 index d79542cb08e0..000000000000 --- a/.gitlab/ci/jobs/test/install_octez.yml +++ /dev/null @@ -1,178 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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} diff --git a/.gitlab/ci/jobs/test/kaitai_checks.yml b/.gitlab/ci/jobs/test/kaitai_checks.yml deleted file mode 100644 index b31c4bca8d10..000000000000 --- a/.gitlab/ci/jobs/test/kaitai_checks.yml +++ /dev/null @@ -1,25 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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) diff --git a/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml b/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml deleted file mode 100644 index 8fc7e4580fcc..000000000000 --- a/.gitlab/ci/jobs/test/kaitai_e2e_checks.yml +++ /dev/null @@ -1,24 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 c10986efa640..000000000000 --- a/.gitlab/ci/jobs/test/misc_opam_checks.yml +++ /dev/null @@ -1,32 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml deleted file mode 100644 index 610cf568666b..000000000000 --- a/.gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml +++ /dev/null @@ -1,26 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 cc8ac5280334..000000000000 --- a/.gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml +++ /dev/null @@ -1,27 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/oc.misc_checks.yml b/.gitlab/ci/jobs/test/oc.misc_checks.yml deleted file mode 100644 index fc8c2173e1b0..000000000000 --- a/.gitlab/ci/jobs/test/oc.misc_checks.yml +++ /dev/null @@ -1,31 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml b/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml deleted file mode 100644 index 79adc98add53..000000000000 --- a/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml +++ /dev/null @@ -1,25 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml deleted file mode 100644 index 72512f3a64f4..000000000000 --- a/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml +++ /dev/null @@ -1,31 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml deleted file mode 100644 index 494766065f7b..000000000000 --- a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml +++ /dev/null @@ -1,26 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml b/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml deleted file mode 100644 index 1758664399ec..000000000000 --- a/.gitlab/ci/jobs/test/oc.script:test_release_versions.yml +++ /dev/null @@ -1,28 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/oc.semgrep.yml b/.gitlab/ci/jobs/test/oc.semgrep.yml deleted file mode 100644 index 7a61020a0fb8..000000000000 --- a/.gitlab/ci/jobs/test/oc.semgrep.yml +++ /dev/null @@ -1,24 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 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 c3ac1da85667..000000000000 --- a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml +++ /dev/null @@ -1,27 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/oc.unit.yml b/.gitlab/ci/jobs/test/oc.unit.yml deleted file mode 100644 index 9b25f9e44710..000000000000 --- a/.gitlab/ci/jobs/test/oc.unit.yml +++ /dev/null @@ -1,235 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/test_kernels.yml b/.gitlab/ci/jobs/test/test_kernels.yml deleted file mode 100644 index 1138f3097d37..000000000000 --- a/.gitlab/ci/jobs/test/test_kernels.yml +++ /dev/null @@ -1,32 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/jobs/test/tezt.yml b/.gitlab/ci/jobs/test/tezt.yml deleted file mode 100644 index 5dcccd473f66..000000000000 --- a/.gitlab/ci/jobs/test/tezt.yml +++ /dev/null @@ -1,291 +0,0 @@ -# This file was automatically generated, do not edit. -# Edit file ci/bin/main.ml instead. - -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 diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 5fcc7fe34d3f..183c5943252a 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -1,51 +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/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/commit_titles.yml - - .gitlab/ci/jobs/test/kaitai_checks.yml - - .gitlab/ci/jobs/test/kaitai_e2e_checks.yml - - .gitlab/ci/jobs/test/oc.check_lift_limits_patch.yml - - .gitlab/ci/jobs/test/oc.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:snapshot_alpha_and_link.yml - - .gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml - - .gitlab/ci/jobs/test/oc.script:test_release_versions.yml - - .gitlab/ci/jobs/test/oc.script:b58_prefix.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/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/ci/bin/main.ml b/ci/bin/main.ml index d0623a17f974..bddf8a7b97ea 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -589,11 +589,11 @@ let job_docker_build ?rules ~arch ?(external_ = false) docker_build_type : job = else job (* Used in external [before_merging] pipeline *) -let _job_docker_amd64_test_manual : job = +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 = +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. @@ -691,7 +691,7 @@ let job_build_dpkg_amd64 = let job_build_rpm_amd64 = job_build_bin_package ~target:Rpm ~arch:Tezos_ci.Amd64 () -let _job_build_bin_packages_manual = +let jobs_build_bin_packages_manual = let manual = true in let arch = Tezos_ci.Amd64 in jobs_external ~path:"build/bin_packages_manual.yml" @@ -1409,7 +1409,7 @@ let job_documentation_linkcheck = ~allow_failure:Yes ["make all"; "make -C docs redirectcheck"; "make -C docs linkcheck"] -let _job_documentation_build_all = +let job_documentation_build_all = job_external @@ job ~name:"documentation:build_all" @@ -1468,7 +1468,7 @@ let jobs_install_python = ~image:Images.debian_bullseye; ] -let _job_sanity_ci = +let job_sanity_ci = job_external @@ job ~name:"sanity_ci" @@ -1487,7 +1487,7 @@ let _job_sanity_ci = let changeset_docker_files = ["build.Dockerfile"; "Dockerfile"] -let _job_docker_hadolint = +let job_docker_hadolint = job_external @@ job ~name:"docker:hadolint" @@ -1506,7 +1506,7 @@ let _job_docker_hadolint = let changeset_ocaml_files = ["src/**/*"; "tezt/**/*"; ".gitlab/**/*"; ".gitlab-ci.yml"; "devtools/**/*"] -let _job_ocaml_check = +let job_ocaml_check = job_external @@ job ~name:"ocaml-check" @@ -1539,7 +1539,7 @@ let changeset_lint_files = ".gitlab/**/*"; ] -let _job_oc_misc_checks = +let job_oc_misc_checks = job_external @@ job ~name:"oc.misc_checks" @@ -1559,7 +1559,7 @@ let _job_oc_misc_checks = "scripts/check_wasm_pvm_regressions.sh check"; ] -let _job_oc_commit_titles = +let job_oc_commit_titles = job_external @@ job ~name:"commit_titles" @@ -1591,7 +1591,7 @@ let job_kaitai_checks = ] (* check that ksy files are still up-to-date with octez *) -let _job_kaitai_e2e_checks = +let job_kaitai_e2e_checks = job_external @@ job ~name:"kaitai_e2e_checks" @@ -1614,7 +1614,7 @@ let changeset_lift_limits_patch = ".gitlab-ci.yml"; ] -let _job_oc_check_lift_limits_patch = +let job_oc_check_lift_limits_patch = job_external @@ job ~name:"oc.check_lift_limits_patch" @@ -1633,7 +1633,7 @@ let _job_oc_check_lift_limits_patch = "dune build @src/proto_alpha/lib_protocol/check"; ] -let _job_misc_opam_checks = +let job_misc_opam_checks = job_external @@ job ~name:"misc_opam_checks" @@ -1660,7 +1660,7 @@ let changeset_semgrep_files = ".gitlab-ci.yml"; ] -let _job_semgrep = +let job_semgrep = job_external @@ job ~name:"oc.semgrep" @@ -1676,7 +1676,7 @@ let _job_semgrep = let changeset_unit_test_arm64 = ["src/**/*"; ".gitlab/**/*"; ".gitlab-ci.yml"] -let _jobs_unit_tests = +let jobs_unit_tests = let build_dependencies = function | Amd64 -> Dependent @@ -1829,7 +1829,7 @@ let _jobs_unit_tests = oc_unit_protocol_compiles; ] -let _job_oc_integration_compiler_rejections = +let job_oc_integration_compiler_rejections = job_external @@ job ~name:"oc.integration:compiler-rejections" @@ -1852,7 +1852,7 @@ let changeset_script_snapshot_alpha_and_link = "scripts/user_activated_upgrade.sh"; ] -let _job_oc_script_snapshot_alpha_and_link = +let job_oc_script_snapshot_alpha_and_link = job_external @@ job ~name:"oc.script:snapshot_alpha_and_link" @@ -1883,7 +1883,7 @@ let _job_oc_script_snapshot_alpha_and_link = []) ["./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh"] -let _job_oc_script_test_gen_genesis = +let job_oc_script_test_gen_genesis = job_external @@ job ~name:"oc.script:test-gen-genesis" @@ -1894,7 +1894,7 @@ let _job_oc_script_test_gen_genesis = ~before_script:(before_script ~eval_opam:true ["cd scripts/gen-genesis"]) ["dune build gen_genesis.exe"] -let _job_oc_script_test_release_versions = +let job_oc_script_test_release_versions = job_external @@ job ~name:"oc.script:test_release_versions" @@ -1920,7 +1920,7 @@ let changeset_script_b58_prefix = ".gitlab-ci.yml"; ] -let _job_oc_script_b58_prefix = +let job_oc_script_b58_prefix = job_external @@ job ~name:"oc.script:b58_prefix" @@ -1948,7 +1948,7 @@ let changeset_test_liquidity_baking_scripts = ".gitlab-ci.yml"; ] -let _job_oc_test_liquidity_baking_scripts = +let job_oc_test_liquidity_baking_scripts = job_external @@ job ~name:"oc.test-liquidity-baking-scripts" @@ -1964,7 +1964,7 @@ let _job_oc_test_liquidity_baking_scripts = ~before_script:(before_script ~source_version:true ~eval_opam:true []) ["./scripts/ci/test_liquidity_baking_scripts.sh"] -let _jobs_tezt = +let jobs_tezt = let dependencies = Dependent [ @@ -2065,7 +2065,7 @@ let changeset_test_kernels = ".gitlab-ci.yml"; ] -let _job_test_kernels : job = +let job_test_kernels : job = job_external @@ enable_kernels @@ job ~name:"test_kernels" @@ -2079,7 +2079,7 @@ let _job_test_kernels : job = (* 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 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 @@ -2125,7 +2125,58 @@ let () = 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) ; + 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] -- GitLab