Skip to content

Commit e492cbd

Browse files
authored
MONGOCRYPT-835 integrate papertrail (#1141)
* reword release step This is no longer required for SSDLC requirements MONGOCRYPT-671 noted: "Tracking release authors is done in this internal spreadsheet". I think the spreadsheet is still useful for adding commentary. * add papertrail.trace commands * rename local files to give papertrail names that are "unique between releases"
1 parent d1cd6eb commit e492cbd

2 files changed

Lines changed: 107 additions & 26 deletions

File tree

.evergreen/config.yml

Lines changed: 106 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ functions:
7575
"tar and upload libmongocrypt libraries":
7676
- command: archive.targz_pack
7777
params:
78-
target: libmongocrypt.tar.gz
78+
target: libmongocrypt-${build_variant}-${tag_upload_location!|*revision}.tar.gz
7979
source_dir: install/libmongocrypt
8080
include: [./**]
8181
- command: s3.put
@@ -86,7 +86,7 @@ functions:
8686
bucket: ${upload_bucket}
8787
permissions: ${upload_permissions}
8888
visibility: ${upload_visibility}
89-
local_file: 'libmongocrypt.tar.gz'
89+
local_file: 'libmongocrypt-${build_variant}-${tag_upload_location!|*revision}.tar.gz'
9090
content_type: '${content_type|application/x-gzip}'
9191
- command: s3.put
9292
params:
@@ -96,8 +96,16 @@ functions:
9696
bucket: ${upload_bucket}
9797
permissions: ${upload_permissions}
9898
visibility: ${upload_visibility}
99-
local_file: 'libmongocrypt.tar.gz'
99+
local_file: 'libmongocrypt-${build_variant}-${tag_upload_location!|*revision}.tar.gz'
100100
content_type: '${content_type|application/x-gzip}'
101+
- command: papertrail.trace
102+
params:
103+
key_id: ${papertrail_key_id}
104+
secret_key: ${papertrail_secret_key}
105+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
106+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
107+
filenames:
108+
- 'libmongocrypt-${build_variant}-${tag_upload_location!|*revision}.tar.gz'
101109

102110
"build and test":
103111
- command: "shell.exec"
@@ -134,7 +142,7 @@ functions:
134142
"upload packages and repos":
135143
- command: archive.targz_pack
136144
params:
137-
target: libmongocrypt-distro-packages.tar.gz
145+
target: libmongocrypt-distro-packages-${tag_upload_location!|*revision}.tar.gz
138146
source_dir: libmongocrypt/repo
139147
include: [./**]
140148
- command: s3.put
@@ -145,8 +153,16 @@ functions:
145153
bucket: ${upload_bucket}
146154
permissions: ${upload_permissions}
147155
visibility: ${upload_visibility}
148-
local_file: 'libmongocrypt-distro-packages.tar.gz'
156+
local_file: 'libmongocrypt-distro-packages-${tag_upload_location!|*revision}.tar.gz'
149157
content_type: '${content_type|application/x-gzip}'
158+
- command: papertrail.trace
159+
params:
160+
key_id: ${papertrail_key_id}
161+
secret_key: ${papertrail_secret_key}
162+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
163+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
164+
filenames:
165+
- 'libmongocrypt-distro-packages-${tag_upload_location!|*revision}.tar.gz'
150166

151167
"run clang-tidy":
152168
- command: "shell.exec"
@@ -317,21 +333,29 @@ functions:
317333
"upload python release":
318334
- command: archive.targz_pack
319335
params:
320-
target: "release-files.tgz"
336+
target: "release-files-${tag_upload_location!|*revision}.tgz"
321337
source_dir: "libmongocrypt/bindings/python/dist"
322338
include:
323339
- "*"
324340
- command: s3.put
325341
params:
326342
role_arn: ${upload_arn}
327343
skip_existing: true
328-
local_file: release-files.tgz
344+
local_file: release-files-${tag_upload_location!|*revision}.tgz
329345
remote_file: 'libmongocrypt/python-release/${branch_name}/${libmongocrypt_s3_suffix}/${task_id}-${execution}-release-files.tar.gz'
330346
bucket: ${upload_bucket}
331347
permissions: ${upload_permissions}
332348
visibility: ${upload_visibility}
333349
content_type: ${content_type|application/gzip}
334350
display_name: Release Python files
351+
- command: papertrail.trace
352+
params:
353+
key_id: ${papertrail_key_id}
354+
secret_key: ${papertrail_secret_key}
355+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
356+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
357+
filenames:
358+
- release-files-${tag_upload_location!|*revision}.tgz
335359

336360
"download and merge python releases":
337361
- command: ec2.assume_role
@@ -370,22 +394,30 @@ functions:
370394
done
371395
- command: archive.targz_pack
372396
params:
373-
target: "release-files-all.tgz"
397+
target: "release-files-all-${tag_upload_location!|*revision}.tgz"
374398
source_dir: "releases/"
375399
include:
376400
- "*"
377401
- command: s3.put
378402
params:
379403
role_arn: ${upload_arn}
380404
skip_existing: true
381-
local_file: release-files-all.tgz
405+
local_file: release-files-all-${tag_upload_location!|*revision}.tgz
382406
remote_file: 'libmongocrypt/python-release/${branch_name}/${libmongocrypt_s3_suffix}/${task_id}-${execution}-release-files-all.tar.gz'
383407
# The merged results are placed in the CDN bucket for releases
384408
bucket: ${upload_bucket}
385409
permissions: ${upload_permissions}
386410
visibility: ${upload_visibility}
387411
content_type: ${content_type|application/gzip}
388412
display_name: Release Python files all
413+
- command: papertrail.trace
414+
params:
415+
key_id: ${papertrail_key_id}
416+
secret_key: ${papertrail_secret_key}
417+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
418+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
419+
filenames:
420+
- release-files-all-${tag_upload_location!|*revision}.tgz
389421
earthly:
390422
- command: shell.exec
391423
params:
@@ -633,7 +665,7 @@ tasks:
633665
vars: { variant_name: "macos" }
634666
- command: archive.targz_pack
635667
params:
636-
target: libmongocrypt-java.tar.gz
668+
target: libmongocrypt-java-${revision}.tar.gz
637669
source_dir: all
638670
include: [./**]
639671
- command: shell.exec
@@ -643,7 +675,7 @@ tasks:
643675
if [ -n "${tag_upload_location}" ]; then
644676
# the "fetch source" step detected a release tag on HEAD, so we
645677
# prepare a local file for upload to a location based on the tag
646-
cp -a libmongocrypt-java.tar.gz libmongocrypt-java-${tag_upload_location}.tar.gz
678+
cp -a libmongocrypt-java-${revision}.tar.gz libmongocrypt-java-${tag_upload_location}.tar.gz
647679
fi
648680
- command: s3.put
649681
params:
@@ -653,7 +685,7 @@ tasks:
653685
bucket: ${upload_bucket}
654686
permissions: ${upload_permissions}
655687
visibility: ${upload_visibility}
656-
local_file: 'libmongocrypt-java.tar.gz'
688+
local_file: 'libmongocrypt-java-${revision}.tar.gz'
657689
content_type: '${content_type|application/x-gzip}'
658690
- command: s3.put
659691
params:
@@ -667,6 +699,14 @@ tasks:
667699
display_name: 'libmongocrypt-java-${tag_upload_location}.tar.gz'
668700
local_file: 'libmongocrypt-java-${tag_upload_location}.tar.gz'
669701
content_type: '${content_type|application/x-gzip}'
702+
- command: papertrail.trace
703+
params:
704+
key_id: ${papertrail_key_id}
705+
secret_key: ${papertrail_secret_key}
706+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
707+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
708+
filenames:
709+
- libmongocrypt-java-${tag_upload_location!|*revision}.tar.gz
670710

671711
- name: upload-all
672712
depends_on:
@@ -821,7 +861,7 @@ tasks:
821861
vars: { variant_name: "alpine-arm64-earthly" }
822862
- command: archive.targz_pack
823863
params:
824-
target: libmongocrypt-all.tar.gz
864+
target: libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz
825865
source_dir: all
826866
include: [./**]
827867
- command: shell.exec
@@ -831,15 +871,15 @@ tasks:
831871
if [ -n "${tag_upload_location}" ]; then
832872
# the "fetch source" step detected a release tag on HEAD, so we
833873
# prepare a local file for upload to a location based on the tag
834-
cp -a libmongocrypt-all.tar.gz libmongocrypt-all-${tag_upload_location}.tar.gz
874+
cp -a libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz libmongocrypt-all-${tag_upload_location}.tar.gz
835875
836876
if [[ "$tag_upload_location" = *-* ]]; then
837877
# Unstable release, like 1.1.0-beta1 or 1.0.1-rc0.
838878
mkdir unstable
839-
cp -a libmongocrypt-all.tar.gz unstable/libmongocrypt-all-${tag_upload_location}.tar.gz
879+
cp -a libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz unstable/libmongocrypt-all-${tag_upload_location}.tar.gz
840880
else
841881
mkdir stable
842-
cp -a libmongocrypt-all.tar.gz stable/libmongocrypt-all-${tag_upload_location}.tar.gz
882+
cp -a libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz stable/libmongocrypt-all-${tag_upload_location}.tar.gz
843883
fi
844884
fi
845885
- command: s3.put
@@ -850,7 +890,7 @@ tasks:
850890
bucket: ${upload_bucket}
851891
permissions: ${upload_permissions}
852892
visibility: ${upload_visibility}
853-
local_file: 'libmongocrypt-all.tar.gz'
893+
local_file: 'libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz'
854894
content_type: '${content_type|application/x-gzip}'
855895
- command: s3.put
856896
params:
@@ -860,7 +900,7 @@ tasks:
860900
bucket: ${upload_bucket}
861901
permissions: ${upload_permissions}
862902
visibility: ${upload_visibility}
863-
local_file: 'libmongocrypt-all.tar.gz'
903+
local_file: 'libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz'
864904
content_type: '${content_type|application/x-gzip}'
865905
- command: s3.put
866906
params:
@@ -898,6 +938,14 @@ tasks:
898938
display_name: 'unstable/libmongocrypt-all-${tag_upload_location}.tar.gz'
899939
local_file: 'unstable/libmongocrypt-all-${tag_upload_location}.tar.gz'
900940
content_type: '${content_type|application/x-gzip}'
941+
- command: papertrail.trace
942+
params:
943+
key_id: ${papertrail_key_id}
944+
secret_key: ${papertrail_secret_key}
945+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
946+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
947+
filenames:
948+
- libmongocrypt-all-${tag_upload_location!|*revision}.tar.gz
901949

902950
- name: publish-packages
903951
depends_on: build-packages
@@ -963,7 +1011,7 @@ tasks:
9631011
mv libmongocrypt_download/include/mongocrypt libmongocrypt_upload/include
9641012
- command: archive.targz_pack
9651013
params:
966-
target: libmongocrypt_upload.tar.gz
1014+
target: libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz
9671015
source_dir: libmongocrypt_upload
9681016
include: [./**]
9691017
- command: s3.put
@@ -980,7 +1028,7 @@ tasks:
9801028
bucket: ${upload_bucket}
9811029
permissions: ${upload_permissions}
9821030
visibility: ${upload_visibility}
983-
local_file: 'libmongocrypt_upload.tar.gz'
1031+
local_file: 'libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz'
9841032
content_type: 'application/x-gzip'
9851033
- command: s3.put # Upload tarball for GitHub Release.
9861034
params:
@@ -991,18 +1039,18 @@ tasks:
9911039
bucket: ${upload_bucket}
9921040
permissions: ${upload_permissions}
9931041
visibility: ${upload_visibility}
994-
local_file: 'libmongocrypt_upload.tar.gz'
1042+
local_file: 'libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz'
9951043
content_type: 'application/x-gzip'
9961044
- command: shell.exec
9971045
params:
9981046
shell: bash
9991047
script: |-
10001048
set -o errexit
10011049
# Copy file to sign into `libmongocrypt` directory to be used by Earthly.
1002-
cp libmongocrypt_upload.tar.gz libmongocrypt
1050+
cp libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz libmongocrypt
10031051
- func: "earthly" # Sign tarball.
10041052
vars:
1005-
args: --secret garasign_username=${garasign_username} --secret garasign_password=${garasign_password} +sign --file_to_sign=libmongocrypt_upload.tar.gz --output_file=libmongocrypt_upload.asc
1053+
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
10061054
- command: s3.put # Upload signature for GitHub Release.
10071055
params:
10081056
role_arn: ${upload_arn}
@@ -1014,6 +1062,14 @@ tasks:
10141062
visibility: ${upload_visibility}
10151063
local_file: 'libmongocrypt/libmongocrypt_upload.asc'
10161064
content_type: 'application/pgp-signature'
1065+
- command: papertrail.trace
1066+
params:
1067+
key_id: ${papertrail_key_id}
1068+
secret_key: ${papertrail_secret_key}
1069+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
1070+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
1071+
filenames:
1072+
- libmongocrypt-windows-x86_64-${tag_upload_location!|*revision}.tar.gz
10171073

10181074
- name: debian-package-build
10191075
run_on: &deb-package-build-run_on
@@ -1031,17 +1087,26 @@ tasks:
10311087
set -o errexit
10321088
set -o xtrace
10331089
bash .evergreen/debian_package_build.sh --is-patch=${is_patch}
1090+
mv ../deb.tar.gz ../deb-${tag_upload_location!|*revision}.tar.gz
10341091
- command: s3.put
10351092
params:
10361093
role_arn: ${upload_arn}
10371094
skip_existing: true
1038-
local_file: deb.tar.gz
1095+
local_file: deb-${tag_upload_location!|*revision}.tar.gz
10391096
remote_file: libmongocrypt/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/debian-packages.tar.gz
10401097
bucket: ${upload_bucket}
10411098
permissions: ${upload_permissions}
10421099
visibility: ${upload_visibility}
10431100
content_type: ${content_type|application/x-gzip}
10441101
display_name: "deb.tar.gz"
1102+
- command: papertrail.trace
1103+
params:
1104+
key_id: ${papertrail_key_id}
1105+
secret_key: ${papertrail_secret_key}
1106+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
1107+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
1108+
filenames:
1109+
- deb-${tag_upload_location!|*revision}.tar.gz
10451110
allowed_requesters:
10461111
- ad_hoc
10471112
- commit
@@ -1065,17 +1130,26 @@ tasks:
10651130
set -o errexit
10661131
set -o xtrace
10671132
bash .evergreen/debian_package_build.sh --arch=i386 --is-patch=${is_patch}
1133+
mv ../deb.tar.gz ../deb-${tag_upload_location!|*revision}.tar.gz
10681134
- command: s3.put
10691135
params:
10701136
role_arn: ${upload_arn}
10711137
skip_existing: true
1072-
local_file: deb.tar.gz
1138+
local_file: deb-${tag_upload_location!|*revision}.tar.gz
10731139
remote_file: libmongocrypt/${branch_name}/${revision}/${version_id}/${build_id}/${execution}/debian-packages-i386.tar.gz
10741140
bucket: ${upload_bucket}
10751141
permissions: ${upload_permissions}
10761142
visibility: ${upload_visibility}
10771143
content_type: ${content_type|application/x-gzip}
10781144
display_name: "deb.tar.gz"
1145+
- command: papertrail.trace
1146+
params:
1147+
key_id: ${papertrail_key_id}
1148+
secret_key: ${papertrail_secret_key}
1149+
product: ${papertrail_project} # libmongocrypt-dev or libmongocrypt-release
1150+
version: ${tag_upload_location!|*revision} # Use ${tag_upload_location} if non-empty, otherwise ${revision}.
1151+
filenames:
1152+
- deb-${tag_upload_location!|*revision}.tar.gz
10791153

10801154
- name: rpm-package-build
10811155
tags: [packaging]
@@ -1195,6 +1269,12 @@ pre:
11951269
upload_visibility='signed'
11961270
fi
11971271
1272+
if test "${project}" = 'libmongocrypt'; then
1273+
papertrail_project='libmongocrypt-dev'
1274+
else
1275+
papertrail_project='libmongocrypt-release'
1276+
fi
1277+
11981278
PROJECT_DIRECTORY="$(pwd)"
11991279
echo "libmongocrypt_s3_suffix: $REMOTE_SUFFIX"
12001280
echo "libmongocrypt_s3_suffix_copy: $REMOTE_SUFFIX_COPY"
@@ -1209,6 +1289,7 @@ pre:
12091289
upload_arn: "$upload_arn"
12101290
upload_permissions: "$upload_permissions"
12111291
upload_visibility: "$upload_visibility"
1292+
papertrail_project: "$papertrail_project"
12121293
EOT
12131294
- command: expansions.update
12141295
params:

doc/releasing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ Do the following when releasing:
128128
```
129129
Commit resulting `etc/cyclonedx.sbom.json`.
130130
- Update the release on the [Jira releases page](https://jira.mongodb.org/projects/MONGOCRYPT/versions).
131-
- Record the release on [C/C++ Release Info](https://docs.google.com/spreadsheets/d/1yHfGmDnbA5-Qt8FX4tKWC5xk9AhzYZx1SKF4AD36ecY/edit?usp=sharing). This is done to meet SSDLC reporting requirements.
131+
- Record the release on [C/C++ Release Info](https://docs.google.com/spreadsheets/d/1yHfGmDnbA5-Qt8FX4tKWC5xk9AhzYZx1SKF4AD36ecY/edit?usp=sharing). This is done to leave commentary about the process.
132132
- Add a link to the Evergreen waterfall for the tagged commit to [libmongocrypt Security Testing Summary](https://docs.google.com/document/d/1dc7uvBzu3okAIsA8LSW5sVQGkYIvwpBVdg5v4wb4c4s/edit#heading=h.5t79jwe4p0ss).
133133

134134
## Homebrew steps ##

0 commit comments

Comments
 (0)