@@ -870,6 +870,16 @@ functions:
870
870
# Remove all Docker images
871
871
docker rmi -f $(docker images -a -q) &> /dev/null || true
872
872
873
+ " build release " :
874
+ - command : shell.exec
875
+ type : test
876
+ params :
877
+ working_dir : " src"
878
+ script : |
879
+ set -o xtrace
880
+ ${PREPARE_SHELL}
881
+ .evergreen/release.sh
882
+
873
883
" upload release " :
874
884
- command : archive.targz_pack
875
885
params :
@@ -882,12 +892,63 @@ functions:
882
892
aws_key : ${aws_key}
883
893
aws_secret : ${aws_secret}
884
894
local_file : release-files.tgz
885
- remote_file : ${UPLOAD_BUCKET}/${build_variant} /${revision}/${version_id}/${build_id}/release /${task_id}-${execution}-release-files.tar.gz
895
+ remote_file : ${UPLOAD_BUCKET}/release /${revision}/${task_id}-${execution}-release-files.tar.gz
886
896
bucket : mciuploads
887
897
permissions : public-read
888
898
content_type : ${content_type|application/gzip}
889
899
display_name : Release files
890
900
901
+ " download and merge releases " :
902
+ - command : shell.exec
903
+ params :
904
+ silent : true
905
+ script : |
906
+ export AWS_ACCESS_KEY_ID=${aws_key}
907
+ export AWS_SECRET_ACCESS_KEY=${aws_secret}
908
+
909
+ # Download all the task coverage files.
910
+ aws s3 cp --recursive s3://mciuploads/${UPLOAD_BUCKET}/release/${revision}/ release/
911
+ - command : shell.exec
912
+ params :
913
+ shell : " bash"
914
+ script : |
915
+ set -o xtrace
916
+ ${PREPARE_SHELL}
917
+ # Combine releases into one directory.
918
+ ls -la release/
919
+ mkdir releases
920
+ # Copy old manylinux release first since we want the newer manylinux
921
+ # wheels to override them.
922
+ mkdir old_manylinux
923
+ if mv release/*old_manylinux* old_manylinux; then
924
+ for REL in old_manylinux/*; do
925
+ tar zxvf $REL -C releases/
926
+ done
927
+ fi
928
+ for REL in release/*; do
929
+ tar zxvf $REL -C releases/
930
+ done
931
+ # Build source distribution.
932
+ cd src/
933
+ /opt/python/3.6/bin/python3 setup.py sdist
934
+ cp dist/* ../releases
935
+ - command : archive.targz_pack
936
+ params :
937
+ target : " release-files-all.tgz"
938
+ source_dir : " releases/"
939
+ include :
940
+ - " *"
941
+ - command : s3.put
942
+ params :
943
+ aws_key : ${aws_key}
944
+ aws_secret : ${aws_secret}
945
+ local_file : release-files-all.tgz
946
+ remote_file : ${UPLOAD_BUCKET}/release-all/${revision}/${task_id}-${execution}-release-files-all.tar.gz
947
+ bucket : mciuploads
948
+ permissions : public-read
949
+ content_type : ${content_type|application/gzip}
950
+ display_name : Release files all
951
+
891
952
pre :
892
953
- func : " fetch source"
893
954
- func : " prepare resources"
@@ -972,22 +1033,31 @@ tasks:
972
1033
genhtml --version || true
973
1034
valgrind --version || true
974
1035
975
- - name : " release"
976
- tags : ["release"]
1036
+ - name : " release-mac"
1037
+ tags : ["release_tag"]
1038
+ run_on : macos-1014
1039
+ commands :
1040
+ - func : " build release"
1041
+ - func : " upload release"
1042
+
1043
+ - name : " release-windows"
1044
+ tags : ["release_tag"]
1045
+ run_on : windows-64-vsMulti-small
1046
+ commands :
1047
+ - func : " build release"
1048
+ - func : " upload release"
1049
+
1050
+ - name : " release-manylinux"
1051
+ tags : ["release_tag"]
1052
+ run_on : ubuntu2004-large
977
1053
exec_timeout_secs : 216000 # 60 minutes (manylinux task is slow).
978
1054
commands :
979
- - command : shell.exec
980
- type : test
981
- params :
982
- working_dir : " src"
983
- script : |
984
- set -o xtrace
985
- ${PREPARE_SHELL}
986
- .evergreen/release.sh
1055
+ - func : " build release"
987
1056
- func : " upload release"
988
1057
989
1058
- name : " release-old-manylinux"
990
- tags : ["release"]
1059
+ tags : ["release_tag"]
1060
+ run_on : ubuntu2004-large
991
1061
exec_timeout_secs : 216000 # 60 minutes (manylinux task is slow).
992
1062
commands :
993
1063
- command : shell.exec
@@ -1000,6 +1070,16 @@ tasks:
1000
1070
.evergreen/build-manylinux.sh BUILD_WITH_TAG
1001
1071
- func : " upload release"
1002
1072
1073
+ - name : " release-combine"
1074
+ tags : ["release_tag"]
1075
+ run_on : ubuntu2004-small
1076
+ depends_on :
1077
+ - name : " *"
1078
+ variant : " .release_tag"
1079
+ patch_optional : true
1080
+ commands :
1081
+ - func : " download and merge releases"
1082
+
1003
1083
# Standard test tasks {{{
1004
1084
1005
1085
- name : " mockupdb"
@@ -2530,19 +2610,12 @@ buildvariants:
2530
2610
tasks :
2531
2611
- name : " load-balancer-test"
2532
2612
2533
- - matrix_name : " Release"
2534
- matrix_spec :
2535
- platform : [ubuntu-20.04, windows-64-vsMulti-small, macos-1014]
2536
- display_name : " Release ${platform}"
2613
+ - name : Release
2614
+ display_name : Release
2537
2615
batchtime : 20160 # 14 days
2616
+ tags : ["release_tag"]
2538
2617
tasks :
2539
- - name : " release"
2540
- rules :
2541
- - if :
2542
- platform : ubuntu-20.04
2543
- then :
2544
- add_tasks :
2545
- - name : " release-old-manylinux"
2618
+ - " .release_tag"
2546
2619
2547
2620
# Platform notes
2548
2621
# i386 builds of OpenSSL or Cyrus SASL are not available
0 commit comments