From 608b168f3b6934790fcf69c7fd5a1fe393088f3f Mon Sep 17 00:00:00 2001 From: Kevin Albertson Date: Mon, 27 Jul 2026 16:14:45 -0400 Subject: [PATCH] MONGOCRYPT-894 remove redundant upload tasks --- .evergreen/config.yml | 528 ------------------------------------------ 1 file changed, 528 deletions(-) diff --git a/.evergreen/config.yml b/.evergreen/config.yml index e5eeba55c..26b76ee5a 100755 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -627,406 +627,6 @@ tasks: commands: - func: "download and merge python releases" -- name: upload-java # TODO(MONGOCRYPT-894) remove in favor of `upload-release` tasks. - depends_on: - - variant: rhel72-zseries-test - name: build-and-test-and-upload - - variant: rhel-71-ppc64el - name: build-and-test-and-upload - - variant: ubuntu1604-arm64 - name: build-and-test-and-upload - - variant: windows-test - name: build-and-test-and-upload - - variant: macos_x86_64 - name: build-and-test-and-upload - - variant: macos - name: build-and-test-and-upload - commands: - - func: "fetch source" # To set `tag_upload_location` expansion. - - command: shell.exec - params: - script: mkdir all - - func: "download tarball" - vars: { variant_name: "rhel72-zseries-test" } - - func: "download tarball" - vars: { variant_name: "rhel-71-ppc64el" } - - func: "download tarball" - vars: { variant_name: "ubuntu1604-arm64" } - - func: "download tarball" - vars: { variant_name: "windows-test" } - - func: "download tarball" - vars: { variant_name: "macos_x86_64" } - - func: "download tarball" - vars: { variant_name: "macos" } - - command: archive.targz_pack - params: - target: libmongocrypt-java-${revision}.tar.gz - source_dir: all - include: [./**] - - command: shell.exec - params: - script: |- - set -o errexit - if [ -n "${tag_upload_location}" ]; then - # the "fetch source" step detected a release tag on HEAD, so we - # prepare a local file for upload to a location based on the tag - cp -a libmongocrypt-java-${revision}.tar.gz libmongocrypt-java-${tag_upload_location}.tar.gz - fi - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/java/${revision}/libmongocrypt-java.tar.gz' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - local_file: 'libmongocrypt-java-${revision}.tar.gz' - content_type: '${content_type|application/x-gzip}' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/java/${tag_upload_location}/libmongocrypt-java.tar.gz' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - optional: true - display_name: 'libmongocrypt-java-${tag_upload_location}.tar.gz' - local_file: 'libmongocrypt-java-${tag_upload_location}.tar.gz' - content_type: '${content_type|application/x-gzip}' - - command: papertrail.trace - params: - key_id: ${papertrail_key_id} - secret_key: ${papertrail_secret_key} - product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release - version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}. - filenames: - - libmongocrypt-java-${tag_upload_location!|*revision}.tar.gz - -- name: upload-all # TODO(MONGOCRYPT-894) remove in favor of `upload-release` tasks. - depends_on: - - variant: ubuntu1604 - name: build-and-test-and-upload - - variant: macos_x86_64 - name: build-and-test-and-upload - - variant: rhel72-zseries-test - name: build-and-test-and-upload - - variant: windows-test - name: build-and-test-and-upload - - variant: linux-64-amazon-ami - name: build-and-test-and-upload - - variant: amazon2 - name: build-and-test-and-upload - - variant: amazon2-arm64 - name: build-and-test-and-upload - - variant: amazon2023 - name: build-and-test-and-upload - - variant: amazon2023-arm64 - name: build-and-test-and-upload - - variant: debian13 - name: build-and-test-and-upload - - variant: debian12 - name: build-and-test-and-upload - - variant: debian11 - name: build-and-test-and-upload - - variant: debian10 - name: build-and-test-and-upload - - variant: debian92 - name: build-and-test-and-upload - - variant: rhel-70-64-bit - name: build-and-test-and-upload - - variant: rhel-71-ppc64el - name: build-and-test-and-upload - - variant: rhel-80-64-bit - name: build-and-test-and-upload - - variant: rhel-81-ppc64el - name: build-and-test-and-upload - - variant: rhel-82-arm64 - name: build-and-test-and-upload - - variant: rhel-83-zseries - name: build-and-test-and-upload - - variant: rhel-91-64-bit - name: build-and-test-and-upload - - variant: rhel-91-arm64 - name: build-and-test-and-upload - - variant: suse12-64 - name: build-and-test-and-upload - - variant: suse15-64 - name: build-and-test-and-upload - - variant: ubuntu1604-arm64 - name: build-and-test-and-upload - - variant: ubuntu1804-64 - name: build-and-test-and-upload - - variant: ubuntu1804-arm64 - name: build-and-test-and-upload - - variant: ubuntu2004-64 - name: build-and-test-and-upload - - variant: ubuntu2004-arm64 - name: build-and-test-and-upload - - variant: ubuntu2204-64 - name: build-and-test-and-upload - - variant: ubuntu2204-arm64 - name: build-and-test-and-upload - - variant: ubuntu2404-64 - name: build-and-test-and-upload - - variant: ubuntu2404-arm64 - name: build-and-test-and-upload - - variant: macos - name: build-and-test-and-upload - - variant: alpine-amd64-earthly - name: build-with-earthly - - variant: alpine-arm64-earthly - name: build-with-earthly - commands: - - func: "fetch source" - - command: shell.exec - params: - script: mkdir all - - func: "download tarball" - vars: { variant_name: ubuntu1604 } - - func: "download tarball" - vars: { variant_name: "macos" } - - func: "download tarball" - vars: { variant_name: "rhel72-zseries-test" } - - func: "download tarball" - vars: { variant_name: "windows-test" } - - func: "download tarball" - vars: { variant_name: "linux-64-amazon-ami" } - - func: "download tarball" - vars: { variant_name: "amazon2" } - - func: "download tarball" - vars: { variant_name: "amazon2-arm64" } - - func: "download tarball" - vars: { variant_name: "amazon2023" } - - func: "download tarball" - vars: { variant_name: "amazon2023-arm64" } - - func: "download tarball" - vars: { variant_name: "debian13" } - - func: "download tarball" - vars: { variant_name: "debian12" } - - func: "download tarball" - vars: { variant_name: "debian11" } - - func: "download tarball" - vars: { variant_name: "debian10" } - - func: "download tarball" - vars: { variant_name: "debian92" } - - func: "download tarball" - vars: { variant_name: "rhel-70-64-bit" } - - func: "download tarball" - vars: { variant_name: "rhel-71-ppc64el" } - - func: "download tarball" - vars: { variant_name: "rhel-80-64-bit" } - - func: "download tarball" - vars: { variant_name: "rhel-81-ppc64el" } - - func: "download tarball" - vars: { variant_name: "rhel-82-arm64" } - - func: "download tarball" - vars: { variant_name: "rhel-83-zseries" } - - func: "download tarball" - vars: { variant_name: "rhel-91-64-bit" } - - func: "download tarball" - vars: { variant_name: "rhel-91-arm64" } - - func: "download tarball" - vars: { variant_name: "suse12-64" } - - func: "download tarball" - vars: { variant_name: "suse15-64" } - - func: "download tarball" - vars: { variant_name: "ubuntu1604-arm64" } - - func: "download tarball" - vars: { variant_name: "ubuntu1804-64" } - - func: "download tarball" - vars: { variant_name: "ubuntu1804-arm64" } - - func: "download tarball" - vars: { variant_name: "ubuntu2004-64" } - - func: "download tarball" - vars: { variant_name: "ubuntu2004-arm64" } - - func: "download tarball" - vars: { variant_name: "ubuntu2204-64" } - - func: "download tarball" - vars: { variant_name: "ubuntu2204-arm64" } - - func: "download tarball" - vars: { variant_name: "macos" } - - func: "download tarball" - vars: { variant_name: "alpine-amd64-earthly" } - - func: "download tarball" - vars: { variant_name: "alpine-arm64-earthly" } - - command: archive.targz_pack - params: - target: libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz - source_dir: all - include: [./**] - - command: shell.exec - params: - script: |- - set -o errexit - if [ -n "${tag_upload_location}" ]; then - # the "fetch source" step detected a release tag on HEAD, so we - # prepare a local file for upload to a location based on the tag - - if [[ "$tag_upload_location" = *-* ]]; then - # Unstable release, like 1.1.0-beta1 or 1.0.1-rc0. - mkdir unstable - cp -a libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz unstable/libmongocrypt-all-${tag_upload_location}.tar.gz - else - mkdir stable - cp -a libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz stable/libmongocrypt-all-${tag_upload_location}.tar.gz - fi - fi - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/${branch_name}/${libmongocrypt_s3_suffix}/libmongocrypt-all.tar.gz' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - local_file: 'libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz' - content_type: '${content_type|application/x-gzip}' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/${branch_name}/${libmongocrypt_s3_suffix_copy}/libmongocrypt-all.tar.gz' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - local_file: 'libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz' - content_type: '${content_type|application/x-gzip}' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/${tag_upload_location}/libmongocrypt-all.tar.gz' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - optional: true # Do not fail task if `local_file` does not exist. `local_file` only exists for tagged release. - display_name: 'libmongocrypt-all-${tag_upload_location}.tar.gz' - local_file: 'libmongocrypt-all-${tag_upload_location}.tar.gz' - content_type: '${content_type|application/x-gzip}' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/latest/stable/libmongocrypt-all.tar.gz' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - optional: true # Do not fail task if `local_file` does not exist. `local_file` only exists for stable release. - display_name: 'stable/libmongocrypt-all-${tag_upload_location}.tar.gz' - local_file: 'stable/libmongocrypt-all-${tag_upload_location}.tar.gz' - content_type: '${content_type|application/x-gzip}' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/latest/unstable/libmongocrypt-all.tar.gz' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - optional: true # Do not fail task if `local_file` does not exist. `local_file` only exists for unstable release. - display_name: 'unstable/libmongocrypt-all-${tag_upload_location}.tar.gz' - local_file: 'unstable/libmongocrypt-all-${tag_upload_location}.tar.gz' - content_type: '${content_type|application/x-gzip}' - - command: papertrail.trace - params: - key_id: ${papertrail_key_id} - secret_key: ${papertrail_secret_key} - product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release - version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}. - filenames: - - libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz - -- name: sign-all # TODO(MONGOCRYPT-894) remove in favor of `upload-release` tasks. - patchable: false # Garasign credentials are marked as "Admin only" in Evergreen project. "Admin only" variables are not included in patch builds. To test a patch: temporarily unselect "Admin only". - depends_on: upload-all - commands: - - func: "fetch source" # To get Earthfile. - - command: s3.get - params: - role_arn: '${upload_arn}' - remote_file: 'libmongocrypt/all/${branch_name}/${libmongocrypt_s3_suffix}/libmongocrypt-all.tar.gz' - bucket: ${upload_bucket} - local_file: 'libmongocrypt/libmongocrypt-all.tar.gz' - - func: "earthly" # Sign tarball. - vars: - args: --secret garasign_username=${garasign_username} --secret garasign_password=${garasign_password} +sign --file_to_sign=libmongocrypt-all.tar.gz --output_file=libmongocrypt-all.asc --is_patch="${is_patch}" - # Upload to same locations as libmongocrypt-all.tar.gz - - command: shell.exec - params: - script: |- - set -o errexit - cd libmongocrypt - if [ -n "${tag_upload_location}" ]; then - # the "fetch source" step detected a release tag on HEAD, so we - # prepare a local file for upload to a location based on the tag - cp -a libmongocrypt-all.asc libmongocrypt-all-${tag_upload_location}.asc - - if [[ "$tag_upload_location" = *-* ]]; then - # Unstable release, like 1.1.0-beta1 or 1.0.1-rc0. - mkdir unstable - cp -a libmongocrypt-all.asc unstable/libmongocrypt-all-${tag_upload_location}.asc - else - mkdir stable - cp -a libmongocrypt-all.asc stable/libmongocrypt-all-${tag_upload_location}.asc - fi - fi - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/${branch_name}/${libmongocrypt_s3_suffix}/libmongocrypt-all.asc' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - local_file: 'libmongocrypt/libmongocrypt-all.asc' - content_type: 'application/pgp-signature' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/${branch_name}/${libmongocrypt_s3_suffix_copy}/libmongocrypt-all.asc' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - local_file: 'libmongocrypt/libmongocrypt-all.asc' - content_type: 'application/pgp-signature' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/${tag_upload_location}/libmongocrypt-all.asc' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - optional: true # Do not fail task if `local_file` does not exist. `local_file` only exists for tagged release. - display_name: 'libmongocrypt-all-${tag_upload_location}.asc' - local_file: 'libmongocrypt/libmongocrypt-all-${tag_upload_location}.asc' - content_type: 'application/pgp-signature' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/latest/stable/libmongocrypt-all.asc' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - optional: true # Do not fail task if `local_file` does not exist. `local_file` only exists for stable release. - display_name: 'stable/libmongocrypt-all-${tag_upload_location}.asc' - local_file: 'libmongocrypt/stable/libmongocrypt-all-${tag_upload_location}.asc' - content_type: 'application/pgp-signature' - - command: s3.put - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/all/latest/unstable/libmongocrypt-all.asc' - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - optional: true # Do not fail task if `local_file` does not exist. `local_file` only exists for unstable release. - display_name: 'unstable/libmongocrypt-all-${tag_upload_location}.asc' - local_file: 'libmongocrypt/unstable/libmongocrypt-all-${tag_upload_location}.asc' - content_type: 'application/pgp-signature' - name: publish-packages depends_on: build-packages @@ -1034,123 +634,6 @@ tasks: - func: "fetch source" - func: "setup packaging credentials" - func: "publish packages" -- name: windows-upload-release # TODO(MONGOCRYPT-894) remove in favor of `upload-release` tasks. - patchable: false # Garasign credentials are marked as "Admin only" in Evergreen and are not included in patch builds. - depends_on: - - variant: windows-test - name: build-and-test-and-upload - commands: - - func: "fetch source" - - command: shell.exec - params: - shell: bash - working_dir: libmongocrypt - script: |- - set -o xtrace - set -o errexit - - . .evergreen/init.sh - libmongocrypt_release_version=$(uvx python ./etc/calc_release_version.py) - case "$libmongocrypt_release_version" in - *+*) - # Not a tagged release. Use full release version suffix. - upload_suffix="$libmongocrypt_release_version" - ;; - *-*) - # Unstable release, like 1.1.0-beta1 or 1.0.1-rc0. Overwrite the latest unstable URL. - upload_suffix='_unstable' - ;; - *) - # Tagged release. Overwrite the latest stable URL. - upload_suffix='' - ;; - esac - - # Add expansions used in later commands: - echo "libmongocrypt_release_version: '$libmongocrypt_release_version'" > expansions.yml - echo "upload_suffix: '$upload_suffix'" >> expansions.yml - - command: expansions.update - params: - file: libmongocrypt/expansions.yml - - command: s3.get # Download Windows build. - params: - role_arn: ${upload_arn} - remote_file: 'libmongocrypt/windows-test/${branch_name}/${libmongocrypt_s3_suffix}/libmongocrypt.tar.gz' - bucket: ${upload_bucket} - extract_to: libmongocrypt_download - - command: shell.exec - params: - script: |- - set -o xtrace - set -o errexit - - # Move just the mongocrypt files needed into the final upload - mkdir libmongocrypt_upload - mkdir libmongocrypt_upload/bin - mkdir libmongocrypt_upload/include - mv libmongocrypt_download/bin/mongocrypt.dll libmongocrypt_upload/bin/mongocrypt.dll - mv libmongocrypt_download/include/mongocrypt libmongocrypt_upload/include - - command: archive.targz_pack - params: - target: libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz - source_dir: libmongocrypt_upload - include: [./**] - - command: s3.put - # Windows tarballs were previously documented as available from these fixed URLs: - # (stable) : https://s3.amazonaws.com/mciuploads/libmongocrypt/windows/latest_release/libmongocrypt.tar.gz - # (unstable): https://s3.amazonaws.com/mciuploads/libmongocrypt/windows/latest_release/libmongocrypt_unstable.tar.gz - # Documentation now refers to the GitHub release page, which includes the per-release tarball. - # The fixed URL upload is kept to avoid possibly breaking expectations. Consider removing in the future. - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/windows/latest_release/libmongocrypt${upload_suffix}.tar.gz' - display_name: (Deprecated) libmongocrypt${upload_suffix}.tar.gz - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - local_file: 'libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz' - content_type: 'application/x-gzip' - - command: s3.put # Upload tarball for GitHub Release. - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/${build_variant}/${branch_name}/${revision}/${version_id}/libmongocrypt-windows-x86_64-${libmongocrypt_release_version}.tar.gz' - display_name: libmongocrypt-windows-x86_64-${libmongocrypt_release_version}.tar.gz - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - local_file: 'libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz' - content_type: 'application/x-gzip' - - command: shell.exec - params: - shell: bash - script: |- - set -o errexit - # Copy file to sign into `libmongocrypt` directory to be used by Earthly. - cp libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz libmongocrypt - - func: "earthly" # Sign tarball. - vars: - args: --secret garasign_username=${garasign_username} --secret garasign_password=${garasign_password} +sign --file_to_sign=libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz --output_file=libmongocrypt_upload.asc - - command: s3.put # Upload signature for GitHub Release. - params: - role_arn: ${upload_arn} - skip_existing: true - remote_file: 'libmongocrypt/${build_variant}/${branch_name}/${revision}/${version_id}/libmongocrypt-windows-x86_64-${libmongocrypt_release_version}.asc' - display_name: libmongocrypt-windows-x86_64-${libmongocrypt_release_version}.asc - bucket: ${upload_bucket} - permissions: ${upload_permissions} - visibility: ${upload_visibility} - local_file: 'libmongocrypt/libmongocrypt_upload.asc' - content_type: 'application/pgp-signature' - - command: papertrail.trace - params: - key_id: ${papertrail_key_id} - secret_key: ${papertrail_secret_key} - product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release - version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}. - filenames: - - libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz - name: upload-release run_on: ubuntu2404-latest-small @@ -1483,7 +966,6 @@ pre: post: - func: "cleanup environment" -# NOTE: When adding a new variant, update the "upload-all" task. buildvariants: - name: ubuntu1604 display_name: "Ubuntu 16.04 64-bit" @@ -1885,7 +1367,6 @@ buildvariants: - build-and-test-and-upload - build-and-test-shared-bson - build-and-test-asan - - upload-java - build-packages - publish-packages - name: ubuntu2004-arm64 @@ -1938,12 +1419,10 @@ buildvariants: - build-and-test-shared-bson - build-and-test-asan - build-and-test-ubsan - - upload-java - build-packages - name: publish-packages distros: - ubuntu2004-small - - windows-upload-release - name: ubuntu2204-arm64 display_name: "Ubuntu 22.04 arm64" run_on: ubuntu2204-arm64-small @@ -1957,13 +1436,6 @@ buildvariants: - name: publish-packages distros: - ubuntu2004-small -- name: publish - display_name: "Publish" - run_on: ubuntu2404-latest-small - tasks: - - name: "upload-java" - - name: "upload-all" - - name: "sign-all" - name: packaging display_name: "Linux Distro Packaging" tasks: [.packaging]