@@ -837,6 +837,16 @@ functions:
837
837
# Remove all Docker images
838
838
docker rmi -f $(docker images -a -q) &> /dev/null || true
839
839
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
+
840
850
" upload release " :
841
851
- command : archive.targz_pack
842
852
params :
@@ -849,12 +859,63 @@ functions:
849
859
aws_key : ${aws_key}
850
860
aws_secret : ${aws_secret}
851
861
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
853
863
bucket : mciuploads
854
864
permissions : public-read
855
865
content_type : ${content_type|application/gzip}
856
866
display_name : Release files
857
867
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
+
858
919
pre :
859
920
- func : " fetch source"
860
921
- func : " prepare resources"
@@ -940,22 +1001,31 @@ tasks:
940
1001
genhtml --version || true
941
1002
valgrind --version || true
942
1003
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
945
1021
exec_timeout_secs : 216000 # 60 minutes (manylinux task is slow).
946
1022
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"
955
1024
- func : " upload release"
956
1025
957
1026
- name : " release-old-manylinux"
958
- tags : ["release"]
1027
+ tags : ["release_tag"]
1028
+ run_on : ubuntu2004-large
959
1029
exec_timeout_secs : 216000 # 60 minutes (manylinux task is slow).
960
1030
commands :
961
1031
- command : shell.exec
@@ -968,6 +1038,16 @@ tasks:
968
1038
.evergreen/build-manylinux.sh BUILD_WITH_TAG
969
1039
- func : " upload release"
970
1040
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
+
971
1051
# Standard test tasks {{{
972
1052
973
1053
- name : " mockupdb"
@@ -2899,19 +2979,12 @@ buildvariants:
2899
2979
tasks :
2900
2980
- name : " load-balancer-test"
2901
2981
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
2906
2984
batchtime : 20160 # 14 days
2985
+ tags : ["release_tag"]
2907
2986
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"
2915
2988
2916
2989
# Platform notes
2917
2990
# i386 builds of OpenSSL or Cyrus SASL are not available
0 commit comments