diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 38b4437f346b50608b1e4c12df65ddff862d7285..84ac2df10fe9a60e8e9b7419aa488e071702055f 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -1530,7 +1530,7 @@ select_tezts: when: always trigger:debian_repository_partial_auto: - stage: test + stage: start variables: PIPELINE_TYPE: debian_repository_partial_auto rules: @@ -1556,7 +1556,7 @@ trigger:debian_repository_partial_auto: strategy: depend trigger:rpm_repository_partial_auto: - stage: test + stage: start variables: PIPELINE_TYPE: rpm_repository_partial_auto rules: @@ -1579,7 +1579,7 @@ trigger:rpm_repository_partial_auto: strategy: depend trigger:homebrew_auto: - stage: test + stage: start variables: PIPELINE_TYPE: homebrew_auto rules: @@ -4226,7 +4226,7 @@ documentation:linkcheck: - make -C docs linkcheck trigger:homebrew: - stage: manual + stage: start variables: PIPELINE_TYPE: homebrew rules: @@ -4238,7 +4238,7 @@ trigger:homebrew: strategy: depend trigger:rpm_repository_partial: - stage: manual + stage: start variables: PIPELINE_TYPE: rpm_repository_partial rules: @@ -4250,7 +4250,7 @@ trigger:rpm_repository_partial: strategy: depend trigger:debian_repository_partial: - stage: manual + stage: start variables: PIPELINE_TYPE: debian_repository_partial rules: @@ -4372,7 +4372,7 @@ oc.script.docker_verify_image_amd64: IMAGE_ARCH_PREFIX: amd64_ trigger:base_images: - stage: manual + stage: start variables: PIPELINE_TYPE: base_images rules: diff --git a/.gitlab/ci/pipelines/merge_train.yml b/.gitlab/ci/pipelines/merge_train.yml index a649250c0d915625d94587b25c178cf1da67daa1..d87e9d9954a5ec86bf95c1236e6d7ef5927fee9c 100644 --- a/.gitlab/ci/pipelines/merge_train.yml +++ b/.gitlab/ci/pipelines/merge_train.yml @@ -1529,7 +1529,7 @@ select_tezts: when: always trigger:debian_repository_partial_auto: - stage: test + stage: start variables: PIPELINE_TYPE: debian_repository_partial_auto rules: @@ -1555,7 +1555,7 @@ trigger:debian_repository_partial_auto: strategy: depend trigger:rpm_repository_partial_auto: - stage: test + stage: start variables: PIPELINE_TYPE: rpm_repository_partial_auto rules: @@ -1578,7 +1578,7 @@ trigger:rpm_repository_partial_auto: strategy: depend trigger:homebrew_auto: - stage: test + stage: start variables: PIPELINE_TYPE: homebrew_auto rules: @@ -4335,7 +4335,7 @@ oc.script.docker_verify_image_amd64: IMAGE_ARCH_PREFIX: amd64_ trigger:base_images: - stage: manual + stage: start variables: PIPELINE_TYPE: base_images rules: diff --git a/.gitlab/ci/pipelines/non_release_tag.yml b/.gitlab/ci/pipelines/non_release_tag.yml index cb4e02527224d87a09767575e869d3fde8ba7fcc..2f6f09240eee34c6e346404987879a9ec09be6e1 100644 --- a/.gitlab/ci/pipelines/non_release_tag.yml +++ b/.gitlab/ci/pipelines/non_release_tag.yml @@ -302,7 +302,7 @@ gitlab:publish: aud: https://iam.googleapis.com/projects/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROJECT_ID}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID}/providers/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID} trigger:octez_monitoring: - stage: build + stage: start variables: PIPELINE_TYPE: octez_monitoring inherit: diff --git a/.gitlab/ci/pipelines/non_release_tag_test.yml b/.gitlab/ci/pipelines/non_release_tag_test.yml index c018129e4da8f6b4dd676f6bbb77411959b457fe..a08c44adacd1b9ca5deebed1c61b2417dc5f0176 100644 --- a/.gitlab/ci/pipelines/non_release_tag_test.yml +++ b/.gitlab/ci/pipelines/non_release_tag_test.yml @@ -302,7 +302,7 @@ gitlab:publish: aud: https://iam.googleapis.com/projects/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROJECT_ID}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID}/providers/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID} trigger:octez_monitoring: - stage: build + stage: start variables: PIPELINE_TYPE: octez_monitoring inherit: diff --git a/.gitlab/ci/pipelines/octez_beta_release_tag.yml b/.gitlab/ci/pipelines/octez_beta_release_tag.yml index 9b5cbf2597bd2737fab07d811a399c1f1b995327..f162da591b14171654226d9a3331ea1d2bc00ea2 100644 --- a/.gitlab/ci/pipelines/octez_beta_release_tag.yml +++ b/.gitlab/ci/pipelines/octez_beta_release_tag.yml @@ -304,7 +304,7 @@ gitlab:release: aud: https://iam.googleapis.com/projects/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROJECT_ID}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID}/providers/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID} trigger:octez_monitoring: - stage: build + stage: start variables: PIPELINE_TYPE: octez_monitoring inherit: diff --git a/.gitlab/ci/pipelines/octez_major_release_tag_test.yml b/.gitlab/ci/pipelines/octez_major_release_tag_test.yml index de1e997d7df48ef1f175a0a609bcaf9e37035902..304111d6908148a85c717ae0ffae3aae136f47b8 100644 --- a/.gitlab/ci/pipelines/octez_major_release_tag_test.yml +++ b/.gitlab/ci/pipelines/octez_major_release_tag_test.yml @@ -304,7 +304,7 @@ gitlab:release: aud: https://iam.googleapis.com/projects/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROJECT_ID}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID}/providers/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID} trigger:octez_monitoring: - stage: build + stage: start variables: PIPELINE_TYPE: octez_monitoring inherit: diff --git a/.gitlab/ci/pipelines/octez_minor_release_tag_test.yml b/.gitlab/ci/pipelines/octez_minor_release_tag_test.yml index 8f420b3221ad321ee48332c0a9f3584642565de7..96c5cecc014b4363590e4159e459c9420e5e01c9 100644 --- a/.gitlab/ci/pipelines/octez_minor_release_tag_test.yml +++ b/.gitlab/ci/pipelines/octez_minor_release_tag_test.yml @@ -283,7 +283,7 @@ gitlab:release: aud: https://iam.googleapis.com/projects/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROJECT_ID}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID}/providers/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID} trigger:octez_monitoring: - stage: build + stage: start variables: PIPELINE_TYPE: octez_monitoring inherit: diff --git a/.gitlab/ci/pipelines/octez_release_tag.yml b/.gitlab/ci/pipelines/octez_release_tag.yml index 1f66baaf04a99422a728d57c4a060e083d8ca92f..fdd503a611405dd74bb9b282f0f5e4121c034486 100644 --- a/.gitlab/ci/pipelines/octez_release_tag.yml +++ b/.gitlab/ci/pipelines/octez_release_tag.yml @@ -283,7 +283,7 @@ gitlab:release: aud: https://iam.googleapis.com/projects/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROJECT_ID}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID}/providers/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID} trigger:octez_monitoring: - stage: build + stage: start variables: PIPELINE_TYPE: octez_monitoring inherit: diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index f7e465d1343feddb3bb6ec0b5ff13e9dede4858f..bc5c180049f90d377b239e7ceb18d1244c325521 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -1801,7 +1801,7 @@ opam:all_7: - bls12-381 trigger:debian_repository_full: - stage: test + stage: start variables: PIPELINE_TYPE: debian_repository_full needs: [] @@ -1810,7 +1810,7 @@ trigger:debian_repository_full: strategy: depend trigger:rpm_repository_full: - stage: test + stage: start variables: PIPELINE_TYPE: rpm_repository_full needs: [] @@ -1819,7 +1819,7 @@ trigger:rpm_repository_full: strategy: depend trigger:homebrew: - stage: test + stage: start variables: PIPELINE_TYPE: homebrew rules: @@ -1830,7 +1830,7 @@ trigger:homebrew: strategy: depend trigger:base_images: - stage: images + stage: start variables: PIPELINE_TYPE: base_images rules: diff --git a/.gitlab/ci/pipelines/schedule_master_test_release.yml b/.gitlab/ci/pipelines/schedule_master_test_release.yml index 1732edbd3bccd7530a45f6bea3c0d9350d752a86..130d45ba3d9d98ac7eace46f707ab2d4c2deb1cd 100644 --- a/.gitlab/ci/pipelines/schedule_master_test_release.yml +++ b/.gitlab/ci/pipelines/schedule_master_test_release.yml @@ -305,7 +305,7 @@ gitlab:publish: aud: https://iam.googleapis.com/projects/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROJECT_ID}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_FEDERATION_POOL_ID}/providers/${GCP_WORKLOAD_IDENTITY_FEDERATION_PROVIDER_ID} trigger:octez_monitoring: - stage: build + stage: start variables: PIPELINE_TYPE: octez_monitoring inherit: diff --git a/ci/bin/code_verification.ml b/ci/bin/code_verification.ml index 95dbf8904722fc4d6f8010ada55bffae671c0ea7..f202134579bcff4d9aabe53aaa11255f7ba0eccb 100644 --- a/ci/bin/code_verification.ml +++ b/ci/bin/code_verification.ml @@ -931,7 +931,6 @@ let jobs pipeline_type = trigger_job ~__POS__ ~rules:(make_rules ~manual:No ~changes:changeset_debian_packages ()) - ~stage:Stages.test ~dependencies:dependencies_needs_start Debian_repository.child_pipeline_partial_auto in @@ -939,7 +938,6 @@ let jobs pipeline_type = trigger_job ~__POS__ ~dependencies:(Dependent []) - ~stage:Stages.test Debian_repository.child_pipeline_full in @@ -948,7 +946,6 @@ let jobs pipeline_type = trigger_job ~__POS__ ~rules:(make_rules ~manual:No ~changes:changeset_rpm_packages ()) - ~stage:Stages.test ~dependencies:dependencies_needs_start Rpm_repository.child_pipeline_partial_auto in @@ -956,7 +953,6 @@ let jobs pipeline_type = trigger_job ~__POS__ ~dependencies:(Dependent []) - ~stage:Stages.test Rpm_repository.child_pipeline_full in @@ -964,7 +960,6 @@ let jobs pipeline_type = trigger_job ~__POS__ ~rules:(make_rules ~manual:No ~changes:changeset_homebrew ()) - ~stage:Stages.test ~dependencies:dependencies_needs_start Homebrew.child_pipeline_full_auto in @@ -972,7 +967,6 @@ let jobs pipeline_type = trigger_job ~__POS__ ~rules:(make_rules ~manual:No ~changes:changeset_homebrew ()) - ~stage:Stages.test ~dependencies:(Dependent []) Homebrew.child_pipeline_full in @@ -981,7 +975,6 @@ let jobs pipeline_type = trigger_job ~__POS__ ~rules:(make_rules ~manual:No ~changes:changeset_base_images ()) - ~stage:Stages.images ~dependencies:(Dependent []) Base_images.child_pipeline in @@ -2081,7 +2074,6 @@ let jobs pipeline_type = ~__POS__ ~rules:(make_rules ~manual:Yes ()) ~dependencies:(Dependent []) - ~stage:Stages.manual Debian_repository.child_pipeline_partial in let job_rpm_repository_trigger_partial : tezos_job = @@ -2092,7 +2084,6 @@ let jobs pipeline_type = ~__POS__ ~rules:(make_rules ~manual:Yes ()) ~dependencies:(Dependent []) - ~stage:Stages.manual Rpm_repository.child_pipeline_partial in let job_homebrew_repository_trigger : tezos_job = @@ -2102,14 +2093,12 @@ let jobs pipeline_type = ~__POS__ ~rules:(make_rules ~manual:Yes ()) ~dependencies:(Dependent []) - ~stage:Stages.manual Homebrew.child_pipeline_full in let job_base_images_trigger = trigger_job ~__POS__ ~rules:(make_rules ~manual:Yes ()) - ~stage:Stages.manual ~dependencies:(Dependent []) Base_images.child_pipeline in diff --git a/ci/bin/release_tag.ml b/ci/bin/release_tag.ml index ae781bda534b287903597e857a291bad8c710420..ba9484356e215b036f7afdc79974ab71d7fc09bc 100644 --- a/ci/bin/release_tag.ml +++ b/ci/bin/release_tag.ml @@ -266,11 +266,7 @@ let octez_jobs ?(test = false) ?(major = true) release_tag_pipeline_type = () in let job_trigger_monitoring = - trigger_job - ~__POS__ - ~dependencies:(Dependent []) - ~stage:Stages.build - monitoring_child_pipeline + trigger_job ~__POS__ ~dependencies:(Dependent []) monitoring_child_pipeline in [ (* Stage: start *) diff --git a/ci/lib_tezos_ci/tezos_ci.ml b/ci/lib_tezos_ci/tezos_ci.ml index b854a71f15fa2d4b92f547fa97c46c8a757c4711..c45d95637c719c783cede89ecf03a4204388624c 100644 --- a/ci/lib_tezos_ci/tezos_ci.ml +++ b/ci/lib_tezos_ci/tezos_ci.ml @@ -100,6 +100,33 @@ module Stage = struct let index (Stage {name = _; index}) = index end +(* Define [stages:] + + The "manual" stage exists to fix a UI problem that occurs when mixing + manual and non-manual jobs. *) +module Stages = struct + let start = Stage.register "start" + + (* All automatic image creation is done in the stage [images]. *) + let images = Stage.register "images" + + 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 publish = Stage.register "publish" + + let publishing_tests = Stage.register "publishing_tests" + + let manual = Stage.register "manual" +end + let templates_to_config (templates : Gitlab_ci.Types.template list) = match templates with | [] -> [] (* empty includes are forbidden *) @@ -1031,7 +1058,7 @@ let job ?arch ?after_script ?allow_failure ?artifacts ?(before_script = []) template; } -let trigger_job ?(dependencies = Staged []) ?rules ?description ~__POS__ ~stage +let trigger_job ?(dependencies = Staged []) ?rules ?description ~__POS__ Pipeline. { name = child_pipeline_name; @@ -1052,7 +1079,7 @@ let trigger_job ?(dependencies = Staged []) ?rules ?description ~__POS__ ~stage ?needs ?inherit_ ?rules - ~stage:(Stage.name stage) + ~stage:(Stage.name Stages.start) ~variables:[("PIPELINE_TYPE", child_pipeline_name)] ~name:job_name (Pipeline.path ~name:child_pipeline_name) @@ -1061,7 +1088,7 @@ let trigger_job ?(dependencies = Staged []) ?rules ?description ~__POS__ ~stage job = Trigger_job trigger_job; description; source_position = __POS__; - stage; + stage = Stages.start; image_builders = []; template = None; } @@ -1303,33 +1330,6 @@ let with_interruptible value tezos_job = map_non_trigger_job tezos_job @@ fun job -> {job with interruptible = Some value} -(* Define [stages:] - - The "manual" stage exists to fix a UI problem that occurs when mixing - manual and non-manual jobs. *) -module Stages = struct - let start = Stage.register "start" - - (* All automatic image creation is done in the stage [images]. *) - let images = Stage.register "images" - - 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 publish = Stage.register "publish" - - let publishing_tests = Stage.register "publishing_tests" - - let manual = Stage.register "manual" -end - (* Register external images. Use this module to register images that are as built outside the diff --git a/ci/lib_tezos_ci/tezos_ci.mli b/ci/lib_tezos_ci/tezos_ci.mli index 67603b81f211043c20f9df4cfb17ffc11a7f75dd..267ef6cba7162c84fc85f4675f35e4aebe63f4fc 100644 --- a/ci/lib_tezos_ci/tezos_ci.mli +++ b/ci/lib_tezos_ci/tezos_ci.mli @@ -469,13 +469,15 @@ val job : (** Define a trigger job for a child pipeline. - The trigger job will be named [trigger:CHILD_PIPELINE_NAME]. *) + The trigger job will be named [trigger:CHILD_PIPELINE_NAME]. + + Trigger jobs are by construction in the [Stages.start] stage. + *) val trigger_job : ?dependencies:dependencies -> ?rules:Gitlab_ci.Types.job_rule list -> ?description:string -> __POS__:string * int * int * int -> - stage:Stage.t -> Pipeline.child_pipeline -> tezos_job