From ba676a9db29a09f60550c2ec711fd9f7724c4961 Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Mon, 12 Aug 2024 10:39:42 +0200 Subject: [PATCH] Ci: start jobs earlier in the release pipeline --- .gitlab/ci/pipelines/non_release_tag.yml | 8 +++++ .gitlab/ci/pipelines/non_release_tag_test.yml | 8 +++++ .../ci/pipelines/octez_beta_release_tag.yml | 8 +++++ .gitlab/ci/pipelines/octez_release_tag.yml | 8 +++++ .../ci/pipelines/octez_release_tag_test.yml | 8 +++++ ci/bin/release_tag.ml | 32 ++++++++++++++++--- 6 files changed, 67 insertions(+), 5 deletions(-) diff --git a/.gitlab/ci/pipelines/non_release_tag.yml b/.gitlab/ci/pipelines/non_release_tag.yml index 539ba29ab53e..84fe9bf15ebb 100644 --- a/.gitlab/ci/pipelines/non_release_tag.yml +++ b/.gitlab/ci/pipelines/non_release_tag.yml @@ -57,6 +57,8 @@ oc.build:static-x86_64-linux-binaries: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -92,6 +94,8 @@ oc.build:static-arm64-linux-binaries: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes @@ -127,6 +131,8 @@ oc.docker:amd64: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -148,6 +154,8 @@ oc.docker:arm64: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes diff --git a/.gitlab/ci/pipelines/non_release_tag_test.yml b/.gitlab/ci/pipelines/non_release_tag_test.yml index f15020d6b6ee..f78813afb56f 100644 --- a/.gitlab/ci/pipelines/non_release_tag_test.yml +++ b/.gitlab/ci/pipelines/non_release_tag_test.yml @@ -57,6 +57,8 @@ oc.build:static-x86_64-linux-binaries: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -92,6 +94,8 @@ oc.build:static-arm64-linux-binaries: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes @@ -127,6 +131,8 @@ oc.docker:amd64: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -148,6 +154,8 @@ oc.docker:arm64: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes diff --git a/.gitlab/ci/pipelines/octez_beta_release_tag.yml b/.gitlab/ci/pipelines/octez_beta_release_tag.yml index 7b3eb3b8dbb6..99dca4f4279b 100644 --- a/.gitlab/ci/pipelines/octez_beta_release_tag.yml +++ b/.gitlab/ci/pipelines/octez_beta_release_tag.yml @@ -57,6 +57,8 @@ oc.build:static-x86_64-linux-binaries: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -92,6 +94,8 @@ oc.build:static-arm64-linux-binaries: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes @@ -127,6 +131,8 @@ oc.docker:amd64: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -148,6 +154,8 @@ oc.docker:arm64: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes diff --git a/.gitlab/ci/pipelines/octez_release_tag.yml b/.gitlab/ci/pipelines/octez_release_tag.yml index 83006e23d009..c9cb281f832c 100644 --- a/.gitlab/ci/pipelines/octez_release_tag.yml +++ b/.gitlab/ci/pipelines/octez_release_tag.yml @@ -58,6 +58,8 @@ oc.build:static-x86_64-linux-binaries: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -93,6 +95,8 @@ oc.build:static-arm64-linux-binaries: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes @@ -128,6 +132,8 @@ oc.docker:amd64: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -149,6 +155,8 @@ oc.docker:arm64: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes diff --git a/.gitlab/ci/pipelines/octez_release_tag_test.yml b/.gitlab/ci/pipelines/octez_release_tag_test.yml index f5108ab91177..d7cd88ea006a 100644 --- a/.gitlab/ci/pipelines/octez_release_tag_test.yml +++ b/.gitlab/ci/pipelines/octez_release_tag_test.yml @@ -58,6 +58,8 @@ oc.build:static-x86_64-linux-binaries: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -93,6 +95,8 @@ oc.build:static-arm64-linux-binaries: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes @@ -128,6 +132,8 @@ oc.docker:amd64: stage: build tags: - gcp + needs: + - oc.docker:ci:amd64 dependencies: - oc.docker:ci:amd64 timeout: 60 minutes @@ -149,6 +155,8 @@ oc.docker:arm64: stage: build tags: - gcp_arm64 + needs: + - oc.docker:ci:arm64 dependencies: - oc.docker:ci:arm64 timeout: 60 minutes diff --git a/ci/bin/release_tag.ml b/ci/bin/release_tag.ml index 939c9e3072b5..fa335b44ec9d 100644 --- a/ci/bin/release_tag.ml +++ b/ci/bin/release_tag.ml @@ -44,13 +44,23 @@ 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. *) + instead of Docker hub. + + On release pipelines these jobs can start immediately *) let octez_jobs ?(test = false) release_tag_pipeline_type = let job_docker_amd64 = - job_docker_build ~__POS__ ~arch:Amd64 (if test then Test else Release) + job_docker_build + ~dependencies:(Dependent []) + ~__POS__ + ~arch:Amd64 + (if test then Test else Release) in let job_docker_arm64 = - job_docker_build ~__POS__ ~arch:Arm64 (if test then Test else Release) + job_docker_build + ~dependencies:(Dependent []) + ~__POS__ + ~arch:Arm64 + (if test then Test else Release) in let job_docker_merge = job_docker_merge_manifests @@ -59,11 +69,23 @@ let octez_jobs ?(test = false) release_tag_pipeline_type = ~job_docker_amd64 ~job_docker_arm64 in + (* on release pipelines the static binaries do not have any dependencies + on previous stages and can start immediately *) let job_static_arm64_release = - job_build_static_binaries ~__POS__ ~arch:Arm64 ~release:true () + job_build_static_binaries + ~dependencies:(Dependent []) + ~__POS__ + ~arch:Arm64 + ~release:true + () in let job_static_x86_64_release = - job_build_static_binaries ~__POS__ ~arch:Amd64 ~release:true () + job_build_static_binaries + ~dependencies:(Dependent []) + ~__POS__ + ~arch:Amd64 + ~release:true + () in let job_gitlab_release ~dependencies : Tezos_ci.tezos_job = job -- GitLab