From 3a7ad3bdf5500939c07e6528efffcdefc45863a0 Mon Sep 17 00:00:00 2001 From: Steven Gagniere <108363707+sgagniere@users.noreply.github.com> Date: Thu, 6 Jun 2024 10:11:57 -0700 Subject: [PATCH] Update APT/YUM release script (#2792) --- mk-files/release.mk | 7 +++++++ scripts/build_linux.sh | 34 ++++++++-------------------------- 2 files changed, 15 insertions(+), 26 deletions(-) diff --git a/mk-files/release.mk b/mk-files/release.mk index 600a39142..7bcee8314 100644 --- a/mk-files/release.mk +++ b/mk-files/release.mk @@ -74,6 +74,13 @@ else goreleaser release --clean --config .goreleaser-linux-arm64.yml endif +.PHONY: update-package-managers +update-package-managers: + VERSION=$(VERSION) scripts/build_linux.sh && \ + $(call dry-run, aws s3 sync deb $(S3_DEB_RPM_PROD_PATH)/deb) && \ + $(call dry-run, aws s3 sync rpm $(S3_DEB_RPM_PROD_PATH)/rpm) && \ + $(call dry-run, s3-repo-utils -v website index --fake-index --prefix $(S3_DEB_RPM_PROD_PREFIX)/ $(S3_DEB_RPM_BUCKET_NAME)) + # This builds the Darwin, Windows and Linux binaries using goreleaser on the host computer. Goreleaser takes care of uploading the resulting binaries/archives/checksums to S3. .PHONY: gorelease gorelease: diff --git a/scripts/build_linux.sh b/scripts/build_linux.sh index f09c89787..9646e60a2 100755 --- a/scripts/build_linux.sh +++ b/scripts/build_linux.sh @@ -2,16 +2,18 @@ function cleanup { shred --force --remove --zero --iterations=10 deb-secret.gpg rpm-secret.gpg deb-passphrase rpm-passphrase - rm -rf vendor } trap cleanup EXIT trap "exit 1" ERR -aws s3 sync s3://confluent-cli-release/confluent-cli/deb deb --exclude '*index.html' --exclude '' --exclude '*/' --exclude '*.deb' -aws s3 sync s3://confluent-cli-release/confluent-cli/rpm rpm --exclude '*index.html' --exclude '' --exclude '*/' --exclude '*.rpm' +rm -rf prebuilt/ deb/ rpm/ +mkdir prebuilt/ deb/ rpm/ -aws ecr get-login-password --region us-west-1 | docker login --username AWS --password-stdin 050879227952.dkr.ecr.us-west-1.amazonaws.com +aws s3 cp s3://confluent-cli-release/confluent-cli/deb deb --recursive --exclude '*index.html' --exclude '' --exclude '*/' --exclude '*.deb' +aws s3 cp s3://confluent-cli-release/confluent-cli/rpm rpm --recursive --exclude '*index.html' --exclude '' --exclude '*/' --exclude '*.rpm' + +gh release download $VERSION -p '*.deb' -p '*.rpm' --dir prebuilt/ export VAULT_ADDR=https://vault.cireops.gcp.internal.confluent.cloud vault login -method=oidc -path=okta @@ -20,29 +22,9 @@ vault kv get -field deb_gpg_passphrase v1/ci/kv/cli/release > deb-passphrase vault kv get -field rpm_gpg_secret_key v1/ci/kv/cli/release > rpm-secret.gpg vault kv get -field rpm_gpg_passphrase v1/ci/kv/cli/release > rpm-passphrase -go mod vendor - -# Build linux/amd64 -docker build . --file ./docker/Dockerfile_linux_amd64 --tag cli-linux-amd64-builder-image --secret id=deb_gpg_secret_key,src=deb-secret.gpg --secret id=deb_gpg_passphrase,src=deb-passphrase \ - --secret id=rpm_gpg_secret_key,src=rpm-secret.gpg --secret id=rpm_gpg_passphrase,src=rpm-passphrase -docker container create --name cli-linux-amd64-builder cli-linux-amd64-builder-image -docker container cp cli-linux-amd64-builder:/cli/prebuilt/. ./prebuilt/ -docker container rm cli-linux-amd64-builder - -# Build linux/arm64 -architecture=$(uname -m) -if [ "$architecture" == 'x86_64' ]; then - docker build . --file ./docker/Dockerfile_linux_arm64_from_amd64 --tag cli-linux-arm64-builder-image --secret id=deb_gpg_secret_key,src=deb-secret.gpg --secret id=deb_gpg_passphrase,src=deb-passphrase \ - --secret id=rpm_gpg_secret_key,src=rpm-secret.gpg --secret id=rpm_gpg_passphrase,src=rpm-passphrase -else - docker build . --file ./docker/Dockerfile_linux_arm64 --tag cli-linux-arm64-builder-image --secret id=deb_gpg_secret_key,src=deb-secret.gpg --secret id=deb_gpg_passphrase,src=deb-passphrase \ - --secret id=rpm_gpg_secret_key,src=rpm-secret.gpg --secret id=rpm_gpg_passphrase,src=rpm-passphrase -fi -docker container create --name cli-linux-arm64-builder cli-linux-arm64-builder-image -docker container cp cli-linux-arm64-builder:/cli/prebuilt/. ./prebuilt/ -docker container rm cli-linux-arm64-builder - # Build APT/YUM repos +aws ecr get-login-password --region us-west-1 | docker login --username AWS --password-stdin 050879227952.dkr.ecr.us-west-1.amazonaws.com + docker build . --file ./docker/Dockerfile_linux_repos --tag cli-linux-repo-update-image --secret id=deb_gpg_secret_key,src=deb-secret.gpg --secret id=deb_gpg_passphrase,src=deb-passphrase \ --secret id=rpm_gpg_secret_key,src=rpm-secret.gpg --secret id=rpm_gpg_passphrase,src=rpm-passphrase docker container create --name cli-linux-repo-update cli-linux-repo-update-image