diff --git a/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-before_merging.yml b/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-before_merging.yml index 6b9a9dcca0aac03bacd754a8aeda1921cd2dc7ea..b9df6eef26d425a401fa386a47d5267739b9bd47 100644 --- a/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-before_merging.yml +++ b/.gitlab/ci/jobs/build/oc.build:static-x86_64-linux-binaries-before_merging.yml @@ -17,8 +17,7 @@ oc.build:static-x86_64-linux-binaries: - tzt_reference_test_suite/**/* when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - ./scripts/ci/take_ownership.sh diff --git a/.gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra-before_merging.yml b/.gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra-before_merging.yml index 6d416deebae47cf3f94d7b1e291198f62b1d0b5b..2da0627a4e7cf2a80731c9895a10dab9c8145ff5 100644 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra-before_merging.yml +++ b/.gitlab/ci/jobs/build/oc.build_x86_64-exp-dev-extra-before_merging.yml @@ -17,8 +17,7 @@ oc.build_x86_64-exp-dev-extra: - tzt_reference_test_suite/**/* when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - ./scripts/ci/take_ownership.sh diff --git a/.gitlab/ci/jobs/build/oc.build_x86_64-released-before_merging.yml b/.gitlab/ci/jobs/build/oc.build_x86_64-released-before_merging.yml index c4cbfb5ec6a819fdb17ac79321e7a3abae9d962f..58c4beeaf7e2b14a85a341d9b498825336169e2b 100644 --- a/.gitlab/ci/jobs/build/oc.build_x86_64-released-before_merging.yml +++ b/.gitlab/ci/jobs/build/oc.build_x86_64-released-before_merging.yml @@ -17,8 +17,7 @@ oc.build_x86_64-released: - tzt_reference_test_suite/**/* when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - ./scripts/ci/take_ownership.sh diff --git a/.gitlab/ci/jobs/build/oc.docker:rust-toolchain-before_merging.yml b/.gitlab/ci/jobs/build/oc.docker:rust-toolchain-before_merging.yml index 3576b95d37562cb22dd569da2c1894d7b64e0974..46b87cb64f7a7fc0fa645e6d3405d5b78eb389e4 100644 --- a/.gitlab/ci/jobs/build/oc.docker:rust-toolchain-before_merging.yml +++ b/.gitlab/ci/jobs/build/oc.docker:rust-toolchain-before_merging.yml @@ -23,8 +23,7 @@ oc.docker:rust-toolchain: - when: manual allow_failure: true needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: [] script: diff --git a/.gitlab/ci/jobs/build/ocaml-check-before_merging.yml b/.gitlab/ci/jobs/build/ocaml-check-before_merging.yml index 59994e8289f3a763b97fd6713b9fb30add9e6ffa..fcd32e69268432ef3a2aaf6c47d1efa696e5e41f 100644 --- a/.gitlab/ci/jobs/build/ocaml-check-before_merging.yml +++ b/.gitlab/ci/jobs/build/ocaml-check-before_merging.yml @@ -15,8 +15,7 @@ ocaml-check: - devtools/**/* when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - ./scripts/ci/take_ownership.sh diff --git a/.gitlab/ci/jobs/packaging/opam:prepare.yml b/.gitlab/ci/jobs/packaging/opam:prepare-before_merging.yml similarity index 97% rename from .gitlab/ci/jobs/packaging/opam:prepare.yml rename to .gitlab/ci/jobs/packaging/opam:prepare-before_merging.yml index 2711564ee7ace2c8a5c18084c31cccad9283d396..0d431c5b3f868710455f112d7ceb7dbc3236a061 100644 --- a/.gitlab/ci/jobs/packaging/opam:prepare.yml +++ b/.gitlab/ci/jobs/packaging/opam:prepare-before_merging.yml @@ -31,8 +31,7 @@ opam:prepare: start_in: 1 minute - when: never needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - eval $(opam env) diff --git a/.gitlab/ci/jobs/packaging/opam:prepare-scheduled_extended_test.yml b/.gitlab/ci/jobs/packaging/opam:prepare-scheduled_extended_test.yml new file mode 100644 index 0000000000000000000000000000000000000000..d90aeef1571874d025e8ba1cff3ae6e46ef50a83 --- /dev/null +++ b/.gitlab/ci/jobs/packaging/opam:prepare-scheduled_extended_test.yml @@ -0,0 +1,43 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +opam:prepare: + image: ${build_deps_image_name}:runtime-prebuild-dependencies--${build_deps_image_version} + stage: packaging + tags: + - gcp + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" + when: delayed + start_in: 1 minute + - if: $CI_MERGE_REQUEST_LABELS =~ /(?:^|,)ci--opam(?:$|,)/ + when: delayed + start_in: 1 minute + - changes: + - '**/dune' + - '**/dune.inc' + - '**/*.dune.inc' + - '**/dune-project' + - '**/dune-workspace' + - '**/*.opam' + - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam_package.yml + - manifest/manifest.ml + - manifest/main.ml + - scripts/opam-prepare-repo.sh + - scripts/version.sh + if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: delayed + start_in: 1 minute + - when: never + dependencies: [] + before_script: + - eval $(opam env) + script: + - git init _opam-repo-for-release + - ./scripts/opam-prepare-repo.sh dev ./ ./_opam-repo-for-release + - git -C _opam-repo-for-release add packages + - git -C _opam-repo-for-release commit -m "tezos packages" + artifacts: + paths: + - _opam-repo-for-release/ diff --git a/.gitlab/ci/jobs/shared/images.yml b/.gitlab/ci/jobs/shared/images.yml index 3c9fde318195a99a0519e3532a31d4980f5acebd..43cdde0eb3b7eb794cf3c5c0cdbbd37b5bba1f4b 100644 --- a/.gitlab/ci/jobs/shared/images.yml +++ b/.gitlab/ci/jobs/shared/images.yml @@ -11,10 +11,18 @@ image: debian:bookworm .image_template__docker: image: ${GCP_REGISTRY}/tezos/docker-images/ci-docker:v1.10.0 +.image_template__fedora_37: + image: fedora:37 .image_template__fedora_39: image: fedora:39 .image_template__hadolint: image: hadolint/hadolint:2.9.3-debian +.image_template__opam_debian_bullseye: + image: ocaml/opam:debian-11 +.image_template__opam_ubuntu_focal: + image: ocaml/opam:ubuntu-20.04 +.image_template__opam_ubuntu_mantic: + image: ocaml/opam:ubuntu-23.10 .image_template__runtime_build_dependencies: image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} .image_template__runtime_build_test_dependencies: @@ -27,3 +35,7 @@ image: ${rust_toolchain_image_name}:${rust_toolchain_image_tag} .image_template__semgrep_agent: image: returntocorp/semgrep-agent:sha-c6cd7cf +.image_template__ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable +.image_template__ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable diff --git a/.gitlab/ci/jobs/test/commit_titles.yml b/.gitlab/ci/jobs/test/commit_titles.yml index e2d913711e63ec58247c496119069016a897c7b3..1034fc1273de4dfd1ce47a3157cae965766e336e 100644 --- a/.gitlab/ci/jobs/test/commit_titles.yml +++ b/.gitlab/ci/jobs/test/commit_titles.yml @@ -7,8 +7,7 @@ commit_titles: tags: - gcp needs: - - job: trigger - optional: true + - trigger dependencies: [] allow_failure: exit_codes: 65 diff --git a/.gitlab/ci/jobs/test/install_octez-before_merging.yml b/.gitlab/ci/jobs/test/install_octez-before_merging.yml new file mode 100644 index 0000000000000000000000000000000000000000..0ae2d2999fc94df025dc91534f73ef0d66d5aeb4 --- /dev/null +++ b/.gitlab/ci/jobs/test/install_octez-before_merging.yml @@ -0,0 +1,187 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.install_bin_fedora_37: + image: fedora:37 + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-fedora.sh + +oc.install_bin_rc_fedora_37: + image: fedora:37 + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/install-bin-fedora.sh rc + +oc.install_bin_ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-bin-ubuntu.sh + +oc.install_bin_ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-bin-ubuntu.sh + +oc.install_bin_rc_ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-bin-ubuntu.sh rc + +oc.install_bin_rc_ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-bin-ubuntu.sh rc + +oc.install_opam_focal: + image: ocaml/opam:ubuntu-20.04 + stage: test + tags: + - gcp + rules: + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-opam.sh + variables: + OPAMJOBS: "4" + +oc.compile_release_sources_bullseye: + image: ocaml/opam:debian-11 + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh tezos/tezos latest-release + +oc.compile_sources_bullseye: + image: ocaml/opam:debian-11 + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} + +oc.compile_sources_mantic: + image: ocaml/opam:ubuntu-23.10 + stage: test + tags: + - gcp + rules: + - changes: + - docs/introduction/install*.sh + - docs/introduction/compile*.sh + when: on_success + - when: manual + allow_failure: true + needs: + - trigger + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} diff --git a/.gitlab/ci/jobs/test/install_octez-scheduled_extended_test.yml b/.gitlab/ci/jobs/test/install_octez-scheduled_extended_test.yml new file mode 100644 index 0000000000000000000000000000000000000000..c2ee6c4a06c8446007402feba7bdbdc7aa34b01b --- /dev/null +++ b/.gitlab/ci/jobs/test/install_octez-scheduled_extended_test.yml @@ -0,0 +1,121 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.install_bin_fedora_37: + image: fedora:37 + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + script: + - ./docs/introduction/install-bin-fedora.sh + +oc.install_bin_rc_fedora_37: + image: fedora:37 + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + script: + - ./docs/introduction/install-bin-fedora.sh rc + +oc.install_bin_ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-bin-ubuntu.sh + +oc.install_bin_ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-bin-ubuntu.sh + +oc.install_bin_rc_ubuntu_focal: + image: public.ecr.aws/lts/ubuntu:20.04_stable + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-bin-ubuntu.sh rc + +oc.install_bin_rc_ubuntu_jammy: + image: public.ecr.aws/lts/ubuntu:22.04_stable + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-bin-ubuntu.sh rc + +oc.install_opam_focal: + image: ocaml/opam:ubuntu-20.04 + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + allow_failure: true + script: + - ./docs/introduction/install-opam.sh + variables: + OPAMJOBS: "4" + +oc.compile_release_sources_bullseye: + image: ocaml/opam:debian-11 + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh tezos/tezos latest-release + +oc.compile_sources_bullseye: + image: ocaml/opam:debian-11 + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} + +oc.compile_sources_mantic: + image: ocaml/opam:ubuntu-23.10 + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + script: + - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} + ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} diff --git a/.gitlab/ci/jobs/test/install_octez.yml b/.gitlab/ci/jobs/test/install_octez.yml deleted file mode 100644 index b9564a242e278e0791687855c6428486f02fa2e2..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/install_octez.yml +++ /dev/null @@ -1,123 +0,0 @@ -.oc.base-test-install-scripts-template: - stage: test - extends: - - .needs__trigger - rules: - - if: '$CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS"' - when: always - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - docs/introduction/install*.sh - - docs/introduction/compile*.sh - when: on_success - # Run when there is label on the merge request - - when: manual - allow_failure: true - -.oc.install_bin_ubuntu_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - script: - - ./docs/introduction/install-bin-ubuntu.sh - # These jobs currently fail because the last rc packages can't be installed anymore. - # See https://gitlab.com/tezos/tezos/-/issues/6902. - # TODO: https://gitlab.com/tezos/tezos/-/issues/6915 - # This should be removed after the next release candidate. - allow_failure: true - -oc.install_bin_ubuntu_focal: - image: public.ecr.aws/lts/ubuntu:20.04_stable - extends: .oc.install_bin_ubuntu_template - -oc.install_bin_ubuntu_jammy: - image: public.ecr.aws/lts/ubuntu:22.04_stable - extends: .oc.install_bin_ubuntu_template - -.oc.install_bin_rc_ubuntu_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - script: - - ./docs/introduction/install-bin-ubuntu.sh rc - # These jobs currently fail because the last rc packages can't be installed anymore. - # See https://gitlab.com/tezos/tezos/-/issues/6902. - # TODO: https://gitlab.com/tezos/tezos/-/issues/6915 - # This should be removed after the next release candidate. - allow_failure: true - -oc.install_bin_rc_ubuntu_focal: - image: public.ecr.aws/lts/ubuntu:20.04_stable - extends: .oc.install_bin_rc_ubuntu_template - -oc.install_bin_rc_ubuntu_jammy: - image: public.ecr.aws/lts/ubuntu:22.04_stable - extends: .oc.install_bin_rc_ubuntu_template - -.oc.install_bin_fedora_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - script: - - ./docs/introduction/install-bin-fedora.sh - -oc.install_bin_fedora_37: - image: fedora:37 - extends: .oc.install_bin_fedora_template - -.oc.install_bin_rc_fedora_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - script: - - ./docs/introduction/install-bin-fedora.sh rc - -oc.install_bin_rc_fedora_37: - image: fedora:37 - extends: .oc.install_bin_rc_fedora_template - -.oc.install_opam_ubuntu_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - variables: - # The default behavior of opam is to use `nproc` to determine its level of - # parallelism. This returns the number of CPU of the "host" CI runner - # instead of the number of cores a single CI job can reasonably use. - OPAMJOBS: "4" - script: - - ./docs/introduction/install-opam.sh - rules: - - if: $CI_PIPELINE_SOURCE == "schedule" && $TZ_SCHEDULE_KIND == "EXTENDED_TESTS" - when: always - allow_failure: true - # temporarily disable until these jobs are optimized - - when: manual - allow_failure: true - -oc.install_opam_focal: - image: ocaml/opam:ubuntu-20.04 - extends: .oc.install_opam_ubuntu_template - -.oc.compile_sources_template: - extends: - - .default_settings_template - - .oc.base-test-install-scripts-template - -oc.compile_release_sources_bullseye: - image: ocaml/opam:debian-11 - extends: .oc.compile_sources_template - script: - - ./docs/introduction/compile-sources.sh tezos/tezos latest-release - -oc.compile_sources_bullseye: - image: ocaml/opam:debian-11 - extends: .oc.compile_sources_template - script: - - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} - -oc.compile_sources_mantic: - image: ocaml/opam:ubuntu-23.10 - extends: .oc.compile_sources_template - script: - - ./docs/introduction/compile-sources.sh ${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos} ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master} diff --git a/.gitlab/ci/jobs/test/kaitai_checks-before_merging.yml b/.gitlab/ci/jobs/test/kaitai_checks-before_merging.yml index 34566285dcf0a0b8f5a7de21f9b1bf6f62c57697..75da9d25c2de94ebd19bfeae5adbd4fd5216c3e3 100644 --- a/.gitlab/ci/jobs/test/kaitai_checks-before_merging.yml +++ b/.gitlab/ci/jobs/test/kaitai_checks-before_merging.yml @@ -16,8 +16,7 @@ kaitai_checks: - .gitlab-ci.yml when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - . ./scripts/version.sh diff --git a/.gitlab/ci/jobs/test/misc_opam_checks-before_merging.yml b/.gitlab/ci/jobs/test/misc_opam_checks-before_merging.yml index 0ae8eaff2337566a091a6a937ca7d4636ff6928e..bec3bfb3da7d88f73a3424790267e0022fb0c278 100644 --- a/.gitlab/ci/jobs/test/misc_opam_checks-before_merging.yml +++ b/.gitlab/ci/jobs/test/misc_opam_checks-before_merging.yml @@ -17,8 +17,7 @@ misc_opam_checks: - tzt_reference_test_suite/**/* when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - . ./scripts/version.sh diff --git a/.gitlab/ci/jobs/test/oc.check_lift_limits_patch-before_merging.yml b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch-before_merging.yml index 98eb7dcfad50b98209ca222efa5635b4bacc9607..610cf568666bca66a7bc05506bcbf818986b6c1e 100644 --- a/.gitlab/ci/jobs/test/oc.check_lift_limits_patch-before_merging.yml +++ b/.gitlab/ci/jobs/test/oc.check_lift_limits_patch-before_merging.yml @@ -14,8 +14,7 @@ oc.check_lift_limits_patch: - .gitlab-ci.yml when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - . ./scripts/version.sh diff --git a/.gitlab/ci/jobs/test/oc.misc_checks-before_merging.yml b/.gitlab/ci/jobs/test/oc.misc_checks-before_merging.yml index 1e3bef25efbec217fdc85643e0bc183ad03e232b..51444abe06e2f241d8e4c4e8c20cc3b332476831 100644 --- a/.gitlab/ci/jobs/test/oc.misc_checks-before_merging.yml +++ b/.gitlab/ci/jobs/test/oc.misc_checks-before_merging.yml @@ -20,8 +20,7 @@ oc.misc_checks: - .gitlab/**/* when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] before_script: - ./scripts/ci/take_ownership.sh diff --git a/.gitlab/ci/jobs/test/oc.script:b58_prefix-before_merging.yml b/.gitlab/ci/jobs/test/oc.script:b58_prefix-before_merging.yml new file mode 100644 index 0000000000000000000000000000000000000000..79adc98add535fdea7e228e456faf05a890276c5 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:b58_prefix-before_merging.yml @@ -0,0 +1,25 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.script:b58_prefix: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - scripts/b58_prefix/b58_prefix.py + - scripts/b58_prefix/test_b58_prefix.py + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - . ./scripts/version.sh + - . $HOME/.venv/bin/activate + script: + - poetry run pylint scripts/b58_prefix/b58_prefix.py --disable=missing-docstring + --disable=invalid-name + - poetry run pytest scripts/b58_prefix/test_b58_prefix.py diff --git a/.gitlab/ci/jobs/test/oc.script:b58_prefix-scheduled_extended_test.yml b/.gitlab/ci/jobs/test/oc.script:b58_prefix-scheduled_extended_test.yml new file mode 100644 index 0000000000000000000000000000000000000000..643f15e8276db68d8b2ba2834b65bbc19f89d1dd --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:b58_prefix-scheduled_extended_test.yml @@ -0,0 +1,18 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.script:b58_prefix: + image: ${build_deps_image_name}:runtime-build-test-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + before_script: + - . ./scripts/version.sh + - . $HOME/.venv/bin/activate + script: + - poetry run pylint scripts/b58_prefix/b58_prefix.py --disable=missing-docstring + --disable=invalid-name + - poetry run pytest scripts/b58_prefix/test_b58_prefix.py diff --git a/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml b/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml deleted file mode 100644 index 1d3523f1f77be260de7f84c225b292c0a321c5d6..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.script:b58_prefix.yml +++ /dev/null @@ -1,24 +0,0 @@ -oc.script:b58_prefix: - # Can be changed to a python image, but using the build docker image to keep - # in sync with the python version used for the tests - extends: - - .default_settings_template - # Requires Python - - .image_template__runtime_build_test_dependencies - - .needs__trigger - rules: - - changes: - - scripts/b58_prefix/b58_prefix.py - - scripts/b58_prefix/test_b58_prefix.py - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - stage: test - before_script: - - . ./scripts/version.sh - # Load the environment poetry previously created in the docker image. - # Give access to the Python dependencies/executables - - . $HOME/.venv/bin/activate - script: - - poetry run pylint scripts/b58_prefix/b58_prefix.py --disable=missing-docstring --disable=invalid-name - - poetry run pytest scripts/b58_prefix/test_b58_prefix.py diff --git a/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link-before_merging.yml b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link-before_merging.yml new file mode 100644 index 0000000000000000000000000000000000000000..13dfb9ad0cab61733785c7c2f79c7e98db1b48f5 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link-before_merging.yml @@ -0,0 +1,30 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.script:snapshot_alpha_and_link: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/proto_alpha/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - scripts/snapshot_alpha_and_link.sh + - scripts/snapshot_alpha.sh + - scripts/user_activated_upgrade.sh + when: on_success + needs: + - job: trigger + - job: oc.build_x86_64-released + optional: true + - job: oc.build_x86_64-exp-dev-extra + optional: true + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh diff --git a/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link-scheduled_extended_test.yml b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link-scheduled_extended_test.yml new file mode 100644 index 0000000000000000000000000000000000000000..7ab5157597d641a30aaadecd213206b52937da17 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link-scheduled_extended_test.yml @@ -0,0 +1,17 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.script:snapshot_alpha_and_link: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh diff --git a/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml b/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml deleted file mode 100644 index c2f9907a1a5f5b97d2c0e10640642de5b2dfa44b..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml +++ /dev/null @@ -1,32 +0,0 @@ -# Note: this job actually probably doesn't need the oc.build_x86_64 job -# to have finished, but we don't want to start before oc.build_x86_64 has finished either. -# However, when oc.build_x86_64-* don't exist, we don't need to wait for them. -oc.script:snapshot_alpha_and_link: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - stage: test - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) - needs: - - job: trigger - optional: true - - job: "oc.build_x86_64-released" - optional: true - - job: "oc.build_x86_64-exp-dev-extra" - optional: true - script: - - ./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh - rules: - # We only need to run this if protocol Alpha or if the scripts changed. - - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - changes: - - src/proto_alpha/**/* - - .gitlab/**/* - - .gitlab-ci.yml - - scripts/snapshot_alpha_and_link.sh - - scripts/snapshot_alpha.sh - - scripts/user_activated_upgrade.sh - when: on_success diff --git a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis-before_merging.yml b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis-before_merging.yml new file mode 100644 index 0000000000000000000000000000000000000000..494766065f7bd9e28711f255def3f27e16bb15f1 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis-before_merging.yml @@ -0,0 +1,26 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.script:test-gen-genesis: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - trigger + dependencies: [] + before_script: + - eval $(opam env) + - cd scripts/gen-genesis + script: + - dune build gen_genesis.exe diff --git a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis-scheduled_extended_test.yml b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis-scheduled_extended_test.yml new file mode 100644 index 0000000000000000000000000000000000000000..f420fc2678c55a14813426264713302bae17a8f4 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis-scheduled_extended_test.yml @@ -0,0 +1,16 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.script:test-gen-genesis: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - when: always + dependencies: [] + before_script: + - eval $(opam env) + - cd scripts/gen-genesis + script: + - dune build gen_genesis.exe diff --git a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml b/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml deleted file mode 100644 index d0f126ac8cc18274ddb432fcf7ade8253e0572aa..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml +++ /dev/null @@ -1,12 +0,0 @@ -oc.script:test-gen-genesis: - extends: - - .default_settings_template - - .image_template__runtime_build_dependencies - - .rules__octez_changes - - .needs__trigger - stage: test - before_script: - - eval $(opam env) - - cd scripts/gen-genesis - script: - - dune build gen_genesis.exe diff --git a/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions-before_merging.yml b/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions-before_merging.yml new file mode 100644 index 0000000000000000000000000000000000000000..d76c03d4d61b6db3b99ecce099b591329dba2d29 --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions-before_merging.yml @@ -0,0 +1,28 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.script:test_octez_release_versions: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - etherlink/**/* + - tezt/**/* + - .gitlab/**/* + - .gitlab-ci.yml + - michelson_test_scripts/**/* + - tzt_reference_test_suite/**/* + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/test_octez_release_version.sh diff --git a/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions-scheduled_extended_test.yml b/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions-scheduled_extended_test.yml new file mode 100644 index 0000000000000000000000000000000000000000..4778be5f12451e1a1a24ff285360093afb06a52a --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions-scheduled_extended_test.yml @@ -0,0 +1,20 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.script:test_octez_release_versions: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - when: always + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: [] + before_script: + - ./scripts/ci/take_ownership.sh + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/test_octez_release_version.sh diff --git a/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions.yml b/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions.yml deleted file mode 100644 index 2314239e5c7ae6cebcf3ee80eebbc8253702230c..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.script:test_octez_release_versions.yml +++ /dev/null @@ -1,8 +0,0 @@ -oc.script:test_release_versions: - extends: .test_template - before_script: - - ./scripts/ci/take_ownership.sh - - . ./scripts/version.sh - - eval $(opam env) - script: - - ./scripts/test_octez_release_version.sh diff --git a/.gitlab/ci/jobs/test/oc.semgrep-before_merging.yml b/.gitlab/ci/jobs/test/oc.semgrep-before_merging.yml index 10121659decff87f26deb25a4433a964572c9817..7a61020a0fb8024c42cdc1c45ad5d059174321aa 100644 --- a/.gitlab/ci/jobs/test/oc.semgrep-before_merging.yml +++ b/.gitlab/ci/jobs/test/oc.semgrep-before_merging.yml @@ -16,8 +16,7 @@ oc.semgrep: - .gitlab-ci.yml when: on_success needs: - - job: trigger - optional: true + - trigger dependencies: [] script: - echo "OCaml code linting. For information on how to reproduce locally, check out diff --git a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts-before_merging.yml b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts-before_merging.yml new file mode 100644 index 0000000000000000000000000000000000000000..c3ac1da85667107112415e28ead25b5d1c9207ac --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts-before_merging.yml @@ -0,0 +1,27 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.test-liquidity-baking-scripts: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - changes: + - src/**/* + - scripts/ci/test_liquidity_baking_scripts.sh + - scripts/check-liquidity-baking-scripts.sh + - .gitlab/**/* + - .gitlab-ci.yml + when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/test_liquidity_baking_scripts.sh diff --git a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts-scheduled_extended_test.yml b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts-scheduled_extended_test.yml new file mode 100644 index 0000000000000000000000000000000000000000..b90e396e8ff1d4f1b270316b8798d8048a7be85f --- /dev/null +++ b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts-scheduled_extended_test.yml @@ -0,0 +1,21 @@ +# This file was automatically generated, do not edit. +# Edit file ci/bin/main.ml instead. + +oc.test-liquidity-baking-scripts: + image: ${build_deps_image_name}:runtime-build-dependencies--${build_deps_image_version} + stage: test + tags: + - gcp + rules: + - when: on_success + needs: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + dependencies: + - oc.build_x86_64-released + - oc.build_x86_64-exp-dev-extra + before_script: + - . ./scripts/version.sh + - eval $(opam env) + script: + - ./scripts/ci/test_liquidity_baking_scripts.sh diff --git a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml b/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml deleted file mode 100644 index 8f14b6cff3896d4b09612f105f8c7085b7504605..0000000000000000000000000000000000000000 --- a/.gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml +++ /dev/null @@ -1,17 +0,0 @@ -include: .gitlab/ci/jobs/test/common.yml - -oc.test-liquidity-baking-scripts: - extends: - - .test_template - rules: - - changes: - - src/**/* - - scripts/ci/test_liquidity_baking_scripts.sh - - scripts/check-liquidity-baking-scripts.sh - - .gitlab/**/* - - .gitlab-ci.yml - when: on_success - dependencies: - - "oc.build_x86_64-released" - - "oc.build_x86_64-exp-dev-extra" - script: ./scripts/ci/test_liquidity_baking_scripts.sh diff --git a/.gitlab/ci/pipelines/before_merging.yml b/.gitlab/ci/pipelines/before_merging.yml index 7153c0f902c7ad5cb4dfabf0f1b7d56851cc88d1..651c5a60154819c86be78b6e10fef1db524f0704 100644 --- a/.gitlab/ci/pipelines/before_merging.yml +++ b/.gitlab/ci/pipelines/before_merging.yml @@ -7,7 +7,7 @@ include: - .gitlab/ci/jobs/sanity/docker:hadolint-before_merging.yml # Stage: package - - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam:prepare-before_merging.yml - .gitlab/ci/jobs/packaging/opam_package.yml - .gitlab/ci/jobs/packaging/debian_repository.yml @@ -39,12 +39,12 @@ include: - .gitlab/ci/jobs/test/oc.semgrep-before_merging.yml - .gitlab/ci/jobs/test/oc.unit-before_merging.yml - .gitlab/ci/jobs/test/oc.integration:compiler-rejections-before_merging.yml - - .gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml - - .gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml - - .gitlab/ci/jobs/test/oc.script:test_octez_release_versions.yml - - .gitlab/ci/jobs/test/oc.script:b58_prefix.yml - - .gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml - - .gitlab/ci/jobs/test/install_octez.yml + - .gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link-before_merging.yml + - .gitlab/ci/jobs/test/oc.script:test-gen-genesis-before_merging.yml + - .gitlab/ci/jobs/test/oc.script:test_octez_release_versions-before_merging.yml + - .gitlab/ci/jobs/test/oc.script:b58_prefix-before_merging.yml + - .gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts-before_merging.yml + - .gitlab/ci/jobs/test/install_octez-before_merging.yml - .gitlab/ci/jobs/test/tezt.yml - .gitlab/ci/jobs/test/tezt-slow-before_merging.yml - .gitlab/ci/jobs/test/tezt-flaky-before_merging.yml diff --git a/.gitlab/ci/pipelines/schedule_extended_test.yml b/.gitlab/ci/pipelines/schedule_extended_test.yml index f0ce579f8c03734fa873be89414e8e4efbc5705a..d646d102053ceb6c628ae695b935b0accb8bdb3d 100644 --- a/.gitlab/ci/pipelines/schedule_extended_test.yml +++ b/.gitlab/ci/pipelines/schedule_extended_test.yml @@ -26,11 +26,11 @@ include: - .gitlab/ci/jobs/doc/documentation.yml # Stage: packaging - - .gitlab/ci/jobs/packaging/opam:prepare.yml + - .gitlab/ci/jobs/packaging/opam:prepare-scheduled_extended_test.yml - .gitlab/ci/jobs/packaging/opam_package.yml # Stage: test - - .gitlab/ci/jobs/test/install_octez.yml + - .gitlab/ci/jobs/test/install_octez-scheduled_extended_test.yml # Flaky tezts - .gitlab/ci/jobs/test/tezt-flaky-schedule_extended_test.yml # Slow tezts @@ -45,11 +45,11 @@ include: - .gitlab/ci/jobs/test/oc.semgrep-scheduled_extended_test.yml - .gitlab/ci/jobs/test/oc.unit-scheduled_extended_test.yml - .gitlab/ci/jobs/test/oc.integration:compiler-rejections-scheduled_extended_test.yml - - .gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml - - .gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml - - .gitlab/ci/jobs/test/oc.script:test_octez_release_versions.yml - - .gitlab/ci/jobs/test/oc.script:b58_prefix.yml - - .gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml + - .gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link-scheduled_extended_test.yml + - .gitlab/ci/jobs/test/oc.script:test-gen-genesis-scheduled_extended_test.yml + - .gitlab/ci/jobs/test/oc.script:test_octez_release_versions-scheduled_extended_test.yml + - .gitlab/ci/jobs/test/oc.script:b58_prefix-scheduled_extended_test.yml + - .gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts-scheduled_extended_test.yml - .gitlab/ci/jobs/test/tezt.yml - .gitlab/ci/jobs/test/test_kernels.yml - .gitlab/ci/jobs/test/test_etherlink_kernel-schedule_extended_test.yml diff --git a/ci/bin/code_verification.ml b/ci/bin/code_verification.ml index 1e885b045d6b80d273fedfd73287d64d194815d0..6463d2aad3e6e6cd0282973f7e34e52de7be676b 100644 --- a/ci/bin/code_verification.ml +++ b/ci/bin/code_verification.ml @@ -43,6 +43,10 @@ type code_verification_pipeline = Before_merging | Schedule_extended_test - automatic in scheduled pipelines; - conditional in [before_merging] pipelines. + If a job has non-optional dependencies, then [dependent] must be + set to [true] to ensure that we only run the job in case previous + jobs succeeded (setting [when: on_success]). + If [label], [changes] and [manual] are omitted, then rules will enable the job [On_success] in the [before_merging] pipeline. This is safe, but prefer specifying a [changes] clause @@ -347,6 +351,13 @@ let jobs_unit_tests ~job_build_x86_64_release ~job_build_x86_64_exp_dev_extra oc_unit_protocol_compiles; ] +type install_octez_distribution = Ubuntu_focal | Ubuntu_jammy | Fedora_37 + +let image_of_distribution = function + | Ubuntu_focal -> Images.ubuntu_focal + | Ubuntu_jammy -> Images.ubuntu_jammy + | Fedora_37 -> Images.fedora_37 + (* Encodes the conditional [before_merging] pipeline and its unconditional variant [schedule_extended_test]. *) let jobs pipeline_type = @@ -390,9 +401,13 @@ let jobs pipeline_type = in (* Stages *) (* All stages should be empty, as explained below, until the full pipeline is generated. *) - let trigger, dependencies_needs_trigger = + let trigger_stage, make_dependencies = match pipeline_type with - | Schedule_extended_test -> ([], Staged []) + | Schedule_extended_test -> + let make_dependencies ~before_merging:_ ~schedule_extended_test = + schedule_extended_test () + in + ([], make_dependencies) | Before_merging -> (* Define the [trigger] job @@ -429,8 +444,17 @@ let jobs pipeline_type = ] |> job_external in - (* TODO: the dependency on job_trigger does not have to be optional *) - ([job_trigger], Dependent [Optional job_trigger]) + let make_dependencies ~before_merging ~schedule_extended_test:_ = + before_merging job_trigger + in + ([job_trigger], make_dependencies) + in + (* Short-cut for jobs that has no dependencies except [job_trigger] + on [Before_merging] pipelines. *) + let dependencies_needs_trigger = + make_dependencies + ~before_merging:(fun job_trigger -> Dependent [Job job_trigger]) + ~schedule_extended_test:(fun () -> Staged []) in let sanity = let job_sanity_ci : tezos_job = @@ -704,7 +728,7 @@ let jobs pipeline_type = "git -C _opam-repo-for-release add packages"; "git -C _opam-repo-for-release commit -m \"tezos packages\""; ] - |> job_external_once + |> job_external_split in let (jobs_opam_packages : tezos_job list) = read_opam_packages @@ -713,7 +737,23 @@ let jobs pipeline_type = ~dependencies:(Dependent [Artifacts job_opam_prepare])) |> jobs_external_once ~path:"packaging/opam_package.yml" in - jobs_opam_packages + job_opam_prepare :: jobs_opam_packages + in + (* Dependencies for jobs that should run immediately after jobs + [job_build_x86_64] in [Before_merging] if they are present + (otherwise, they run immediately after [job_trigger]). In + [Scheduled_extended_test] we are not in a hurry and we let them + be [Staged []]. *) + let order_after_build = + make_dependencies + ~before_merging:(fun job_trigger -> + Dependent + (Job job_trigger + :: [ + Optional job_build_x86_64_release; + Optional job_build_x86_64_exp_dev_extra; + ])) + ~schedule_extended_test:(fun () -> Staged []) in let test = (* check that ksy files are still up-to-date with octez *) @@ -874,6 +914,211 @@ let jobs pipeline_type = ["dune build @runtest_rejections"] |> job_external_split in + let job_oc_script_test_gen_genesis : tezos_job = + job + ~__POS__ + ~name:"oc.script:test-gen-genesis" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~dependencies:dependencies_needs_trigger + ~rules:(make_rules ~changes:changeset_octez ()) + ~before_script: + (before_script ~eval_opam:true ["cd scripts/gen-genesis"]) + ["dune build gen_genesis.exe"] + |> job_external_split + in + let job_oc_script_snapshot_alpha_and_link : tezos_job = + job + ~__POS__ + ~name:"oc.script:snapshot_alpha_and_link" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~dependencies:order_after_build + (* Since the above dependencies are only for ordering, we do not set [dependent] *) + ~rules:(make_rules ~changes:changeset_script_snapshot_alpha_and_link ()) + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + []) + ["./.gitlab/ci/jobs/test/script:snapshot_alpha_and_link.sh"] + |> job_external_split + in + let job_oc_script_test_release_versions : tezos_job = + job + ~__POS__ + ~name:"oc.script:test_octez_release_versions" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~dependencies: + (Dependent + [Job job_build_x86_64_release; Job job_build_x86_64_exp_dev_extra]) + (* Since the above dependencies are only for ordering, we do not set [dependent] *) + ~rules:(make_rules ~changes:changeset_octez ()) + ~before_script: + (before_script + ~take_ownership:true + ~source_version:true + ~eval_opam:true + []) + ["./scripts/test_octez_release_version.sh"] + |> job_external_split + in + let job_oc_script_b58_prefix = + job + ~__POS__ + ~name:"oc.script:b58_prefix" + ~stage:Stages.test + (* Requires Python. Can be changed to a python image, but using + the build docker image to keep in sync with the python + version used for the tests *) + ~image:Images.runtime_build_test_dependencies + ~rules:(make_rules ~changes:changeset_script_b58_prefix ()) + ~dependencies:dependencies_needs_trigger + ~before_script: + (before_script ~source_version:true ~init_python_venv:true []) + [ + "poetry run pylint scripts/b58_prefix/b58_prefix.py \ + --disable=missing-docstring --disable=invalid-name"; + "poetry run pytest scripts/b58_prefix/test_b58_prefix.py"; + ] + |> job_external_split + in + let job_oc_test_liquidity_baking_scripts : tezos_job = + job + ~__POS__ + ~name:"oc.test-liquidity-baking-scripts" + ~stage:Stages.test + ~image:Images.runtime_build_dependencies + ~dependencies: + (Dependent + [ + Artifacts job_build_x86_64_release; + Artifacts job_build_x86_64_exp_dev_extra; + ]) + ~rules: + (make_rules + ~dependent:true + ~changes:changeset_test_liquidity_baking_scripts + ()) + ~before_script:(before_script ~source_version:true ~eval_opam:true []) + ["./scripts/ci/test_liquidity_baking_scripts.sh"] + |> job_external_split + in + (* The set of installation test jobs *) + let jobs_install_octez : tezos_job list = + let changeset_install_jobs = + ["docs/introduction/install*.sh"; "docs/introduction/compile*.sh"] + in + let install_octez_rules = + make_rules ~changes:changeset_install_jobs ~manual:true () + in + let job_install_bin ~__POS__ ~name ?allow_failure ?(rc = false) + distribution = + let distribution_string = + match distribution with + | Ubuntu_focal | Ubuntu_jammy -> "ubuntu" + | Fedora_37 -> "fedora" + in + let script = + sf "./docs/introduction/install-bin-%s.sh" distribution_string + ^ if rc then " rc" else "" + in + job + ?allow_failure + ~__POS__ + ~name + ~image:(image_of_distribution distribution) + ~dependencies:dependencies_needs_trigger + ~rules:install_octez_rules + ~stage:Stages.test + [script] + in + let job_install_opam_focal : tezos_job = + job + ~__POS__ + ~name:"oc.install_opam_focal" + ~image:Images.opam_ubuntu_focal + ~dependencies:dependencies_needs_trigger + ~rules:(make_rules ~manual:true ()) + ~allow_failure:Yes + ~stage:Stages.test + (* The default behavior of opam is to use `nproc` to determine its level of + parallelism. This returns the number of CPU of the "host" CI runner + instead of the number of cores a single CI job can reasonably use. *) + ~variables:[("OPAMJOBS", "4")] + ["./docs/introduction/install-opam.sh"] + in + let job_compile_sources ~__POS__ ~name ~image ~project ~branch = + job + ~__POS__ + ~name + ~image + ~dependencies:dependencies_needs_trigger + ~rules:install_octez_rules + ~stage:Stages.test + [sf "./docs/introduction/compile-sources.sh %s %s" project branch] + in + [ + (* Test installing binary / binary RC distributions in all distributions *) + job_install_bin ~__POS__ ~name:"oc.install_bin_fedora_37" Fedora_37; + job_install_bin + ~__POS__ + ~name:"oc.install_bin_rc_fedora_37" + ~rc:true + Fedora_37; + (* The Ubuntu jobs currently fail because the last rc packages can't be installed anymore. + See https://gitlab.com/tezos/tezos/-/issues/6902. + TODO: https://gitlab.com/tezos/tezos/-/issues/6915 + This should be removed after the next release candidate. *) + job_install_bin + ~__POS__ + ~name:"oc.install_bin_ubuntu_focal" + ~allow_failure:Yes + Ubuntu_focal; + job_install_bin + ~__POS__ + ~name:"oc.install_bin_ubuntu_jammy" + ~allow_failure:Yes + Ubuntu_jammy; + job_install_bin + ~__POS__ + ~name:"oc.install_bin_rc_ubuntu_focal" + ~allow_failure:Yes + ~rc:true + Ubuntu_focal; + job_install_bin + ~__POS__ + ~name:"oc.install_bin_rc_ubuntu_jammy" + ~allow_failure:Yes + ~rc:true + Ubuntu_jammy; + (* Test installing through opam *) + job_install_opam_focal; + (* Test compiling the [latest-release] branch on Bullseye *) + job_compile_sources + ~__POS__ + ~name:"oc.compile_release_sources_bullseye" + ~image:Images.opam_debian_bullseye + ~project:"tezos/tezos" + ~branch:"latest-release"; + (* Test compiling the [master] branch on Bullseye *) + job_compile_sources + ~__POS__ + ~name:"oc.compile_sources_bullseye" + ~image:Images.opam_debian_bullseye + ~project:"${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos}" + ~branch:"${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master}"; + job_compile_sources + ~__POS__ + ~name:"oc.compile_sources_mantic" + ~image:Images.opam_ubuntu_mantic + ~project:"${CI_MERGE_REQUEST_SOURCE_PROJECT_PATH:-tezos/tezos}" + ~branch:"${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-master}"; + ] + |> jobs_external_split ~path:"test/install_octez" + in [ job_kaitai_checks; job_kaitai_e2e_checks; @@ -882,8 +1127,13 @@ let jobs pipeline_type = job_misc_opam_checks; job_semgrep; job_oc_integration_compiler_rejections; + job_oc_script_test_gen_genesis; + job_oc_script_snapshot_alpha_and_link; + job_oc_script_test_release_versions; + job_oc_script_b58_prefix; + job_oc_test_liquidity_baking_scripts; ] - @ jobs_unit + @ jobs_unit @ jobs_install_octez @ match pipeline_type with | Before_merging -> @@ -972,5 +1222,5 @@ let jobs pipeline_type = (using {!job_external} or {!jobs_external}) and included by hand in the files [.gitlab/ci/pipelines/before_merging.yml] and [.gitlab/ci/pipelines/schedule_extended_test.yml]. *) - ignore (trigger @ sanity @ build @ packaging @ test @ doc @ manual) ; + ignore (trigger_stage @ sanity @ build @ packaging @ test @ doc @ manual) ; [] diff --git a/ci/bin/common.ml b/ci/bin/common.ml index 23a55bc27e564404bb41c792ab189b8824dfc9ba..5abfd2be1f7d275193431eb070740b22e9d7868b 100644 --- a/ci/bin/common.ml +++ b/ci/bin/common.ml @@ -145,8 +145,35 @@ module Images = struct let debian_bookworm = Image.register ~name:"debian_bookworm" ~image_path:"debian:bookworm" + let ubuntu_focal = + Image.register + ~name:"ubuntu_focal" + ~image_path:"public.ecr.aws/lts/ubuntu:20.04_stable" + + let ubuntu_jammy = + Image.register + ~name:"ubuntu_jammy" + ~image_path:"public.ecr.aws/lts/ubuntu:22.04_stable" + + let fedora_37 = Image.register ~name:"fedora_37" ~image_path:"fedora:37" + let fedora_39 = Image.register ~name:"fedora_39" ~image_path:"fedora:39" + let opam_ubuntu_focal = + Image.register + ~name:"opam_ubuntu_focal" + ~image_path:"ocaml/opam:ubuntu-20.04" + + let opam_ubuntu_mantic = + Image.register + ~name:"opam_ubuntu_mantic" + ~image_path:"ocaml/opam:ubuntu-23.10" + + let opam_debian_bullseye = + Image.register + ~name:"opam_debian_bullseye" + ~image_path:"ocaml/opam:debian-11" + let ci_release = Image.register ~name:"ci_release" @@ -265,6 +292,7 @@ let enable_kernels = (** {2 Changesets} *) +(* Only if octez source code has changed *) let changeset_octez = [ "src/**/*"; @@ -276,10 +304,13 @@ let changeset_octez = "tzt_reference_test_suite/**/*"; ] +(* Only if octez source code has changed, if the images has changed or + if kernels.mk changed. *) let changeset_octez_or_kernels = ["images/**/*"; "scripts/ci/**/*"; "kernels.mk"; "etherlink.mk"] @ changeset_octez +(* Only if documentation has changed *) let changeset_octez_docs = [ "scripts/**/*/"; @@ -382,6 +413,35 @@ let changeset_semgrep_files = ".gitlab-ci.yml"; ] +(* We only need to run the [oc.script:snapshot_alpha_and_link] job if + protocol Alpha or if the scripts changed. *) +let changeset_script_snapshot_alpha_and_link = + [ + "src/proto_alpha/**/*"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + "scripts/snapshot_alpha_and_link.sh"; + "scripts/snapshot_alpha.sh"; + "scripts/user_activated_upgrade.sh"; + ] + +let changeset_script_b58_prefix = + [ + "scripts/b58_prefix/b58_prefix.py"; + "scripts/b58_prefix/test_b58_prefix.py"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + +let changeset_test_liquidity_baking_scripts = + [ + "src/**/*"; + "scripts/ci/test_liquidity_baking_scripts.sh"; + "scripts/check-liquidity-baking-scripts.sh"; + ".gitlab/**/*"; + ".gitlab-ci.yml"; + ] + (** {2 Job makers} *) (** Helper to create jobs that uses the Docker daemon. diff --git a/ci/bin/main.ml b/ci/bin/main.ml index 03f85a4de398999892ae0b3830c21940091c7714..c1d817a1505e5c420b22ace46de03f5e5fa043d7 100644 --- a/ci/bin/main.ml +++ b/ci/bin/main.ml @@ -193,13 +193,6 @@ let () = | ".gitlab/ci/jobs/packaging/debian_repository.yml" | ".gitlab/ci/jobs/shared/images.yml" | ".gitlab/ci/jobs/shared/templates.yml" | ".gitlab/ci/jobs/test/common.yml" - | ".gitlab/ci/jobs/test/install_octez.yml" - | ".gitlab/ci/jobs/test/oc.integration:compiler-rejections.yml" - | ".gitlab/ci/jobs/test/oc.script:b58_prefix.yml" - | ".gitlab/ci/jobs/test/oc.script:snapshot_alpha_and_link.yml" - | ".gitlab/ci/jobs/test/oc.script:test-gen-genesis.yml" - | ".gitlab/ci/jobs/test/oc.script:test_octez_release_versions.yml" - | ".gitlab/ci/jobs/test/oc.test-liquidity-baking-scripts.yml" | ".gitlab/ci/jobs/test/test_etherlink_kernel-before_merging.yml" | ".gitlab/ci/jobs/test/test_etherlink_kernel-schedule_extended_test.yml" | ".gitlab/ci/jobs/test/test_evm_compatibility.yml"