From 956563059016b9379dd865d300fe9da00e1f4ec3 Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Thu, 18 Jul 2024 14:06:26 +0200 Subject: [PATCH 1/6] ciao: add new type debian_pipeline_type --- .gitlab/ci/pipelines/before_merging.yml | 4 ++-- ...tory_scheduled.yml => debian_repository_full.yml} | 0 ..._repository.yml => debian_repository_partial.yml} | 0 .gitlab/ci/pipelines/schedule_extended_test.yml | 4 ++-- ci/bin/code_verification.ml | 12 +++++++++--- ci/bin/common.ml | 7 +++++++ ci/bin/debian_repository.ml | 12 ++++++------ 7 files changed, 26 insertions(+), 13 deletions(-) rename .gitlab/ci/pipelines/{debian_repository_scheduled.yml => debian_repository_full.yml} (100%) rename .gitlab/ci/pipelines/{debian_repository.yml => debian_repository_partial.yml} (100%) diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index ac794e013ab0..99ae25222138 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -3584,11 +3584,11 @@ oc.build:homebrew: variables: CARGO_NET_OFFLINE: "false" -trigger:debian_repository: +trigger:debian_repository_partial: stage: manual rules: - when: manual allow_failure: true needs: [] trigger: - include: .gitlab/ci/pipelines/debian_repository.yml + include: .gitlab/ci/pipelines/debian_repository_partial.yml diff --git a/.gitlab/ci/pipelines/debian_repository_scheduled.yml b/.gitlab/ci/pipelines/debian_repository_full.yml similarity index 100% rename from .gitlab/ci/pipelines/debian_repository_scheduled.yml rename to .gitlab/ci/pipelines/debian_repository_full.yml diff --git a/.gitlab/ci/pipelines/debian_repository.yml b/.gitlab/ci/pipelines/debian_repository_partial.yml similarity index 100% rename from .gitlab/ci/pipelines/debian_repository.yml rename to .gitlab/ci/pipelines/debian_repository_partial.yml diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index 6362dfd38040..efaab746757b 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -2697,10 +2697,10 @@ documentation:linkcheck: - make -C docs redirectcheck - make -C docs linkcheck -trigger:debian_repository_scheduled: +trigger:debian_repository_full: stage: manual rules: - when: always needs: [] trigger: - include: .gitlab/ci/pipelines/debian_repository_scheduled.yml + include: .gitlab/ci/pipelines/debian_repository_full.yml diff --git a/ci/bin/code_verification.ml b/ci/bin/code_verification.ml index d8206737b97a..5dca1de3e968 100644 --- a/ci/bin/code_verification.ml +++ b/ci/bin/code_verification.ml @@ -318,8 +318,9 @@ let tezt_tests ?(memory_3k = false) ?(memory_4k = false) let debian_repository_child_pipeline pipeline_type = let pipeline_name = match pipeline_type with - | Before_merging -> "debian_repository" - | Schedule_extended_test -> "debian_repository_scheduled" + | Partial -> "debian_repository_partial" + | Full -> "debian_repository_full" + | Release -> "debian_repository_release" in Pipeline.register_child pipeline_name @@ -1848,12 +1849,17 @@ let jobs pipeline_type = (* Debian packages are always built on scheduled pipelines, and can be built manually on the [Before_merging] pipelines. *) let job_debian_repository_trigger : tezos_job = + let debian_pipeline_type = + match pipeline_type with + | Before_merging -> Partial + | Schedule_extended_test -> Full + in trigger_job ~__POS__ ~rules:(make_rules ~manual:Yes ()) ~dependencies:(Dependent []) ~stage:Stages.manual - (debian_repository_child_pipeline pipeline_type) + (debian_repository_child_pipeline debian_pipeline_type) in match pipeline_type with | Before_merging -> diff --git a/ci/bin/common.ml b/ci/bin/common.ml index 665b15eb640a..6cf273605bf3 100644 --- a/ci/bin/common.ml +++ b/ci/bin/common.ml @@ -19,6 +19,13 @@ open Gitlab_ci.Types open Gitlab_ci.Util open Tezos_ci +(* types for the debian repository pipelines. + - Release: we run all the release jobs, but no tests + - Partial: we run only a subset of the tests jobs + - Full: we run the complete test matrix +*) +type debian_repository_pipeline = Full | Partial | Release + (* Encodes the conditional [before_merging] pipeline and its unconditional variant [schedule_extended_test]. *) type code_verification_pipeline = Before_merging | Schedule_extended_test diff --git a/ci/bin/debian_repository.ml b/ci/bin/debian_repository.ml index 6068d799fb95..98f69b03fb32 100644 --- a/ci/bin/debian_repository.ml +++ b/ci/bin/debian_repository.ml @@ -27,8 +27,8 @@ let build_debian_packages_image = If [release_pipeline] is false, we only tests a subset of the matrix, one release, and one architecture. *) let debian_package_release_matrix = function - | Before_merging -> [[("RELEASE", ["bookworm"]); ("TAGS", ["gcp"])]] - | Schedule_extended_test -> + | Partial -> [[("RELEASE", ["bookworm"]); ("TAGS", ["gcp"])]] + | Full | Release -> [[("RELEASE", ["unstable"; "bookworm"]); ("TAGS", ["gcp"; "gcp_arm64"])]] (** These are the set of Ubuntu release-architecture combinations for @@ -39,8 +39,8 @@ let debian_package_release_matrix = function If [release_pipeline] is false, we only tests a subset of the matrix, one release, and one architecture. *) let ubuntu_package_release_matrix = function - | Before_merging -> [[("RELEASE", ["jammy"]); ("TAGS", ["gcp"])]] - | Schedule_extended_test -> + | Partial -> [[("RELEASE", ["jammy"]); ("TAGS", ["gcp"])]] + | Full | Release -> [[("RELEASE", ["focal"; "jammy"]); ("TAGS", ["gcp"; "gcp_arm64"])]] (* Push .deb artifacts to storagecloud apt repository. *) @@ -242,5 +242,5 @@ let jobs pipeline_type = @ test_current_ubuntu_packages_jobs in match pipeline_type with - | Before_merging -> debian_jobs - | Schedule_extended_test -> debian_jobs @ ubuntu_jobs + | Partial -> debian_jobs + | Full | Release -> debian_jobs @ ubuntu_jobs -- GitLab From 88915b7a3343559e4ef158ecc7fd8de0d887a601 Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Thu, 18 Jul 2024 14:08:45 +0200 Subject: [PATCH 2/6] ciao: use GCP registry for for packages dependency images, don't hard code project --- .gitlab/ci/pipelines/debian_repository_full.yml | 12 ++++++------ .gitlab/ci/pipelines/debian_repository_partial.yml | 6 +++--- ci/bin/debian_repository.ml | 4 +++- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitlab/ci/pipelines/debian_repository_full.yml b/.gitlab/ci/pipelines/debian_repository_full.yml index 809b68ae502b..1d31ecbd6231 100644 --- a/.gitlab/ci/pipelines/debian_repository_full.yml +++ b/.gitlab/ci/pipelines/debian_repository_full.yml @@ -26,7 +26,7 @@ oc.docker-build-debian-dependencies: - docker:${DOCKER_VERSION}-dind variables: DOCKER_VERSION: 24.0.6 - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: debian parallel: matrix: @@ -47,7 +47,7 @@ oc.build-debian: - export CARGO_NET_OFFLINE=false - ./scripts/ci/build-debian-packages.sh variables: - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: debian artifacts: paths: @@ -71,7 +71,7 @@ oc.build-debian-current: - export CARGO_NET_OFFLINE=false - ./scripts/ci/build-debian-packages_current.sh variables: - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: debian artifacts: paths: @@ -128,7 +128,7 @@ oc.docker-build-ubuntu-dependencies: - docker:${DOCKER_VERSION}-dind variables: DOCKER_VERSION: 24.0.6 - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: ubuntu parallel: matrix: @@ -149,7 +149,7 @@ oc.build-ubuntu: - export CARGO_NET_OFFLINE=false - ./scripts/ci/build-debian-packages.sh variables: - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: ubuntu artifacts: paths: @@ -173,7 +173,7 @@ oc.build-ubuntu-current: - export CARGO_NET_OFFLINE=false - ./scripts/ci/build-debian-packages_current.sh variables: - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: ubuntu artifacts: paths: diff --git a/.gitlab/ci/pipelines/debian_repository_partial.yml b/.gitlab/ci/pipelines/debian_repository_partial.yml index ff1321d397cf..5b53bdf48fe3 100644 --- a/.gitlab/ci/pipelines/debian_repository_partial.yml +++ b/.gitlab/ci/pipelines/debian_repository_partial.yml @@ -26,7 +26,7 @@ oc.docker-build-debian-dependencies: - docker:${DOCKER_VERSION}-dind variables: DOCKER_VERSION: 24.0.6 - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: debian parallel: matrix: @@ -45,7 +45,7 @@ oc.build-debian: - export CARGO_NET_OFFLINE=false - ./scripts/ci/build-debian-packages.sh variables: - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: debian artifacts: paths: @@ -67,7 +67,7 @@ oc.build-debian-current: - export CARGO_NET_OFFLINE=false - ./scripts/ci/build-debian-packages_current.sh variables: - DEP_IMAGE: registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE DISTRIBUTION: debian artifacts: paths: diff --git a/ci/bin/debian_repository.ml b/ci/bin/debian_repository.ml index 98f69b03fb32..719440f27ecd 100644 --- a/ci/bin/debian_repository.ml +++ b/ci/bin/debian_repository.ml @@ -69,7 +69,9 @@ let job_apt_repo ?rules ~__POS__ ~name ?(stage = Stages.publishing) we test only on Debian stable. *) let jobs pipeline_type = let variables add = - ("DEP_IMAGE", "registry.gitlab.com/tezos/tezos/build-$DISTRIBUTION-$RELEASE") + ( "DEP_IMAGE", + "${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE" + ) :: add in let make_job_docker_build_debian_dependencies ~__POS__ ~name ~matrix -- GitLab From 7b9b59236d80e22192a85011b869fe14b2713802 Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Thu, 18 Jul 2024 14:35:21 +0200 Subject: [PATCH 3/6] ciao: refactor debian_repository_pipeline --- .../ci/pipelines/debian_repository_full.yml | 22 ++++++------- ci/bin/code_verification.ml | 19 +++--------- ci/bin/debian_repository.ml | 31 ++++++++++++++++--- 3 files changed, 42 insertions(+), 30 deletions(-) diff --git a/.gitlab/ci/pipelines/debian_repository_full.yml b/.gitlab/ci/pipelines/debian_repository_full.yml index 1d31ecbd6231..8737dd4fb0e4 100644 --- a/.gitlab/ci/pipelines/debian_repository_full.yml +++ b/.gitlab/ci/pipelines/debian_repository_full.yml @@ -103,17 +103,6 @@ apt_repo_debian_current: ARCHITECTURES: amd64 GNUPGHOME: $CI_PROJECT_DIR/.gnupg -oc.install_bin_debian_bookworm: - image: debian:bookworm - stage: publishing_tests - tags: - - gcp - needs: - - apt_repo_debian_current - dependencies: [] - script: - - ./docs/introduction/install-bin-deb.sh debian bookworm - oc.docker-build-ubuntu-dependencies: image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 stage: images @@ -205,6 +194,17 @@ apt_repo_ubuntu_current: ARCHITECTURES: amd64 GNUPGHOME: $CI_PROJECT_DIR/.gnupg +oc.install_bin_debian_bookworm: + image: debian:bookworm + stage: publishing_tests + tags: + - gcp + needs: + - apt_repo_debian_current + dependencies: [] + script: + - ./docs/introduction/install-bin-deb.sh debian bookworm + oc.install_bin_ubuntu_focal: image: public.ecr.aws/lts/ubuntu:20.04_stable stage: publishing_tests diff --git a/ci/bin/code_verification.ml b/ci/bin/code_verification.ml index 5dca1de3e968..b105359a3992 100644 --- a/ci/bin/code_verification.ml +++ b/ci/bin/code_verification.ml @@ -315,17 +315,6 @@ let tezt_tests ?(memory_3k = false) ?(memory_4k = false) @ List.map (fun tag -> TSL_AST.Not (Has_tag tag)) negative @ and_) -let debian_repository_child_pipeline pipeline_type = - let pipeline_name = - match pipeline_type with - | Partial -> "debian_repository_partial" - | Full -> "debian_repository_full" - | Release -> "debian_repository_release" - in - Pipeline.register_child - pipeline_name - ~jobs:(Debian_repository.jobs pipeline_type) - (* Encodes the conditional [before_merging] pipeline and its unconditional variant [schedule_extended_test]. *) let jobs pipeline_type = @@ -1846,8 +1835,9 @@ let jobs pipeline_type = (*Manual jobs *) let manual = - (* Debian packages are always built on scheduled pipelines, and - can be built manually on the [Before_merging] pipelines. *) + (* On scheduled pipelines we build and test the full test matrix. + On [Before_merging] pipelines only a subset of the packages are built + and tested *) let job_debian_repository_trigger : tezos_job = let debian_pipeline_type = match pipeline_type with @@ -1859,7 +1849,8 @@ let jobs pipeline_type = ~rules:(make_rules ~manual:Yes ()) ~dependencies:(Dependent []) ~stage:Stages.manual - (debian_repository_child_pipeline debian_pipeline_type) + (Debian_repository.debian_repository_child_pipeline + debian_pipeline_type) in match pipeline_type with | Before_merging -> diff --git a/ci/bin/debian_repository.ml b/ci/bin/debian_repository.ml index 719440f27ecd..268b219bc800 100644 --- a/ci/bin/debian_repository.ml +++ b/ci/bin/debian_repository.ml @@ -66,7 +66,9 @@ let job_apt_repo ?rules ~__POS__ ~name ?(stage = Stages.publishing) script (* The entire Debian packages pipeline. When [pipeline_type] is [Before_merging] - we test only on Debian stable. *) + we test only on Debian stable. Returns a triplet, the first element is + the list of all jobs, the second is the job building ubuntu packages artifats + and the third debian packages artifacts *) let jobs pipeline_type = let variables add = ( "DEP_IMAGE", @@ -232,7 +234,6 @@ let jobs pipeline_type = job_build_debian_package_current; job_apt_repo_debian_current; ] - @ test_current_debian_packages_jobs in let ubuntu_jobs = [ @@ -241,8 +242,28 @@ let jobs pipeline_type = job_build_ubuntu_package_current; job_apt_repo_ubuntu_current; ] - @ test_current_ubuntu_packages_jobs in match pipeline_type with - | Partial -> debian_jobs - | Full | Release -> debian_jobs @ ubuntu_jobs + | Partial -> + ( debian_jobs @ test_current_debian_packages_jobs, + job_build_ubuntu_package_current, + job_build_debian_package_current ) + | Full -> + ( debian_jobs @ ubuntu_jobs @ test_current_debian_packages_jobs + @ test_current_ubuntu_packages_jobs, + job_build_ubuntu_package_current, + job_build_debian_package_current ) + | Release -> + ( debian_jobs @ ubuntu_jobs, + job_build_ubuntu_package_current, + job_build_debian_package_current ) + +let debian_repository_child_pipeline pipeline_type = + let pipeline_name = + match pipeline_type with + | Partial -> "debian_repository_partial" + | Full -> "debian_repository_full" + | Release -> "debian_repository_release" + in + let jobs, _, _ = jobs pipeline_type in + Pipeline.register_child pipeline_name ~jobs -- GitLab From a6b63995caffb8544a5ef6539391d3f4b7510e8e Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Thu, 18 Jul 2024 14:37:38 +0200 Subject: [PATCH 4/6] ciao: add dependencies to dependency images in packages build jobs --- .gitlab/ci/pipelines/debian_repository_full.yml | 8 ++++++++ .gitlab/ci/pipelines/debian_repository_partial.yml | 4 ++++ ci/bin/debian_repository.ml | 7 ++++++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.gitlab/ci/pipelines/debian_repository_full.yml b/.gitlab/ci/pipelines/debian_repository_full.yml index 8737dd4fb0e4..58952a32e311 100644 --- a/.gitlab/ci/pipelines/debian_repository_full.yml +++ b/.gitlab/ci/pipelines/debian_repository_full.yml @@ -42,6 +42,8 @@ oc.build-debian: stage: build tags: - $TAGS + needs: + - oc.docker-build-debian-dependencies dependencies: [] script: - export CARGO_NET_OFFLINE=false @@ -66,6 +68,8 @@ oc.build-debian-current: stage: build tags: - $TAGS + needs: + - oc.docker-build-debian-dependencies dependencies: [] script: - export CARGO_NET_OFFLINE=false @@ -133,6 +137,8 @@ oc.build-ubuntu: stage: build tags: - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies dependencies: [] script: - export CARGO_NET_OFFLINE=false @@ -157,6 +163,8 @@ oc.build-ubuntu-current: stage: build tags: - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies dependencies: [] script: - export CARGO_NET_OFFLINE=false diff --git a/.gitlab/ci/pipelines/debian_repository_partial.yml b/.gitlab/ci/pipelines/debian_repository_partial.yml index 5b53bdf48fe3..700c93e7d3c0 100644 --- a/.gitlab/ci/pipelines/debian_repository_partial.yml +++ b/.gitlab/ci/pipelines/debian_repository_partial.yml @@ -40,6 +40,8 @@ oc.build-debian: stage: build tags: - $TAGS + needs: + - oc.docker-build-debian-dependencies dependencies: [] script: - export CARGO_NET_OFFLINE=false @@ -62,6 +64,8 @@ oc.build-debian-current: stage: build tags: - $TAGS + needs: + - oc.docker-build-debian-dependencies dependencies: [] script: - export CARGO_NET_OFFLINE=false diff --git a/ci/bin/debian_repository.ml b/ci/bin/debian_repository.ml index 268b219bc800..1cac7847ff00 100644 --- a/ci/bin/debian_repository.ml +++ b/ci/bin/debian_repository.ml @@ -102,7 +102,7 @@ let jobs pipeline_type = ~matrix:(ubuntu_package_release_matrix pipeline_type) in let make_job_build_debian_packages ~__POS__ ~name ~matrix ~distribution - ~script = + ~script ~dependencies = job ~__POS__ ~name @@ -110,6 +110,7 @@ let jobs pipeline_type = ~stage:Stages.build ~variables:(variables [("DISTRIBUTION", distribution)]) ~parallel:(Matrix matrix) + ~dependencies ~tag:Dynamic ~artifacts:(artifacts ["packages/$DISTRIBUTION/$RELEASE"]) [ @@ -138,6 +139,7 @@ let jobs pipeline_type = ~__POS__ ~name:"oc.build-debian-current" ~distribution:"debian" + ~dependencies:(Dependent [Job job_docker_build_debian_dependencies]) ~script:"./scripts/ci/build-debian-packages_current.sh" ~matrix:(debian_package_release_matrix pipeline_type) in @@ -146,6 +148,7 @@ let jobs pipeline_type = ~__POS__ ~name:"oc.build-ubuntu-current" ~distribution:"ubuntu" + ~dependencies:(Dependent [Job job_docker_build_ubuntu_dependencies]) ~script:"./scripts/ci/build-debian-packages_current.sh" ~matrix:(ubuntu_package_release_matrix pipeline_type) in @@ -157,6 +160,7 @@ let jobs pipeline_type = ~__POS__ ~name:"oc.build-debian" ~distribution:"debian" + ~dependencies:(Dependent [Job job_docker_build_debian_dependencies]) ~script:"./scripts/ci/build-debian-packages.sh" ~matrix:(debian_package_release_matrix pipeline_type) in @@ -165,6 +169,7 @@ let jobs pipeline_type = ~__POS__ ~name:"oc.build-ubuntu" ~distribution:"ubuntu" + ~dependencies:(Dependent [Job job_docker_build_ubuntu_dependencies]) ~script:"./scripts/ci/build-debian-packages.sh" ~matrix:(ubuntu_package_release_matrix pipeline_type) in -- GitLab From 4382bdd95741bcbd3255db0786d6c6dc3beb5968 Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Thu, 18 Jul 2024 14:47:12 +0200 Subject: [PATCH 5/6] ci: remove legacy build jobs for current packages --- .gitlab/ci/pipelines/before_merging.yml | 48 ----------- .gitlab/ci/pipelines/non_release_tag.yml | 47 ----------- .gitlab/ci/pipelines/non_release_tag_test.yml | 47 ----------- .../ci/pipelines/octez_beta_release_tag.yml | 47 ----------- .gitlab/ci/pipelines/octez_release_tag.yml | 47 ----------- .../ci/pipelines/octez_release_tag_test.yml | 84 ------------------- .../ci/pipelines/schedule_extended_test.yml | 45 ---------- ci/bin/code_verification.ml | 15 +--- ci/bin/common.ml | 17 +--- ci/bin/release_tag.ml | 21 ----- scripts/ci/bin_packages_deb_dependencies.sh | 9 -- 11 files changed, 4 insertions(+), 423 deletions(-) delete mode 100755 scripts/ci/bin_packages_deb_dependencies.sh diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 99ae25222138..d27dd73900a7 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -3463,54 +3463,6 @@ oc.docker:arm64: IMAGE_ARCH_PREFIX: arm64_ EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables -oc.build:dpkg:amd64: - image: $DISTRIBUTION - stage: manual - tags: - - gcp - rules: - - when: manual - allow_failure: true - needs: [] - dependencies: [] - before_script: - - . ./scripts/version.sh - - ./scripts/ci/bin_packages_deb_dependencies.sh - 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 - - DISTRO=$(echo "$DISTRIBUTION" | cut -d':' -f1) - - RELEASE=$(echo "$DISTRIBUTION" | cut -d':' -f2) - - mkdir -p packages/$DISTRO/$RELEASE - - mv octez-*.* packages/$DISTRO/$RELEASE/ - variables: - TARGET: dpkg - OCTEZ_PKGMAINTAINER: nomadic-labs - BLST_PORTABLE: "yes" - ARCH: amd64 - CARGO_HOME: /root/.cargo - CARGO_NET_OFFLINE: "false" - artifacts: - name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG - expire_in: 1 day - paths: - - packages/ - when: on_success - parallel: - matrix: - - DISTRIBUTION: - - debian:bookworm - - ubuntu:focal - - ubuntu:jammy - oc.build:rpm:amd64: image: $DISTRIBUTION stage: manual diff --git a/.gitlab/ci/pipelines/non_release_tag.yml b/.gitlab/ci/pipelines/non_release_tag.yml index 1a58eca019f7..bbee84d772d8 100644 --- a/.gitlab/ci/pipelines/non_release_tag.yml +++ b/.gitlab/ci/pipelines/non_release_tag.yml @@ -153,51 +153,6 @@ oc.docker:arm64: IMAGE_ARCH_PREFIX: arm64_ EXECUTABLE_FILES: script-inputs/released-executables -oc.build:dpkg:amd64: - image: $DISTRIBUTION - stage: build - tags: - - gcp - needs: [] - dependencies: [] - before_script: - - . ./scripts/version.sh - - ./scripts/ci/bin_packages_deb_dependencies.sh - 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 - - DISTRO=$(echo "$DISTRIBUTION" | cut -d':' -f1) - - RELEASE=$(echo "$DISTRIBUTION" | cut -d':' -f2) - - mkdir -p packages/$DISTRO/$RELEASE - - mv octez-*.* packages/$DISTRO/$RELEASE/ - variables: - TARGET: dpkg - OCTEZ_PKGMAINTAINER: nomadic-labs - BLST_PORTABLE: "yes" - ARCH: amd64 - CARGO_HOME: /root/.cargo - CARGO_NET_OFFLINE: "false" - artifacts: - name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG - expire_in: 1 day - paths: - - packages/ - when: on_success - parallel: - matrix: - - DISTRIBUTION: - - debian:bookworm - - ubuntu:focal - - ubuntu:jammy - oc.build:rpm:amd64: image: $DISTRIBUTION stage: build @@ -269,12 +224,10 @@ gitlab:publish: 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: diff --git a/.gitlab/ci/pipelines/non_release_tag_test.yml b/.gitlab/ci/pipelines/non_release_tag_test.yml index ad4dfd55c328..fae00bd7aeef 100644 --- a/.gitlab/ci/pipelines/non_release_tag_test.yml +++ b/.gitlab/ci/pipelines/non_release_tag_test.yml @@ -153,51 +153,6 @@ oc.docker:arm64: IMAGE_ARCH_PREFIX: arm64_ EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables -oc.build:dpkg:amd64: - image: $DISTRIBUTION - stage: build - tags: - - gcp - needs: [] - dependencies: [] - before_script: - - . ./scripts/version.sh - - ./scripts/ci/bin_packages_deb_dependencies.sh - 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 - - DISTRO=$(echo "$DISTRIBUTION" | cut -d':' -f1) - - RELEASE=$(echo "$DISTRIBUTION" | cut -d':' -f2) - - mkdir -p packages/$DISTRO/$RELEASE - - mv octez-*.* packages/$DISTRO/$RELEASE/ - variables: - TARGET: dpkg - OCTEZ_PKGMAINTAINER: nomadic-labs - BLST_PORTABLE: "yes" - ARCH: amd64 - CARGO_HOME: /root/.cargo - CARGO_NET_OFFLINE: "false" - artifacts: - name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG - expire_in: 1 day - paths: - - packages/ - when: on_success - parallel: - matrix: - - DISTRIBUTION: - - debian:bookworm - - ubuntu:focal - - ubuntu:jammy - oc.build:rpm:amd64: image: $DISTRIBUTION stage: build @@ -269,12 +224,10 @@ gitlab:publish: 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: diff --git a/.gitlab/ci/pipelines/octez_beta_release_tag.yml b/.gitlab/ci/pipelines/octez_beta_release_tag.yml index 58d8cec34806..5d4d58a129d3 100644 --- a/.gitlab/ci/pipelines/octez_beta_release_tag.yml +++ b/.gitlab/ci/pipelines/octez_beta_release_tag.yml @@ -153,51 +153,6 @@ oc.docker:arm64: IMAGE_ARCH_PREFIX: arm64_ EXECUTABLE_FILES: script-inputs/released-executables -oc.build:dpkg:amd64: - image: $DISTRIBUTION - stage: build - tags: - - gcp - needs: [] - dependencies: [] - before_script: - - . ./scripts/version.sh - - ./scripts/ci/bin_packages_deb_dependencies.sh - 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 - - DISTRO=$(echo "$DISTRIBUTION" | cut -d':' -f1) - - RELEASE=$(echo "$DISTRIBUTION" | cut -d':' -f2) - - mkdir -p packages/$DISTRO/$RELEASE - - mv octez-*.* packages/$DISTRO/$RELEASE/ - variables: - TARGET: dpkg - OCTEZ_PKGMAINTAINER: nomadic-labs - BLST_PORTABLE: "yes" - ARCH: amd64 - CARGO_HOME: /root/.cargo - CARGO_NET_OFFLINE: "false" - artifacts: - name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG - expire_in: 1 day - paths: - - packages/ - when: on_success - parallel: - matrix: - - DISTRIBUTION: - - debian:bookworm - - ubuntu:focal - - ubuntu:jammy - oc.build:rpm:amd64: image: $DISTRIBUTION stage: build @@ -269,12 +224,10 @@ gitlab:release: 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: diff --git a/.gitlab/ci/pipelines/octez_release_tag.yml b/.gitlab/ci/pipelines/octez_release_tag.yml index 9a4efc3fcb5f..3cad90644484 100644 --- a/.gitlab/ci/pipelines/octez_release_tag.yml +++ b/.gitlab/ci/pipelines/octez_release_tag.yml @@ -154,51 +154,6 @@ oc.docker:arm64: IMAGE_ARCH_PREFIX: arm64_ EXECUTABLE_FILES: script-inputs/released-executables -oc.build:dpkg:amd64: - image: $DISTRIBUTION - stage: build - tags: - - gcp - needs: [] - dependencies: [] - before_script: - - . ./scripts/version.sh - - ./scripts/ci/bin_packages_deb_dependencies.sh - 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 - - DISTRO=$(echo "$DISTRIBUTION" | cut -d':' -f1) - - RELEASE=$(echo "$DISTRIBUTION" | cut -d':' -f2) - - mkdir -p packages/$DISTRO/$RELEASE - - mv octez-*.* packages/$DISTRO/$RELEASE/ - variables: - TARGET: dpkg - OCTEZ_PKGMAINTAINER: nomadic-labs - BLST_PORTABLE: "yes" - ARCH: amd64 - CARGO_HOME: /root/.cargo - CARGO_NET_OFFLINE: "false" - artifacts: - name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG - expire_in: 1 day - paths: - - packages/ - when: on_success - parallel: - matrix: - - DISTRIBUTION: - - debian:bookworm - - ubuntu:focal - - ubuntu:jammy - oc.build:rpm:amd64: image: $DISTRIBUTION stage: build @@ -270,12 +225,10 @@ gitlab:release: 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: diff --git a/.gitlab/ci/pipelines/octez_release_tag_test.yml b/.gitlab/ci/pipelines/octez_release_tag_test.yml index 26254bb74d71..e4719decfb60 100644 --- a/.gitlab/ci/pipelines/octez_release_tag_test.yml +++ b/.gitlab/ci/pipelines/octez_release_tag_test.yml @@ -4,7 +4,6 @@ stages: - images - build -- publishing - prepare_release - publish_release_gitlab - publish_release @@ -155,51 +154,6 @@ oc.docker:arm64: IMAGE_ARCH_PREFIX: arm64_ EXECUTABLE_FILES: script-inputs/released-executables script-inputs/experimental-executables -oc.build:dpkg:amd64: - image: $DISTRIBUTION - stage: build - tags: - - gcp - needs: [] - dependencies: [] - before_script: - - . ./scripts/version.sh - - ./scripts/ci/bin_packages_deb_dependencies.sh - 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 - - DISTRO=$(echo "$DISTRIBUTION" | cut -d':' -f1) - - RELEASE=$(echo "$DISTRIBUTION" | cut -d':' -f2) - - mkdir -p packages/$DISTRO/$RELEASE - - mv octez-*.* packages/$DISTRO/$RELEASE/ - variables: - TARGET: dpkg - OCTEZ_PKGMAINTAINER: nomadic-labs - BLST_PORTABLE: "yes" - ARCH: amd64 - CARGO_HOME: /root/.cargo - CARGO_NET_OFFLINE: "false" - artifacts: - name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG - expire_in: 1 day - paths: - - packages/ - when: on_success - parallel: - matrix: - - DISTRIBUTION: - - debian:bookworm - - ubuntu:focal - - ubuntu:jammy - oc.build:rpm:amd64: image: $DISTRIBUTION stage: build @@ -271,54 +225,16 @@ gitlab:release: 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/restrict_export_to_octez_source.sh - ./scripts/ci/gitlab-release.sh -apt_repo_debian: - image: debian:bookworm - stage: publishing - tags: - - gcp - needs: - - oc.build:dpkg:amd64 - dependencies: - - oc.build:dpkg:amd64 - before_script: - - . ./scripts/version.sh - - ./scripts/ci/prepare-apt-repo.sh - script: - - ./scripts/ci/create_debian_repo.sh debian bookworm - variables: - ARCHITECTURES: amd64 - GNUPGHOME: $CI_PROJECT_DIR/.gnupg - -apt_repo_ubuntu: - image: public.ecr.aws/lts/ubuntu:20.04_stable - stage: publishing - tags: - - gcp - needs: - - oc.build:dpkg:amd64 - dependencies: - - oc.build:dpkg:amd64 - before_script: - - . ./scripts/version.sh - - ./scripts/ci/prepare-apt-repo.sh - script: - - ./scripts/ci/create_debian_repo.sh ubuntu focal jammy - variables: - ARCHITECTURES: amd64 - GNUPGHOME: $CI_PROJECT_DIR/.gnupg - docker:promote_to_latest: image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 stage: publish_release diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index efaab746757b..42198a17461b 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -495,51 +495,6 @@ build_octez_source: CARGO_NET_OFFLINE: "false" SCCACHE_DIR: $CI_PROJECT_DIR/_sccache -oc.build:dpkg:amd64: - image: $DISTRIBUTION - stage: build - tags: - - gcp - needs: [] - dependencies: [] - before_script: - - . ./scripts/version.sh - - ./scripts/ci/bin_packages_deb_dependencies.sh - 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 - - DISTRO=$(echo "$DISTRIBUTION" | cut -d':' -f1) - - RELEASE=$(echo "$DISTRIBUTION" | cut -d':' -f2) - - mkdir -p packages/$DISTRO/$RELEASE - - mv octez-*.* packages/$DISTRO/$RELEASE/ - variables: - TARGET: dpkg - OCTEZ_PKGMAINTAINER: nomadic-labs - BLST_PORTABLE: "yes" - ARCH: amd64 - CARGO_HOME: /root/.cargo - CARGO_NET_OFFLINE: "false" - artifacts: - name: ${TARGET}-$ARCH-$CI_COMMIT_REF_SLUG - expire_in: 1 day - paths: - - packages/ - when: on_success - parallel: - matrix: - - DISTRIBUTION: - - debian:bookworm - - ubuntu:focal - - ubuntu:jammy - oc.build:rpm:amd64: image: $DISTRIBUTION stage: build diff --git a/ci/bin/code_verification.ml b/ci/bin/code_verification.ml index b105359a3992..de63a3a217b5 100644 --- a/ci/bin/code_verification.ml +++ b/ci/bin/code_verification.ml @@ -659,9 +659,8 @@ let jobs pipeline_type = let bin_packages_jobs = match pipeline_type with | Schedule_extended_test -> - let job_build_dpkg_amd64 = job_build_dpkg_amd64 () in let job_build_rpm_amd64 = job_build_rpm_amd64 () in - [job_build_dpkg_amd64; job_build_rpm_amd64] + [job_build_rpm_amd64] | Before_merging -> [] in let job_ocaml_check : tezos_job = @@ -1878,17 +1877,6 @@ let jobs pipeline_type = ~rules:(make_rules ~manual:Yes ()) Test_manual in - let job_build_dpkg_amd64_manual = - job_build_bin_package - ~__POS__ - ~name:"oc.build:dpkg:amd64" - ~target:Dpkg - ~arch:Tezos_ci.Amd64 - ~rules:(make_rules ~manual:Yes ()) - ~dependencies:(Dependent []) - ~stage:Stages.manual - () - in let job_build_rpm_amd64_manual = job_build_bin_package ~__POS__ @@ -1912,7 +1900,6 @@ let jobs pipeline_type = [ job_docker_amd64_test_manual; job_docker_arm64_test_manual; - job_build_dpkg_amd64_manual; job_build_rpm_amd64_manual; job_build_homebrew_manual; job_debian_repository_trigger; diff --git a/ci/bin/common.ml b/ci/bin/common.ml index 6cf273605bf3..5c9faae10ee0 100644 --- a/ci/bin/common.ml +++ b/ci/bin/common.ml @@ -860,20 +860,18 @@ let job_docker_promote_to_latest ?dependencies ~ci_docker_hub () : tezos_job = ~ci_docker_hub ["./scripts/ci/docker_promote_to_latest.sh"] -type bin_package_target = Dpkg | Rpm +type bin_package_target = Rpm let bin_package_image = Image.mk_external ~image_path:"$DISTRIBUTION" let job_build_bin_package ?dependencies ?rules ~__POS__ ~name ?(stage = Stages.build) ~arch ~target () : tezos_job = let arch_string = arch_to_string_alt arch in - let target_string = match target with Dpkg -> "dpkg" | Rpm -> "rpm" in + let target_string = match target with Rpm -> "rpm" in let image = bin_package_image in let parallel = let distributions = - match target with - | Dpkg -> ["debian:bookworm"; "ubuntu:focal"; "ubuntu:jammy"] - | Rpm -> ["fedora:39"; "rockylinux:9.3"] + match target with Rpm -> ["fedora:39"; "rockylinux:9.3"] in Matrix [[("DISTRIBUTION", distributions)]] in @@ -888,7 +886,6 @@ let job_build_bin_package ?dependencies ?rules ~__POS__ ~name before_script ~source_version:true (match target with - | Dpkg -> ["./scripts/ci/bin_packages_deb_dependencies.sh"] | Rpm -> ["./scripts/ci/bin_packages_rpm_dependencies.sh"]) in job @@ -928,14 +925,6 @@ let job_build_bin_package ?dependencies ?rules ~__POS__ ~name ] |> enable_networked_cargo -let job_build_dpkg_amd64 : unit -> tezos_job = - job_build_bin_package - ~__POS__ - ~name:"oc.build:dpkg:amd64" - ~target:Dpkg - ~arch:Amd64 - ~dependencies:(Dependent []) - let job_build_rpm_amd64 : unit -> tezos_job = job_build_bin_package ~__POS__ diff --git a/ci/bin/release_tag.ml b/ci/bin/release_tag.ml index 6c9e0a45944b..9bb3423f7a05 100644 --- a/ci/bin/release_tag.ml +++ b/ci/bin/release_tag.ml @@ -88,31 +88,13 @@ let octez_jobs ?(test = false) release_tag_pipeline_type = ~name:"gitlab:publish" ["${CI_PROJECT_DIR}/scripts/ci/create_gitlab_package.sh"] in - let job_build_dpkg_amd64 = job_build_dpkg_amd64 () in let job_build_rpm_amd64 = job_build_rpm_amd64 () in - let job_apt_repo_ubuntu = - Debian_repository.job_apt_repo - ~__POS__ - ~name:"apt_repo_ubuntu" - ~dependencies:(Dependent [Artifacts job_build_dpkg_amd64]) - ~image:Images.ubuntu_focal - ["./scripts/ci/create_debian_repo.sh ubuntu focal jammy"] - in - let job_apt_repo_debian = - Debian_repository.job_apt_repo - ~__POS__ - ~name:"apt_repo_debian" - ~dependencies:(Dependent [Artifacts job_build_dpkg_amd64]) - ~image:Images.debian_bookworm - ["./scripts/ci/create_debian_repo.sh debian bookworm"] - 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 @@ -140,7 +122,6 @@ let octez_jobs ?(test = false) release_tag_pipeline_type = 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; @@ -152,8 +133,6 @@ let octez_jobs ?(test = false) release_tag_pipeline_type = | false, Release_tag -> [job_opam_release] | true, Release_tag -> [ - job_apt_repo_debian; - job_apt_repo_ubuntu; (* This job normally runs in the {!Octez_latest_release} pipeline that is triggered manually after a release is made. However, to make release testing easier, we include it here directly. Thus, diff --git a/scripts/ci/bin_packages_deb_dependencies.sh b/scripts/ci/bin_packages_deb_dependencies.sh deleted file mode 100755 index 1ad51685c769..000000000000 --- a/scripts/ci/bin_packages_deb_dependencies.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -export DEBIAN_FRONTEND=noninteractive - -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 libprotobuf-dev \ - protobuf-compiler libsqlite3-dev -- GitLab From b8fe14966a39e364025be00901132380e1b17538 Mon Sep 17 00:00:00 2001 From: Pietro Abate Date: Thu, 18 Jul 2024 14:52:10 +0200 Subject: [PATCH 6/6] ci: add new release pipelines for packaging --- .gitlab/ci/pipelines/non_release_tag.yml | 195 ++++++++++++++++++ .gitlab/ci/pipelines/non_release_tag_test.yml | 195 ++++++++++++++++++ .../ci/pipelines/octez_beta_release_tag.yml | 195 ++++++++++++++++++ .gitlab/ci/pipelines/octez_release_tag.yml | 195 ++++++++++++++++++ .../ci/pipelines/octez_release_tag_test.yml | 195 ++++++++++++++++++ ci/bin/release_tag.ml | 8 + 6 files changed, 983 insertions(+) diff --git a/.gitlab/ci/pipelines/non_release_tag.yml b/.gitlab/ci/pipelines/non_release_tag.yml index bbee84d772d8..71c0cd9d9324 100644 --- a/.gitlab/ci/pipelines/non_release_tag.yml +++ b/.gitlab/ci/pipelines/non_release_tag.yml @@ -4,6 +4,7 @@ stages: - images - build +- publishing - prepare_release - publish_package_gitlab @@ -225,10 +226,204 @@ gitlab:publish: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current dependencies: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current interruptible: false script: - ${CI_PROJECT_DIR}/scripts/ci/create_gitlab_package.sh + +oc.docker-build-debian-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +apt_repo_debian_current: + image: debian:bookworm + stage: publishing + tags: + - gcp + needs: + - oc.build-debian-current + dependencies: + - oc.build-debian-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh debian bookworm + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg + +oc.docker-build-ubuntu-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +apt_repo_ubuntu_current: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: publishing + tags: + - gcp + needs: + - oc.build-ubuntu-current + dependencies: + - oc.build-ubuntu-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh ubuntu focal jammy + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg diff --git a/.gitlab/ci/pipelines/non_release_tag_test.yml b/.gitlab/ci/pipelines/non_release_tag_test.yml index fae00bd7aeef..4fd947c66806 100644 --- a/.gitlab/ci/pipelines/non_release_tag_test.yml +++ b/.gitlab/ci/pipelines/non_release_tag_test.yml @@ -4,6 +4,7 @@ stages: - images - build +- publishing - prepare_release - publish_package_gitlab @@ -225,10 +226,204 @@ gitlab:publish: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current dependencies: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current interruptible: false script: - ${CI_PROJECT_DIR}/scripts/ci/create_gitlab_package.sh + +oc.docker-build-debian-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +apt_repo_debian_current: + image: debian:bookworm + stage: publishing + tags: + - gcp + needs: + - oc.build-debian-current + dependencies: + - oc.build-debian-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh debian bookworm + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg + +oc.docker-build-ubuntu-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +apt_repo_ubuntu_current: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: publishing + tags: + - gcp + needs: + - oc.build-ubuntu-current + dependencies: + - oc.build-ubuntu-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh ubuntu focal jammy + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg diff --git a/.gitlab/ci/pipelines/octez_beta_release_tag.yml b/.gitlab/ci/pipelines/octez_beta_release_tag.yml index 5d4d58a129d3..fea52189cf34 100644 --- a/.gitlab/ci/pipelines/octez_beta_release_tag.yml +++ b/.gitlab/ci/pipelines/octez_beta_release_tag.yml @@ -4,6 +4,7 @@ stages: - images - build +- publishing - prepare_release - publish_release_gitlab @@ -225,11 +226,205 @@ gitlab:release: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current dependencies: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current interruptible: false script: - ./scripts/ci/restrict_export_to_octez_source.sh - ./scripts/ci/gitlab-release.sh + +oc.docker-build-debian-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +apt_repo_debian_current: + image: debian:bookworm + stage: publishing + tags: + - gcp + needs: + - oc.build-debian-current + dependencies: + - oc.build-debian-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh debian bookworm + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg + +oc.docker-build-ubuntu-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +apt_repo_ubuntu_current: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: publishing + tags: + - gcp + needs: + - oc.build-ubuntu-current + dependencies: + - oc.build-ubuntu-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh ubuntu focal jammy + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg diff --git a/.gitlab/ci/pipelines/octez_release_tag.yml b/.gitlab/ci/pipelines/octez_release_tag.yml index 3cad90644484..48e72b51ff49 100644 --- a/.gitlab/ci/pipelines/octez_release_tag.yml +++ b/.gitlab/ci/pipelines/octez_release_tag.yml @@ -4,6 +4,7 @@ stages: - images - build +- publishing - prepare_release - publish_release_gitlab - publish_release @@ -226,15 +227,209 @@ gitlab:release: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current dependencies: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current interruptible: false script: - ./scripts/ci/restrict_export_to_octez_source.sh - ./scripts/ci/gitlab-release.sh +oc.docker-build-debian-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +apt_repo_debian_current: + image: debian:bookworm + stage: publishing + tags: + - gcp + needs: + - oc.build-debian-current + dependencies: + - oc.build-debian-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh debian bookworm + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg + +oc.docker-build-ubuntu-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +apt_repo_ubuntu_current: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: publishing + tags: + - gcp + needs: + - oc.build-ubuntu-current + dependencies: + - oc.build-ubuntu-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh ubuntu focal jammy + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg + opam:release: image: ${ci_image_name}/test:${ci_image_tag} stage: publish_release diff --git a/.gitlab/ci/pipelines/octez_release_tag_test.yml b/.gitlab/ci/pipelines/octez_release_tag_test.yml index e4719decfb60..2e278d50fdd4 100644 --- a/.gitlab/ci/pipelines/octez_release_tag_test.yml +++ b/.gitlab/ci/pipelines/octez_release_tag_test.yml @@ -4,6 +4,7 @@ stages: - images - build +- publishing - prepare_release - publish_release_gitlab - publish_release @@ -226,15 +227,209 @@ gitlab:release: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current dependencies: - oc.build:static-x86_64-linux-binaries - oc.build:static-arm64-linux-binaries - oc.build:rpm:amd64 + - oc.build-ubuntu-current + - oc.build-debian-current interruptible: false script: - ./scripts/ci/restrict_export_to_octez_source.sh - ./scripts/ci/gitlab-release.sh +oc.docker-build-debian-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +oc.build-debian-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-debian-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: debian + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - unstable + - bookworm + TAGS: + - gcp + - gcp_arm64 + +apt_repo_debian_current: + image: debian:bookworm + stage: publishing + tags: + - gcp + needs: + - oc.build-debian-current + dependencies: + - oc.build-debian-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh debian bookworm + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg + +oc.docker-build-ubuntu-dependencies: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - $TAGS + dependencies: [] + before_script: + - ./scripts/ci/docker_initialize.sh + script: + - ./scripts/ci/build-debian-packages-dependencies.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.6 + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +oc.build-ubuntu-current: + image: $DEP_IMAGE:${CI_COMMIT_REF_SLUG} + stage: build + tags: + - $TAGS + needs: + - oc.docker-build-ubuntu-dependencies + dependencies: [] + script: + - export CARGO_NET_OFFLINE=false + - ./scripts/ci/build-debian-packages_current.sh + variables: + DEP_IMAGE: ${GCP_REGISTRY}/$CI_PROJECT_NAMESPACE/tezos/build-$DISTRIBUTION-$RELEASE + DISTRIBUTION: ubuntu + artifacts: + paths: + - packages/$DISTRIBUTION/$RELEASE + parallel: + matrix: + - RELEASE: + - focal + - jammy + TAGS: + - gcp + - gcp_arm64 + +apt_repo_ubuntu_current: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: publishing + tags: + - gcp + needs: + - oc.build-ubuntu-current + dependencies: + - oc.build-ubuntu-current + before_script: + - . ./scripts/version.sh + - ./scripts/ci/prepare-apt-repo.sh + script: + - ./scripts/ci/create_debian_repo.sh ubuntu focal jammy + variables: + ARCHITECTURES: amd64 + GNUPGHOME: $CI_PROJECT_DIR/.gnupg + docker:promote_to_latest: image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 stage: publish_release diff --git a/ci/bin/release_tag.ml b/ci/bin/release_tag.ml index 9bb3423f7a05..f19e1a2dd1e2 100644 --- a/ci/bin/release_tag.ml +++ b/ci/bin/release_tag.ml @@ -89,6 +89,11 @@ let octez_jobs ?(test = false) release_tag_pipeline_type = ["${CI_PROJECT_DIR}/scripts/ci/create_gitlab_package.sh"] in let job_build_rpm_amd64 = job_build_rpm_amd64 () in + let ( jobs_debian_repository, + job_build_ubuntu_package_current, + job_build_debian_package_current ) = + Debian_repository.jobs Release + in let job_gitlab_release_or_publish = let dependencies = Dependent @@ -96,6 +101,8 @@ let octez_jobs ?(test = false) release_tag_pipeline_type = Artifacts job_static_x86_64_release; Artifacts job_static_arm64_release; Artifacts job_build_rpm_amd64; + Artifacts job_build_ubuntu_package_current; + Artifacts job_build_debian_package_current; ] in match release_tag_pipeline_type with @@ -126,6 +133,7 @@ let octez_jobs ?(test = false) release_tag_pipeline_type = job_docker_merge; job_gitlab_release_or_publish; ] + @ jobs_debian_repository @ match (test, release_tag_pipeline_type) with (* for the moment the apt repository are not official, so we do not add to the release -- GitLab