diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 340649f0e8cc8035ab64fdc83ec5f6d2a5e89c6e..346fb40de231821f8ad43ae3085c8766c78fb999 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -1214,7 +1214,7 @@ build_grafazos_dashboards: - grafazos/output/**/*.json when: on_success -build_teztale: +teztale.build:static-x86_64: image: ${ci_image_name}/build:${ci_image_tag} stage: build tags: @@ -1245,8 +1245,11 @@ build_teztale: script: - make teztale after_script: + - mkdir -p ./teztale-binaries/x86_64 + - mv octez-teztale-* ./teztale-binaries/x86_64/ - ./scripts/ci/sccache-stop.sh variables: + PROFILE: static CARGO_NET_OFFLINE: "false" SCCACHE_DIR: $CI_PROJECT_DIR/_sccache SCCACHE_CACHE_SIZE: 5G @@ -1254,7 +1257,53 @@ build_teztale: name: teztale-binaries expire_in: 1 day paths: - - octez-teztale-* + - teztale-binaries/x86_64/octez-teztale-* + when: on_success + +teztale.build:static-arm64: + image: ${ci_image_name}/build:${ci_image_tag} + stage: build + tags: + - gcp_arm64 + rules: + - changes: + - teztale/**/* + when: on_success + - when: manual + allow_failure: true + dependencies: + - oc.docker:ci:arm64 + timeout: 60 minutes + cache: + - key: cargo-$CI_JOB_NAME_SLUG + paths: + - $CI_PROJECT_DIR/.cargo/registry/cache + policy: pull-push + - key: sccache-$CI_JOB_NAME_SLUG + paths: + - $CI_PROJECT_DIR/_sccache + policy: pull-push + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + - . ./scripts/ci/sccache-start.sh + script: + - make teztale + after_script: + - mkdir -p ./teztale-binaries/arm64 + - mv octez-teztale-* ./teztale-binaries/arm64/ + - ./scripts/ci/sccache-stop.sh + variables: + PROFILE: static + CARGO_NET_OFFLINE: "false" + SCCACHE_DIR: $CI_PROJECT_DIR/_sccache + SCCACHE_CACHE_SIZE: 5G + artifacts: + name: teztale-binaries + expire_in: 1 day + paths: + - teztale-binaries/arm64/octez-teztale-* when: on_success build-layer1-profiling: diff --git a/.gitlab/ci/pipelines/merge_train.yml b/.gitlab/ci/pipelines/merge_train.yml index b3bdee4ce3130a1b706f11e7251b80ab91c3f89b..1ace66d9c3fae93619d60b49350f17a99c9213d1 100644 --- a/.gitlab/ci/pipelines/merge_train.yml +++ b/.gitlab/ci/pipelines/merge_train.yml @@ -1213,7 +1213,7 @@ build_grafazos_dashboards: - grafazos/output/**/*.json when: on_success -build_teztale: +teztale.build:static-x86_64: image: ${ci_image_name}/build:${ci_image_tag} stage: build tags: @@ -1244,8 +1244,11 @@ build_teztale: script: - make teztale after_script: + - mkdir -p ./teztale-binaries/x86_64 + - mv octez-teztale-* ./teztale-binaries/x86_64/ - ./scripts/ci/sccache-stop.sh variables: + PROFILE: static CARGO_NET_OFFLINE: "false" SCCACHE_DIR: $CI_PROJECT_DIR/_sccache SCCACHE_CACHE_SIZE: 5G @@ -1253,7 +1256,53 @@ build_teztale: name: teztale-binaries expire_in: 1 day paths: - - octez-teztale-* + - teztale-binaries/x86_64/octez-teztale-* + when: on_success + +teztale.build:static-arm64: + image: ${ci_image_name}/build:${ci_image_tag} + stage: build + tags: + - gcp_arm64 + rules: + - changes: + - teztale/**/* + when: on_success + - when: manual + allow_failure: true + dependencies: + - oc.docker:ci:arm64 + timeout: 60 minutes + cache: + - key: cargo-$CI_JOB_NAME_SLUG + paths: + - $CI_PROJECT_DIR/.cargo/registry/cache + policy: pull-push + - key: sccache-$CI_JOB_NAME_SLUG + paths: + - $CI_PROJECT_DIR/_sccache + policy: pull-push + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + - . ./scripts/ci/sccache-start.sh + script: + - make teztale + after_script: + - mkdir -p ./teztale-binaries/arm64 + - mv octez-teztale-* ./teztale-binaries/arm64/ + - ./scripts/ci/sccache-stop.sh + variables: + PROFILE: static + CARGO_NET_OFFLINE: "false" + SCCACHE_DIR: $CI_PROJECT_DIR/_sccache + SCCACHE_CACHE_SIZE: 5G + artifacts: + name: teztale-binaries + expire_in: 1 day + paths: + - teztale-binaries/arm64/octez-teztale-* when: on_success build-layer1-profiling: diff --git a/.gitlab/ci/pipelines/octez_monitoring.yml b/.gitlab/ci/pipelines/octez_monitoring.yml index b2b34c385b2575128310773a6718639fa7176a4d..38bfab2a751dae35922591fa1f470af8064c10ca 100644 --- a/.gitlab/ci/pipelines/octez_monitoring.yml +++ b/.gitlab/ci/pipelines/octez_monitoring.yml @@ -54,6 +54,30 @@ oc.docker:jsonnet:amd64: reports: dotenv: jsonnet_image_tag.env +oc.docker:ci:arm64: + image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.12.0 + stage: images + tags: + - gcp_arm64 + dependencies: [] + timeout: 90 minutes + before_script: [] + script: + - ./images/ci_create_ci_images.sh + services: + - docker:${DOCKER_VERSION}-dind + variables: + DOCKER_VERSION: 24.0.7 + CI_DOCKER_HUB: "false" + ARCH: arm64 + artifacts: + reports: + dotenv: ci_image_tag.env + retry: + max: 1 + when: + - runner_system_failure + datadog_pipeline_trace: image: datadog/ci:v2.44.0 stage: start @@ -128,7 +152,33 @@ build-layer1-profiling: paths: - ./octez-binaries/x86_64/octez-node -build_teztale: +teztale.build:static-arm64: + image: ${ci_image_name}/build:${ci_image_tag} + stage: build + tags: + - gcp_arm64 + dependencies: + - oc.docker:ci:arm64 + timeout: 60 minutes + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - make teztale + after_script: + - mkdir -p ./teztale-binaries/arm64 + - mv octez-teztale-* ./teztale-binaries/arm64/ + variables: + PROFILE: static + artifacts: + name: teztale-binaries + expire_in: never + paths: + - teztale-binaries/arm64/octez-teztale-* + when: on_success + +teztale.build:static-x86_64: image: ${ci_image_name}/build:${ci_image_tag} stage: build tags: @@ -142,9 +192,14 @@ build_teztale: - eval $(opam env) script: - make teztale + after_script: + - mkdir -p ./teztale-binaries/x86_64 + - mv octez-teztale-* ./teztale-binaries/x86_64/ + variables: + PROFILE: static artifacts: name: teztale-binaries expire_in: never paths: - - octez-teztale-* + - teztale-binaries/x86_64/octez-teztale-* when: on_success diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index 5e963b06c1ab2e7b6146085ab3ae337d0d8ac1c6..15cd6d74f36daea10f573f8129cfcd124c51bfde 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -822,7 +822,7 @@ build_grafazos_dashboards: - grafazos/output/**/*.json when: on_success -build_teztale: +teztale.build:static-x86_64: image: ${ci_image_name}/build:${ci_image_tag} stage: build tags: @@ -850,8 +850,11 @@ build_teztale: script: - make teztale after_script: + - mkdir -p ./teztale-binaries/x86_64 + - mv octez-teztale-* ./teztale-binaries/x86_64/ - ./scripts/ci/sccache-stop.sh variables: + PROFILE: static CARGO_NET_OFFLINE: "false" SCCACHE_DIR: $CI_PROJECT_DIR/_sccache SCCACHE_CACHE_SIZE: 5G @@ -859,7 +862,50 @@ build_teztale: name: teztale-binaries expire_in: 1 day paths: - - octez-teztale-* + - teztale-binaries/x86_64/octez-teztale-* + when: on_success + +teztale.build:static-arm64: + image: ${ci_image_name}/build:${ci_image_tag} + stage: build + tags: + - gcp_arm64 + rules: + - when: always + dependencies: + - oc.docker:ci:arm64 + timeout: 60 minutes + cache: + - key: cargo-$CI_JOB_NAME_SLUG + paths: + - $CI_PROJECT_DIR/.cargo/registry/cache + policy: pull-push + - key: sccache-$CI_JOB_NAME_SLUG + paths: + - $CI_PROJECT_DIR/_sccache + policy: pull-push + interruptible: false + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + - . ./scripts/ci/sccache-start.sh + script: + - make teztale + after_script: + - mkdir -p ./teztale-binaries/arm64 + - mv octez-teztale-* ./teztale-binaries/arm64/ + - ./scripts/ci/sccache-stop.sh + variables: + PROFILE: static + CARGO_NET_OFFLINE: "false" + SCCACHE_DIR: $CI_PROJECT_DIR/_sccache + SCCACHE_CACHE_SIZE: 5G + artifacts: + name: teztale-binaries + expire_in: 1 day + paths: + - teztale-binaries/arm64/octez-teztale-* when: on_success build-layer1-profiling: diff --git a/ci/bin/code_verification.ml b/ci/bin/code_verification.ml index 3eb47b220cf40c72ffb0d947b963714a58889b11..99cb0573f8fbbc51b7f4d10ee51727125ef06676 100644 --- a/ci/bin/code_verification.ml +++ b/ci/bin/code_verification.ml @@ -758,8 +758,9 @@ let jobs pipeline_type = | Schedule_extended_test -> Grafazos_ci.job_build_grafazos ~rules:[job_rule ~when_:Always ()] () in - let job_build_teztale = + let job_build_teztale ~arch = Teztale.job_build + ~arch ~rules:(make_rules ~manual:Yes ~changes:Teztale.changeset ()) () |> enable_cargo_cache |> enable_sccache @@ -777,7 +778,8 @@ let jobs pipeline_type = job_tezt_fetch_records; build_octez_source; job_build_grafazos; - job_build_teztale; + job_build_teztale ~arch:Amd64; + job_build_teztale ~arch:Arm64; job_build_layer1_profiling (); ] @ Option.to_list job_select_tezts diff --git a/ci/bin/release_tag.ml b/ci/bin/release_tag.ml index b93cd9d5f25e8c7df76f922895f83314ed3f39d1..d30c3753759df57bcd448c333a37f1390604548c 100644 --- a/ci/bin/release_tag.ml +++ b/ci/bin/release_tag.ml @@ -52,7 +52,8 @@ let monitoring_child_pipeline = job_datadog_pipeline_trace; Grafazos_ci.job_build_grafazos (); job_build_layer1_profiling ~expire_in:Never (); - Teztale.job_build ~expire_in:Never (); + Teztale.job_build ~expire_in:Never ~arch:Arm64 (); + Teztale.job_build ~expire_in:Never ~arch:Amd64 (); ] (** Create an Octez release tag pipeline of type {!release_tag_pipeline_type}. diff --git a/teztale/ci/teztale.ml b/teztale/ci/teztale.ml index 311d6e76f5ff2b74fbe4731e40438571f20f5604..d11b11f8011c586d77dc6650f7087bb90a3e1ee3 100644 --- a/teztale/ci/teztale.ml +++ b/teztale/ci/teztale.ml @@ -13,23 +13,32 @@ module String_set = Set.Make (String) let changeset = Changeset.(make ["teztale/**/*"]) (** Job that builds the Teztale executables *) -let job_build ?rules ?(expire_in = Gitlab_ci.Types.(Duration (Days 1))) () = +let job_build ?rules ?(expire_in = Gitlab_ci.Types.(Duration (Days 1))) ~arch () + = + let arch_string = arch_to_string arch in job ~__POS__ - ~name:"build_teztale" + ~arch + ~name:("teztale.build:static-" ^ arch_string) ~image:Images.CI.build ~stage:Stages.build ?rules + ~variables:[("PROFILE", "static")] ~artifacts: (artifacts ~name:"teztale-binaries" ~expire_in ~when_:On_success - ["octez-teztale-*"]) + ["teztale-binaries/" ^ arch_string ^ "/octez-teztale-*"]) ~before_script: [ "./scripts/ci/take_ownership.sh"; ". ./scripts/version.sh"; "eval $(opam env)"; ] + ~after_script: + [ + "mkdir -p ./teztale-binaries/" ^ arch_string; + "mv octez-teztale-* ./teztale-binaries/" ^ arch_string ^ "/"; + ] ["make teztale"]