@@ -837,6 +837,16 @@ functions:
837837 # Remove all Docker images
838838 docker rmi -f $(docker images -a -q) &> /dev/null || true
839839
840+ " build release " :
841+ - command : shell.exec
842+ type : test
843+ params :
844+ working_dir : " src"
845+ script : |
846+ set -o xtrace
847+ ${PREPARE_SHELL}
848+ .evergreen/release.sh
849+
840850 " upload release " :
841851 - command : archive.targz_pack
842852 params :
@@ -849,12 +859,63 @@ functions:
849859 aws_key : ${aws_key}
850860 aws_secret : ${aws_secret}
851861 local_file : release-files.tgz
852- remote_file : ${UPLOAD_BUCKET}/${build_variant} /${revision}/${version_id}/${build_id}/release /${task_id}-${execution}-release-files.tar.gz
862+ remote_file : ${UPLOAD_BUCKET}/release /${revision}/${task_id}-${execution}-release-files.tar.gz
853863 bucket : mciuploads
854864 permissions : public-read
855865 content_type : ${content_type|application/gzip}
856866 display_name : Release files
857867
868+ " download and merge releases " :
869+ - command : shell.exec
870+ params :
871+ silent : true
872+ script : |
873+ export AWS_ACCESS_KEY_ID=${aws_key}
874+ export AWS_SECRET_ACCESS_KEY=${aws_secret}
875+
876+ # Download all the task coverage files.
877+ aws s3 cp --recursive s3://mciuploads/${UPLOAD_BUCKET}/release/${revision}/ release/
878+ - command : shell.exec
879+ params :
880+ shell : " bash"
881+ script : |
882+ set -o xtrace
883+ ${PREPARE_SHELL}
884+ # Combine releases into one directory.
885+ ls -la release/
886+ mkdir releases
887+ # Copy old manylinux release first since we want the newer manylinux
888+ # wheels to override them.
889+ mkdir old_manylinux
890+ if mv release/*old_manylinux* old_manylinux; then
891+ for REL in old_manylinux/*; do
892+ tar zxvf $REL -C releases/
893+ done
894+ fi
895+ for REL in release/*; do
896+ tar zxvf $REL -C releases/
897+ done
898+ # Build source distribution.
899+ cd src/
900+ /opt/python/3.6/bin/python3 setup.py sdist
901+ cp dist/* ../releases
902+ - command : archive.targz_pack
903+ params :
904+ target : " release-files-all.tgz"
905+ source_dir : " releases/"
906+ include :
907+ - " *"
908+ - command : s3.put
909+ params :
910+ aws_key : ${aws_key}
911+ aws_secret : ${aws_secret}
912+ local_file : release-files-all.tgz
913+ remote_file : ${UPLOAD_BUCKET}/release-all/${revision}/${task_id}-${execution}-release-files-all.tar.gz
914+ bucket : mciuploads
915+ permissions : public-read
916+ content_type : ${content_type|application/gzip}
917+ display_name : Release files all
918+
858919pre :
859920 - func : " fetch source"
860921 - func : " prepare resources"
@@ -940,22 +1001,31 @@ tasks:
9401001 genhtml --version || true
9411002 valgrind --version || true
9421003
943- - name : " release"
944- tags : ["release"]
1004+ - name : " release-mac"
1005+ tags : ["release_tag"]
1006+ run_on : macos-1014
1007+ commands :
1008+ - func : " build release"
1009+ - func : " upload release"
1010+
1011+ - name : " release-windows"
1012+ tags : ["release_tag"]
1013+ run_on : windows-64-vsMulti-small
1014+ commands :
1015+ - func : " build release"
1016+ - func : " upload release"
1017+
1018+ - name : " release-manylinux"
1019+ tags : ["release_tag"]
1020+ run_on : ubuntu2004-large
9451021 exec_timeout_secs : 216000 # 60 minutes (manylinux task is slow).
9461022 commands :
947- - command : shell.exec
948- type : test
949- params :
950- working_dir : " src"
951- script : |
952- set -o xtrace
953- ${PREPARE_SHELL}
954- .evergreen/release.sh
1023+ - func : " build release"
9551024 - func : " upload release"
9561025
9571026 - name : " release-old-manylinux"
958- tags : ["release"]
1027+ tags : ["release_tag"]
1028+ run_on : ubuntu2004-large
9591029 exec_timeout_secs : 216000 # 60 minutes (manylinux task is slow).
9601030 commands :
9611031 - command : shell.exec
@@ -968,6 +1038,16 @@ tasks:
9681038 .evergreen/build-manylinux.sh BUILD_WITH_TAG
9691039 - func : " upload release"
9701040
1041+ - name : " release-combine"
1042+ tags : ["release_tag"]
1043+ run_on : ubuntu2004-small
1044+ depends_on :
1045+ - name : " *"
1046+ variant : " .release_tag"
1047+ patch_optional : true
1048+ commands :
1049+ - func : " download and merge releases"
1050+
9711051# Standard test tasks {{{
9721052
9731053 - name : " mockupdb"
@@ -2899,19 +2979,12 @@ buildvariants:
28992979 tasks :
29002980 - name : " load-balancer-test"
29012981
2902- - matrix_name : " Release"
2903- matrix_spec :
2904- platform : [ubuntu-20.04, windows-64-vsMulti-small, macos-1014]
2905- display_name : " Release ${platform}"
2982+ - name : Release
2983+ display_name : Release
29062984 batchtime : 20160 # 14 days
2985+ tags : ["release_tag"]
29072986 tasks :
2908- - name : " release"
2909- rules :
2910- - if :
2911- platform : ubuntu-20.04
2912- then :
2913- add_tasks :
2914- - name : " release-old-manylinux"
2987+ - " .release_tag"
29152988
29162989 # Platform notes
29172990 # i386 builds of OpenSSL or Cyrus SASL are not available
0 commit comments