From d34a694dcae0910707db81ccdf39d6dfdb7e7d8e Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Wed, 17 Jan 2024 15:27:02 +0100 Subject: [PATCH 1/9] Scripts-inputs: Introduce octez-content --- script-inputs/octez-source-content | 13 +++++++++++++ scripts/ci/release.sh | 2 ++ 2 files changed, 15 insertions(+) create mode 100644 script-inputs/octez-source-content diff --git a/script-inputs/octez-source-content b/script-inputs/octez-source-content new file mode 100644 index 000000000000..0f6e5c33caf6 --- /dev/null +++ b/script-inputs/octez-source-content @@ -0,0 +1,13 @@ +src +tezt +Makefile +dune +dune-project +dune-workspace +CHANGES.rst +LICENSES +vendors +opam +script-inputs +scripts +irmin diff --git a/scripts/ci/release.sh b/scripts/ci/release.sh index c3b8309e0282..2f88fbf6cfde 100755 --- a/scripts/ci/release.sh +++ b/scripts/ci/release.sh @@ -14,6 +14,8 @@ binaries="$(cat "$script_inputs_dir/released-executables")" deb_packages="$(find . -maxdepth 1 -name octez-\*.deb)" rpm_packages="$(find . -maxdepth 1 -name octez-\*.rpm)" +octez_source_content="$script_inputs_dir/octez-source-content" + ### Compute GitLab release names # Remove the 'v' in front -- GitLab From dd32a3a5ed70f3506b78969b0adc65542aaa406d Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Wed, 17 Jan 2024 14:59:46 +0100 Subject: [PATCH 2/9] Scripts: Introduce restrict_export_to_octez_source.sh --- .gitlab/ci/jobs/publish/gitlab:release.yml | 3 +++ scripts/ci/restrict_export_to_octez_source.sh | 13 +++++++++++++ 2 files changed, 16 insertions(+) create mode 100755 scripts/ci/restrict_export_to_octez_source.sh diff --git a/.gitlab/ci/jobs/publish/gitlab:release.yml b/.gitlab/ci/jobs/publish/gitlab:release.yml index 22a33598e2c4..cf9487b52925 100644 --- a/.gitlab/ci/jobs/publish/gitlab:release.yml +++ b/.gitlab/ci/jobs/publish/gitlab:release.yml @@ -12,4 +12,7 @@ gitlab:release: - oc.build:dpkg:amd64 - oc.build:rpm:amd64 script: + # Set .gitattributes to restrict the tarball create + # by gitlab-release.sh to Octez. + - ./scripts/ci/restrict_export_to_octez_source.sh - ./scripts/ci/gitlab-release.sh diff --git a/scripts/ci/restrict_export_to_octez_source.sh b/scripts/ci/restrict_export_to_octez_source.sh new file mode 100755 index 000000000000..7ec8ba399c16 --- /dev/null +++ b/scripts/ci/restrict_export_to_octez_source.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -eu + +# shellcheck source=./scripts/ci/release.sh +. ./scripts/ci/release.sh + +# Adds export-ignore for each part of the repo that is not part of octez +ignore="$(comm -2 -3 <(find . -maxdepth 1 | sed 's|^./||' | sort) <(sort "${octez_source_content}"))" +for e in $ignore; do + if ! [ "$e" = "." ] && ! [ "$e" = ".." ]; then + echo "$e export-ignore" >> ./.gitattributes + fi +done -- GitLab From c55500c18aaeb1e556ce649fa29b65f9c19f3be2 Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Wed, 17 Jan 2024 15:05:03 +0100 Subject: [PATCH 3/9] Scripts: Use worktree-attributes when creating archive --- scripts/ci/create_gitlab_package.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/ci/create_gitlab_package.sh b/scripts/ci/create_gitlab_package.sh index 194106429fe4..e40a610774ac 100755 --- a/scripts/ci/create_gitlab_package.sh +++ b/scripts/ci/create_gitlab_package.sh @@ -90,20 +90,21 @@ echo 'Upload tarball of source code and its checksums' source_tarball="${gitlab_octez_package_name}.tar.bz2" -# We are using the export-subst feature of git onfigured in .gitattributes, requires git version >= 2.35 +# We are using the export-subst feature of git configured in .gitattributes, requires git version >= 2.35 # https://git-scm.com/docs/git-archive # https://git-scm.com/docs/gitattributes#_creating_an_archive git --version # Verify the placeholder %(describe:tags) is available git describe --tags -# Create tarball -git archive "${CI_COMMIT_TAG}" --format=tar | bzip2 > "${source_tarball}" +# Pass '--worktree-attributes' to ensure that ignores written by restrict_export_to_octez_source.sh +# are respected. +git archive "${CI_COMMIT_TAG}" --format=tar --worktree-attributes --prefix "${gitlab_octez_source_package_name}/" | bzip2 > "${source_tarball}" # Check tarball is valid tar -tjf "${source_tarball}" > /dev/null # Verify git expanded placeholders in archive -tar -Oxf "${source_tarball}" src/lib_version/exe/get_git_info.ml | grep "let raw_current_version = \"${CI_COMMIT_TAG}\"" +tar -Oxf "${source_tarball}" "${gitlab_octez_source_package_name}/src/lib_version/exe/get_git_info.ml" | grep "let raw_current_version = \"${CI_COMMIT_TAG}\"" # Checksums sha256sum "${source_tarball}" > "${source_tarball}.sha256" -- GitLab From d8251081aceb672cc5fe4089efd18d50f27ecc92 Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Fri, 26 Jan 2024 16:27:17 +0100 Subject: [PATCH 4/9] CI, Releases: Link octez source in the release --- scripts/ci/create_gitlab_package.sh | 3 ++- scripts/ci/create_gitlab_release.sh | 4 +++- scripts/ci/release.sh | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/ci/create_gitlab_package.sh b/scripts/ci/create_gitlab_package.sh index e40a610774ac..2817a17fbad8 100755 --- a/scripts/ci/create_gitlab_package.sh +++ b/scripts/ci/create_gitlab_package.sh @@ -16,6 +16,7 @@ set -eu gitlab_octez_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_package_name}/${gitlab_package_version}" gitlab_octez_deb_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_deb_package_name}/${gitlab_package_version}" gitlab_octez_rpm_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_rpm_package_name}/${gitlab_package_version}" +gitlab_octez_source_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_source_package_name}/${gitlab_package_version}" gitlab_upload() { local_path="${1}" @@ -88,7 +89,7 @@ done # => create and upload manually echo 'Upload tarball of source code and its checksums' -source_tarball="${gitlab_octez_package_name}.tar.bz2" +source_tarball="${gitlab_octez_source_package_name}.tar.bz2" # We are using the export-subst feature of git configured in .gitattributes, requires git version >= 2.35 # https://git-scm.com/docs/git-archive diff --git a/scripts/ci/create_gitlab_release.sh b/scripts/ci/create_gitlab_release.sh index 10a621cdad73..2133b7324c52 100755 --- a/scripts/ci/create_gitlab_release.sh +++ b/scripts/ci/create_gitlab_release.sh @@ -34,6 +34,7 @@ if [ -z "${web_path}" ]; then exit 1 else gitlab_binaries_url="https://${CI_SERVER_HOST}${web_path}" + gitlab_octez_source_url="${gitlab_binaries_url}/${gitlab_octez_package_name}.tar.bz2" fi if [ -z "${deb_web_path}" ]; then @@ -88,4 +89,5 @@ release-cli create \ --assets-link="{\"name\":\"Docker image\",\"url\":\"${docker_image_url}\",\"link_type\":\"image\"}" \ --assets-link="{\"name\":\"Static binaries\",\"url\":\"${gitlab_binaries_url}\",\"link_type\":\"package\"}" \ --assets-link="{\"name\":\"Debian packages\",\"url\":\"${gitlab_deb_packages_url}\",\"link_type\":\"package\"}" \ - --assets-link="{\"name\":\"Red Hat packages\",\"url\":\"${gitlab_rpm_packages_url}\",\"link_type\":\"package\"}" + --assets-link="{\"name\":\"Red Hat packages\",\"url\":\"${gitlab_rpm_packages_url}\",\"link_type\":\"package\"}" \ + --assets-link="{\"name\":\"Octez source\",\"url\":\"${gitlab_octez_source_url}\",\"link_type\":\"other\"}" diff --git a/scripts/ci/release.sh b/scripts/ci/release.sh index 2f88fbf6cfde..ff479301163f 100755 --- a/scripts/ci/release.sh +++ b/scripts/ci/release.sh @@ -52,6 +52,7 @@ fi gitlab_octez_package_name="octez-${gitlab_release_no_v}" gitlab_octez_deb_package_name="octez-debian-${gitlab_release_no_v}" gitlab_octez_rpm_package_name="octez-redhat-${gitlab_release_no_v}" +gitlab_octez_source_package_name="octez-source-${gitlab_release_no_v}" # X.Y or X.Y-rcZ gitlab_package_version="${gitlab_release_no_v}" -- GitLab From c9e6a6156259bb9d3e601e12b2c187db60c48ba2 Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Tue, 6 Feb 2024 10:29:08 +0100 Subject: [PATCH 5/9] CI, Releases: Seperate Octez source from binaries --- scripts/ci/create_gitlab_package.sh | 6 +++--- scripts/ci/create_gitlab_release.sh | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/ci/create_gitlab_package.sh b/scripts/ci/create_gitlab_package.sh index 2817a17fbad8..452428f473eb 100755 --- a/scripts/ci/create_gitlab_package.sh +++ b/scripts/ci/create_gitlab_package.sh @@ -111,6 +111,6 @@ tar -Oxf "${source_tarball}" "${gitlab_octez_source_package_name}/src/lib_versio sha256sum "${source_tarball}" > "${source_tarball}.sha256" sha512sum "${source_tarball}" > "${source_tarball}.sha512" -gitlab_upload "${source_tarball}" "${source_tarball}" -gitlab_upload "${source_tarball}.sha256" "${source_tarball}.sha256" -gitlab_upload "${source_tarball}.sha512" "${source_tarball}.sha512" +gitlab_upload "${source_tarball}" "${source_tarball}" "${gitlab_octez_source_package_url}" +gitlab_upload "${source_tarball}.sha256" "${source_tarball}.sha256" "${gitlab_octez_source_package_url}" +gitlab_upload "${source_tarball}.sha512" "${source_tarball}.sha512" "${gitlab_octez_source_package_url}" diff --git a/scripts/ci/create_gitlab_release.sh b/scripts/ci/create_gitlab_release.sh index 2133b7324c52..70b78ef10e33 100755 --- a/scripts/ci/create_gitlab_release.sh +++ b/scripts/ci/create_gitlab_release.sh @@ -29,12 +29,17 @@ rpm_web_path=$(curl -fsSL -X GET \ "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages?sort=desc&package_name=${gitlab_octez_rpm_package_name}" | jq -r ".[] | select(.version==\"${gitlab_package_version}\") | ._links.web_path") +source_web_path=$(curl -fsSL -X GET \ + -H "JOB-TOKEN: ${CI_JOB_TOKEN}" \ + "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages?sort=desc&package_name=${gitlab_octez_source_package_name}" | + jq -r ".[] | select(.version==\"${gitlab_package_version}\") | ._links.web_path") + if [ -z "${web_path}" ]; then echo "Error: could not find package matching version ${gitlab_package_version}" exit 1 else gitlab_binaries_url="https://${CI_SERVER_HOST}${web_path}" - gitlab_octez_source_url="${gitlab_binaries_url}/${gitlab_octez_package_name}.tar.bz2" + gitlab_octez_source_url="https://${CI_SERVER_HOST}${source_web_path}" fi if [ -z "${deb_web_path}" ]; then -- GitLab From 6bea6f0c527f63cf460187e3b2b72771c2973793 Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Tue, 6 Feb 2024 10:30:29 +0100 Subject: [PATCH 6/9] CI, Releases: Rename binaries package name --- scripts/ci/create_gitlab_package.sh | 4 ++-- scripts/ci/create_gitlab_release.sh | 2 +- scripts/ci/release.sh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/ci/create_gitlab_package.sh b/scripts/ci/create_gitlab_package.sh index 452428f473eb..1a2656e700ac 100755 --- a/scripts/ci/create_gitlab_package.sh +++ b/scripts/ci/create_gitlab_package.sh @@ -13,7 +13,7 @@ set -eu # https://docs.gitlab.com/ee/user/packages/generic_packages/index.html#download-package-file # :gitlab_api_url/projects/:id/packages/generic/:package_name/:package_version/:file_name -gitlab_octez_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_package_name}/${gitlab_package_version}" +gitlab_octez_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_binaries_package_name}/${gitlab_package_version}" gitlab_octez_deb_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_deb_package_name}/${gitlab_package_version}" gitlab_octez_rpm_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_rpm_package_name}/${gitlab_package_version}" gitlab_octez_source_package_url="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${gitlab_octez_source_package_name}/${gitlab_package_version}" @@ -66,7 +66,7 @@ for architecture in ${architectures}; do cd octez-binaries/ tar -czf "octez-${architecture}.tar.gz" "octez-${architecture}/" - gitlab_upload "octez-${architecture}.tar.gz" "${gitlab_octez_package_name}-linux-${architecture}.tar.gz" + gitlab_upload "octez-${architecture}.tar.gz" "${gitlab_octez_binaries_package_name}-linux-${architecture}.tar.gz" cd .. done diff --git a/scripts/ci/create_gitlab_release.sh b/scripts/ci/create_gitlab_release.sh index 70b78ef10e33..541cceef74ce 100755 --- a/scripts/ci/create_gitlab_release.sh +++ b/scripts/ci/create_gitlab_release.sh @@ -16,7 +16,7 @@ echo "Query GitLab to get generic package URL" # :gitlab_api_url/projects/:id/packages web_path=$(curl -fsSL -X GET \ -H "JOB-TOKEN: ${CI_JOB_TOKEN}" \ - "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages?sort=desc&package_name=${gitlab_octez_package_name}" | + "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages?sort=desc&package_name=${gitlab_octez_binaries_package_name}" | jq -r ".[] | select(.version==\"${gitlab_package_version}\") | ._links.web_path") deb_web_path=$(curl -fsSL -X GET \ diff --git a/scripts/ci/release.sh b/scripts/ci/release.sh index ff479301163f..14ef029285bb 100755 --- a/scripts/ci/release.sh +++ b/scripts/ci/release.sh @@ -49,7 +49,7 @@ fi ### Compute GitLab generic package names -gitlab_octez_package_name="octez-${gitlab_release_no_v}" +gitlab_octez_binaries_package_name="octez-binaries-${gitlab_release_no_v}" gitlab_octez_deb_package_name="octez-debian-${gitlab_release_no_v}" gitlab_octez_rpm_package_name="octez-redhat-${gitlab_release_no_v}" gitlab_octez_source_package_name="octez-source-${gitlab_release_no_v}" -- GitLab From b20f80c02a2ff256b63745a61db2dcbd65a44853 Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Wed, 14 Feb 2024 16:52:17 +0100 Subject: [PATCH 7/9] CI: Use new source for opam-release --- scripts/ci/opam-release.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/ci/opam-release.sh b/scripts/ci/opam-release.sh index 0a71535f6996..7e1fd826e799 100755 --- a/scripts/ci/opam-release.sh +++ b/scripts/ci/opam-release.sh @@ -27,12 +27,12 @@ log "Done setting up credentials." # call opam-release.sh with the correct arguments echo "$script_dir/opam-release.sh" \ "$opam_release_tag" \ - "https://gitlab.com/tezos/tezos/-/archive/$CI_COMMIT_TAG/$gitlab_octez_package_name.tar.gz" \ + "https://gitlab.com/tezos/tezos/-/archive/$CI_COMMIT_TAG/$gitlab_octez_source_package_name.tar.gz" \ "$opam_dir" "$script_dir/opam-release.sh" \ "$opam_release_tag" \ - "https://gitlab.com/tezos/tezos/-/archive/$CI_COMMIT_TAG/$gitlab_octez_package_name.tar.gz" \ + "https://gitlab.com/tezos/tezos/-/archive/$CI_COMMIT_TAG/$gitlab_octez_source_package_name.tar.gz" \ "$opam_dir" # Matches the corresponding variable in /scripts/opam-release.sh. -- GitLab From db421ba678509167109c34d56674ec39486811d7 Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Thu, 22 Feb 2024 14:14:02 +0100 Subject: [PATCH 8/9] Makefile: Introduce make octez --- Makefile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Makefile b/Makefile index b7f910de1ded..fa0dc7407432 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,9 @@ DEV_EXECUTABLES := $(shell cat script-inputs/dev-executables) ALL_EXECUTABLES := $(RELEASED_EXECUTABLES) $(EXPERIMENTAL_EXECUTABLES) $(DEV_EXECUTABLES) +#Define octez only executables by excluding the EVM-node. +OCTEZ_ONLY_EXECUTABLES := $(filter-out octez-evm-node,${ALL_EXECUTABLES}) + # Set of Dune targets to build, in addition to OCTEZ_EXECUTABLES, in # the `build` target's Dune invocation. This is used in the CI to # build the TPS evaluation tool, Octogram and the Tezt test suite in the @@ -103,6 +106,10 @@ all: release: @$(MAKE) build PROFILE=release OCTEZ_EXECUTABLES?="$(RELEASED_EXECUTABLES)" +.PHONY: octez +octez: + @$(MAKE) build PROFILE=release OCTEZ_EXECUTABLES?="$(OCTEZ_ONLY_EXECUTABLES)" + .PHONY: experimental-release experimental-release: @$(MAKE) build PROFILE=release OCTEZ_EXECUTABLES?="$(RELEASED_EXECUTABLES) $(EXPERIMENTAL_EXECUTABLES)" -- GitLab From b8a1398c8066b9cd68f09f25cbc7a3a99a602dd6 Mon Sep 17 00:00:00 2001 From: Killian Delarue Date: Wed, 17 Jan 2024 15:27:02 +0100 Subject: [PATCH 9/9] Scripts-inputs: Introduce octez-content --- script-inputs/octez-source-content | 1 - 1 file changed, 1 deletion(-) diff --git a/script-inputs/octez-source-content b/script-inputs/octez-source-content index 0f6e5c33caf6..cfa5c45661c4 100644 --- a/script-inputs/octez-source-content +++ b/script-inputs/octez-source-content @@ -6,7 +6,6 @@ dune-project dune-workspace CHANGES.rst LICENSES -vendors opam script-inputs scripts -- GitLab