Skip to content

Commit a230a9a

Browse files
Merge remote-tracking branch 'origin/beta-releases' into ga-releases
2 parents fd8befd + 1072dd3 commit a230a9a

File tree

225 files changed

+6659
-6081
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

225 files changed

+6659
-6081
lines changed

.evergreen.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
stepback: false
22
exec_timeout_secs: 5400
33
ignore:
4+
- docs/**/*.md
45
- AUTHORS
6+
- CODE_OF_CONDUCT.md
7+
- CONTRIBUTING.md
8+
- README.md
59
- THIRD-PARTY-NOTICES.md
610
include:
711
- filename: .evergreen/functions.yml

.evergreen/buildvariants-and-tasks.in.yml

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,18 @@ const PACKAGE_BUILD_VARIANTS = [
6161
];
6262
6363
const SMOKETEST_BUILD_VARIANTS = [
64-
{
65-
name: 'smoketest-ubuntu',
66-
display_name: 'Smoketest Ubuntu',
67-
run_on: 'ubuntu2004-large',
68-
depends_on: 'package-ubuntu',
69-
},
70-
7164
// {
72-
// name: 'smoketest-windows',
73-
// display_name: 'Smoketest Windows',
74-
// run_on: 'windows-vsCurrent-large',
75-
// depends_on: 'package-windows',
65+
// name: 'smoketest-ubuntu',
66+
// display_name: 'Smoketest Ubuntu',
67+
// run_on: 'ubuntu2004-large',
68+
// depends_on: 'package-ubuntu',
7669
// },
70+
{
71+
name: 'smoketest-windows',
72+
display_name: 'Smoketest Windows',
73+
run_on: 'windows-vsCurrent-large',
74+
depends_on: 'package-windows',
75+
},
7776
// {
7877
// name: 'smoketest-rhel',
7978
// display_name: 'Smoketest RHEL',
@@ -288,7 +287,6 @@ buildvariants:
288287
run_on: ubuntu2004-large
289288
tasks:
290289
- name: publish
291-
- name: publish-packages-next
292290
- name: publish-dev-release-info
293291
- name: create_static_analysis_report
294292

@@ -430,17 +428,6 @@ tasks:
430428
- func: get-all-artifacts
431429
- func: publish
432430

433-
- name: publish-packages-next
434-
tags: []
435-
depends_on:
436-
- name: '.required-for-publish'
437-
variant: '*'
438-
commands:
439-
- func: prepare
440-
- func: install
441-
- func: bootstrap
442-
- func: publish-packages-next
443-
444431
- name: publish-dev-release-info
445432
tags: []
446433
depends_on:

.evergreen/buildvariants-and-tasks.yml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ buildvariants:
7676
- name: package-compass
7777
- name: package-compass-isolated
7878
- name: package-compass-readonly
79-
- name: smoketest-ubuntu-compass
80-
display_name: Smoketest Ubuntu (compass)
81-
run_on: ubuntu2004-large
79+
- name: smoketest-windows-compass
80+
display_name: Smoketest Windows (compass)
81+
run_on: windows-vsCurrent-large
8282
depends_on:
8383
- name: package-compass
84-
variant: package-ubuntu
84+
variant: package-windows
8585
tasks:
8686
- name: smoketest-compass
8787
- name: smoketest-macos-x64-compass
@@ -251,7 +251,6 @@ buildvariants:
251251
run_on: ubuntu2004-large
252252
tasks:
253253
- name: publish
254-
- name: publish-packages-next
255254
- name: publish-dev-release-info
256255
- name: create_static_analysis_report
257256
- name: connectivity-tests
@@ -409,16 +408,6 @@ tasks:
409408
scope: mongodb-compass
410409
- func: get-all-artifacts
411410
- func: publish
412-
- name: publish-packages-next
413-
tags: []
414-
depends_on:
415-
- name: .required-for-publish
416-
variant: '*'
417-
commands:
418-
- func: prepare
419-
- func: install
420-
- func: bootstrap
421-
- func: publish-packages-next
422411
- name: publish-dev-release-info
423412
tags: []
424413
depends_on:

.evergreen/connectivity-tests/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ docker run \
2222
-e E2E_TESTS_FREE_TIER_HOST="${E2E_TESTS_FREE_TIER_HOST}" \
2323
-e E2E_TESTS_ATLAS_USERNAME="${E2E_TESTS_ATLAS_USERNAME}" \
2424
-e E2E_TESTS_ATLAS_PASSWORD="${E2E_TESTS_ATLAS_PASSWORD}" \
25-
-e E2E_TESTS_ATLAS_X509_PEM="${E2E_TESTS_ATLAS_X509_PEM}" \
25+
-e E2E_TESTS_ATLAS_X509_PEM_BASE64="${E2E_TESTS_ATLAS_X509_PEM_BASE64}" \
2626
-e MONGODB_VERSION="${MONGODB_VERSION}" \
2727
--add-host mongodb-kerberos-1.example.com:0.0.0.0 \
2828
--add-host mongodb-kerberos-2.example.com:0.0.0.0 \

.evergreen/create-sbom.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ trap_handler() {
1818
}
1919
trap trap_handler ERR EXIT
2020

21-
scp -i "$SIGNING_SERVER_PRIVATE_KEY_CYGPATH" -P "$SIGNING_SERVER_PORT" .sbom/dependencies.json /tmp/silkbomb.env /tmp/artifactory_password "$SIGNING_SERVER_USERNAME"@"$SIGNING_SERVER_HOSTNAME":/tmp/
22-
ssh -i "$SIGNING_SERVER_PRIVATE_KEY_CYGPATH" -p "$SIGNING_SERVER_PORT" "$SIGNING_SERVER_USERNAME"@"$SIGNING_SERVER_HOSTNAME" \
21+
scp -v -i "$SIGNING_SERVER_PRIVATE_KEY_CYGPATH" -P "$SIGNING_SERVER_PORT" .sbom/dependencies.json /tmp/silkbomb.env /tmp/artifactory_password "$SIGNING_SERVER_USERNAME"@"$SIGNING_SERVER_HOSTNAME":/tmp/
22+
ssh -v -i "$SIGNING_SERVER_PRIVATE_KEY_CYGPATH" -p "$SIGNING_SERVER_PORT" "$SIGNING_SERVER_USERNAME"@"$SIGNING_SERVER_HOSTNAME" \
2323
"(cat /tmp/dependencies.json | jq -r '.[] | "'"pkg:npm/" + .name + "@" + .version'"' > /tmp/purls.txt) && \
2424
echo "pkg:generic/mongo_crypt_shared@${CRYPT_SHARED_VERSION}" >> /tmp/purls.txt && \
2525
(cat /tmp/artifactory_password | docker login artifactory.corp.mongodb.com --username '${ARTIFACTORY_USERNAME}' --password-stdin ; rm -f /tmp/artifactor_password ) && \
@@ -30,4 +30,4 @@ ssh -i "$SIGNING_SERVER_PRIVATE_KEY_CYGPATH" -p "$SIGNING_SERVER_PORT" "$SIGNING
3030
--silk-asset-group "${SILK_ASSET_GROUP}" --sbom-in /tmp/sbom-lite.json && \
3131
docker run --env-file /tmp/silkbomb.env --rm -v /tmp:/tmp artifactory.corp.mongodb.com/release-tools-container-registry-public-local/silkbomb:1.0 download \
3232
--silk-asset-group "${SILK_ASSET_GROUP}" --sbom-out /tmp/sbom.json"
33-
scp -i "$SIGNING_SERVER_PRIVATE_KEY_CYGPATH" -P "$SIGNING_SERVER_PORT" "$SIGNING_SERVER_USERNAME"@"$SIGNING_SERVER_HOSTNAME":/tmp/{sbom-lite.json,sbom.json,purls.txt} .sbom/
33+
scp -v -i "$SIGNING_SERVER_PRIVATE_KEY_CYGPATH" -P "$SIGNING_SERVER_PORT" "$SIGNING_SERVER_USERNAME"@"$SIGNING_SERVER_HOSTNAME":/tmp/{sbom-lite.json,sbom.json,purls.txt} .sbom/

.evergreen/functions.yml

Lines changed: 49 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@ variables:
4545
# secrets
4646
HADRON_METRICS_INTERCOM_APP_ID: ${metrics_intercom_app_id}
4747
HADRON_METRICS_SEGMENT_API_KEY: ${metrics_segment_api_key}
48+
GITHUB_TOKEN: ${devtoolsbot_github_token}
49+
DOWNLOAD_CENTER_AWS_ACCESS_KEY_ID: ${aws_key_evergreen_integrations}
50+
DOWNLOAD_CENTER_AWS_SECRET_ACCESS_KEY: ${aws_secret_evergreen_integrations}
51+
EVERGREEN_BUCKET_NAME: mciuploads
52+
EVERGREEN_BUCKET_KEY_PREFIX: ${project}/${revision}_${revision_order_id}
53+
MONGODB_RUNNER_LOG_DIR: ${workdir}/src/.testserver/
54+
DOCKERHUB_USERNAME: ${dockerhub_username}
55+
DOCKERHUB_PASSWORD: ${dockerhub_password}
56+
- &compass-e2e-secrets
4857
E2E_TESTS_METRICS_URI: ${e2e_tests_metrics_string}
4958
E2E_TESTS_ATLAS_HOST: ${e2e_tests_atlas_host}
5059
E2E_TESTS_DATA_LAKE_HOST: ${e2e_tests_data_lake_host}
@@ -53,7 +62,7 @@ variables:
5362
E2E_TESTS_FREE_TIER_HOST: ${e2e_tests_free_tier_host}
5463
E2E_TESTS_ATLAS_USERNAME: ${e2e_tests_atlas_username}
5564
E2E_TESTS_ATLAS_PASSWORD: ${e2e_tests_atlas_password}
56-
E2E_TESTS_ATLAS_X509_PEM: ${e2e_tests_atlas_x509_pem}
65+
E2E_TESTS_ATLAS_X509_PEM_BASE64: ${e2e_tests_atlas_x509_pem_base64}
5766
E2E_TESTS_ATLAS_IAM_ACCESS_KEY_ID: ${e2e_tests_atlas_iam_aws_access_key_id}
5867
E2E_TESTS_ATLAS_IAM_SECRET_ACCESS_KEY: ${e2e_tests_atlas_iam_aws_secret_access_key}
5968
E2E_TESTS_ATLAS_IAM_TEMP_ROLE_ARN: ${e2e_tests_atlas_iam_temp_role_arn}
@@ -62,24 +71,8 @@ variables:
6271
E2E_TESTS_ATLAS_READANYDATABASE_STRING: ${e2e_tests_atlas_readanydatabase_string}
6372
E2E_TESTS_ATLAS_CUSTOMROLE_STRING: ${e2e_tests_atlas_customrole_string}
6473
E2E_TESTS_ATLAS_SPECIFICPERMISSION_STRING: ${e2e_tests_atlas_specificpermission_string}
65-
MACOS_NOTARY_KEY: ${macos_notary_key}
66-
MACOS_NOTARY_SECRET: ${macos_notary_secret}
67-
MACOS_NOTARY_CLIENT_URL: 'https://macos-notary-1628249594.s3.amazonaws.com/releases/client/latest/darwin_amd64.zip'
68-
MACOS_NOTARY_API_URL: 'https://dev.macos-notary.build.10gen.cc/api'
69-
GITHUB_TOKEN: ${devtoolsbot_github_token}
70-
DOWNLOAD_CENTER_AWS_ACCESS_KEY_ID: ${aws_key_evergreen_integrations}
71-
DOWNLOAD_CENTER_AWS_SECRET_ACCESS_KEY: ${aws_secret_evergreen_integrations}
72-
EVERGREEN_BUCKET_NAME: mciuploads
73-
EVERGREEN_BUCKET_KEY_PREFIX: ${project}/${revision}_${revision_order_id}
74-
MONGODB_RUNNER_LOG_DIR: ${workdir}/src/.testserver/
7574
E2E_TESTS_ATLAS_CS_WITHOUT_SEARCH: ${e2e_tests_atlas_cs_without_search}
7675
E2E_TESTS_ATLAS_CS_WITH_SEARCH: ${e2e_tests_atlas_cs_with_search}
77-
GARASIGN_USERNAME: ${garasign_username}
78-
GARASIGN_PASSWORD: ${garasign_password}
79-
ARTIFACTORY_USERNAME: ${artifactory_username}
80-
ARTIFACTORY_PASSWORD: ${artifactory_password}
81-
DOCKERHUB_USERNAME: ${dockerhub_username}
82-
DOCKERHUB_PASSWORD: ${dockerhub_password}
8376

8477
# This is here with the variables because anchors aren't supported across includes
8578
post:
@@ -159,8 +152,6 @@ functions:
159152
160153
# Make all the dirs
161154
mkdir -p $ARTIFACTS_PATH
162-
mkdir -p $NPM_CACHE_DIR
163-
mkdir -p $NPM_TMP_DIR
164155
165156
- command: shell.exec
166157
type: setup
@@ -202,18 +193,9 @@ functions:
202193
npm config ls -l
203194
echo "(if npm fails, debug.log will be uploaded to S3)"
204195
205-
# Install dependencies
196+
# Install and check dependencies
206197
bash ".evergreen/retry-with-backoff.sh" .evergreen/npm_ci.sh
207198
208-
# Will fail if versions of direct dependencies listed in package-lock
209-
# are not matching versions defined in package.json file of any of the
210-
# workspace packages
211-
# This command is very noisy when running from root with --all, store
212-
# the output in a file that will be uploaded with rest of the logs
213-
LS_ALL_STDOUT_FILE="$(npm config get cache)/_logs/$(date -u +"%Y-%m-%dT%H_%M_%SZ")-npm-ls-all.log"
214-
echo "Validating dependencies with \`npm ls --all\`..."
215-
(npm ls --all > $LS_ALL_STDOUT_FILE && echo "No mismatched dependency versions") || echo "\nThe \`npm ls\` command failed with mismatched dependencies error. This usually means that the dependency versions listed in package.json are not matching dependencies resolved and recorded in package-lock.json. If you updated package.json files in your PR, inspect the error output and try to re-install offending dependncies to fix the package-lock file."
216-
217199
bootstrap:
218200
- command: shell.exec
219201
type: setup
@@ -450,7 +432,7 @@ functions:
450432
script: |
451433
set -e
452434
453-
.evergreen/create-sbom.sh
435+
bash ".evergreen/retry-with-backoff.sh" .evergreen/create-sbom.sh
454436
- command: shell.exec
455437
params:
456438
working_dir: src
@@ -459,12 +441,25 @@ functions:
459441
<<: *compass-env
460442
DEBUG: ${debug}
461443
npm_config_loglevel: ${npm_loglevel}
462-
HADRON_DISTRIBUTION: ${compass_distribution}
444+
445+
# macOS signing secrets
446+
MACOS_NOTARY_KEY: ${macos_notary_key}
447+
MACOS_NOTARY_SECRET: ${macos_notary_secret}
448+
MACOS_NOTARY_CLIENT_URL: 'https://macos-notary-1628249594.s3.amazonaws.com/releases/client/latest/darwin_amd64.zip'
449+
MACOS_NOTARY_API_URL: 'https://dev.macos-notary.build.10gen.cc/api'
450+
451+
# linux / windows signing secrets
452+
GARASIGN_USERNAME: ${garasign_username}
453+
GARASIGN_PASSWORD: ${garasign_password}
454+
ARTIFACTORY_USERNAME: ${artifactory_username}
455+
ARTIFACTORY_PASSWORD: ${artifactory_password}
463456
SIGNING_SERVER_HOSTNAME: ${SIGNING_SERVER_HOSTNAME}
464457
SIGNING_SERVER_PRIVATE_KEY: ${SIGNING_SERVER_PRIVATE_KEY}
465458
SIGNING_SERVER_PRIVATE_KEY_CYGPATH: ${SIGNING_SERVER_PRIVATE_KEY_CYGPATH}
466459
SIGNING_SERVER_USERNAME: ${SIGNING_SERVER_USERNAME}
467460
SIGNING_SERVER_PORT: ${SIGNING_SERVER_PORT}
461+
462+
HADRON_DISTRIBUTION: ${compass_distribution}
468463
GITHUB_PR_NUMBER: ${github_pr_number}
469464
PAPERTRAIL_KEY_ID: ${papertrail_key_id}
470465
PAPERTRAIL_SECRET_KEY: ${papertrail_secret_key}
@@ -596,6 +591,7 @@ functions:
596591
shell: bash
597592
env:
598593
<<: *compass-env
594+
<<: *compass-e2e-secrets
599595
DEBUG: ${debug|}
600596
MONGODB_VERSION: ${mongodb_version|}
601597
MONGODB_RUNNER_VERSION: ${mongodb_version|}
@@ -625,6 +621,7 @@ functions:
625621
shell: bash
626622
env:
627623
<<: *compass-env
624+
<<: *compass-e2e-secrets
628625
COMPASS_APP_PATH_ORIGINAL: ${appPath}
629626
COMPASS_APP_NAME: ${packagerOptions.name}
630627
DEBUG: ${debug|}
@@ -660,6 +657,7 @@ functions:
660657
shell: bash
661658
env:
662659
<<: *compass-env
660+
<<: *compass-e2e-secrets
663661
DEBUG: ${debug|}
664662
MONGODB_VERSION: ${mongodb_version|}
665663
MONGODB_RUNNER_VERSION: ${mongodb_version|}
@@ -669,12 +667,28 @@ functions:
669667
# Load environment variables
670668
eval $(.evergreen/print-compass-env.sh)
671669
670+
if [[ "$IS_WINDOWS" == "true" ]]; then
671+
# TODO: windows_setup
672+
# TODO: windows_msi
673+
npm run --unsafe-perm --workspace @mongodb-js/compass-smoke-tests start -- --package=windows_zip
674+
fi
675+
672676
if [[ "$IS_OSX" == "true" ]]; then
673677
echo "Disabling clipboard usage in e2e tests (TODO: https://jira.mongodb.org/browse/BUILD-14780)"
674678
export COMPASS_E2E_DISABLE_CLIPBOARD_USAGE="true"
679+
npm run --unsafe-perm --workspace @mongodb-js/compass-smoke-tests start -- --package=osx_dmg
680+
npm run --unsafe-perm --workspace @mongodb-js/compass-smoke-tests start -- --package=osx_zip
675681
fi
676682
677-
npm run --unsafe-perm --workspace compass-e2e-tests smoketest
683+
#if [[ "$IS_UBUNTU" == "true" ]]; then
684+
# TODO: linux_deb
685+
# TODO: linux_tar
686+
#fi
687+
688+
#if [[ "$IS_RHEL" == "true" ]]; then
689+
# TODO: linux_rpm
690+
# TODO: rhel_tar
691+
#fi
678692
679693
test-web-sandbox:
680694
- command: shell.exec
@@ -685,6 +699,7 @@ functions:
685699
shell: bash
686700
env:
687701
<<: *compass-env
702+
<<: *compass-e2e-secrets
688703
COMPASS_APP_PATH_ORIGINAL: ${appPath}
689704
COMPASS_APP_NAME: ${packagerOptions.name}
690705
DEBUG: ${debug|}
@@ -699,7 +714,6 @@ functions:
699714
eval $(.evergreen/print-compass-env.sh)
700715
npm run --unsafe-perm --workspace compass-e2e-tests test-ci web
701716
702-
703717
test-web-sandbox-atlas-cloud:
704718
- command: shell.exec
705719
# It can take a very long time for Atlas cluster to get deployed
@@ -709,6 +723,7 @@ functions:
709723
shell: bash
710724
env:
711725
<<: *compass-env
726+
<<: *compass-e2e-secrets
712727
DEBUG: ${debug|}
713728
COMPASS_E2E_ATLAS_CLOUD_SANDBOX_USERNAME: ${e2e_tests_compass_web_atlas_username}
714729
COMPASS_E2E_ATLAS_CLOUD_SANDBOX_PASSWORD: ${e2e_tests_compass_web_atlas_password}
@@ -741,6 +756,7 @@ functions:
741756
shell: bash
742757
env:
743758
<<: *compass-env
759+
<<: *compass-e2e-secrets
744760
COMPASS_SKIP_KERBEROS_TESTS: 'true'
745761
COMPASS_RUN_DOCKER_TESTS: 'true'
746762
DEBUG: ${debug}
@@ -955,37 +971,6 @@ functions:
955971
echo "Downloading release assets from evergreen bucket..."
956972
npm run --workspace mongodb-compass download
957973
958-
generate-tasks:
959-
- command: generate.tasks
960-
params:
961-
files:
962-
- tasks.json
963-
964-
publish-packages-next:
965-
- command: shell.exec
966-
params:
967-
working_dir: src
968-
shell: bash
969-
env:
970-
<<: *compass-env
971-
NPM_TOKEN: ${devtoolsbot_npm_token}
972-
script: |
973-
# Only package publish for commits on the main evergreen project.
974-
if [[ "${requester}" == "commit" ]] && [[ "${project}" == "10gen-compass-main" ]]; then
975-
set -e
976-
# Load environment variables
977-
eval $(.evergreen/print-compass-env.sh)
978-
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> .npmrc
979-
npm config list
980-
echo "Publishing packages as $(npm whoami)"
981-
npm run version-packages-next
982-
# unstage after lerna staged version
983-
git reset
984-
# mark files as unchanged so that lerna can publish
985-
git update-index --assume-unchanged $(git diff --name-only HEAD)
986-
bash ".evergreen/retry-with-backoff.sh" npm run publish-packages-next
987-
fi
988-
989974
generate-vulnerability-report:
990975
- command: shell.exec
991976
params:

.evergreen/npm_ci.sh

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,20 @@
22

33
set -e
44

5-
npm cache clean -f
5+
# Remove the cache and any potential install leftovers before installing again.
6+
# We are running this script with a retry to deal with network issues, in some
7+
# rare cases npm leaves stuff behind messing up a new attempt
8+
rm -rf "$NPM_CACHE_DIR"
69
rm -rf node_modules
710
find configs -name 'node_modules' -type d -prune -exec rm -rf '{}' +
811
find packages -name 'node_modules' -type d -prune -exec rm -rf '{}' +
912
find scripts -name 'node_modules' -type d -prune -exec rm -rf '{}' +
10-
npm ci --unsafe-perm
13+
npm ci --unsafe-perm
14+
15+
# Will fail if versions of direct dependencies listed in package-lock are not
16+
# matching versions defined in package.json file of any of the workspace
17+
# packages. This command is very noisy when running from root with --all, store
18+
# the output in a file that will be uploaded with rest of the logs
19+
LS_ALL_STDOUT_FILE="$(npm config get cache)/_logs/$(date -u +"%Y-%m-%dT%H_%M_%SZ")-npm-ls-all.log"
20+
echo "Validating dependencies with \`npm ls --all\`..."
21+
(npm ls --all >$LS_ALL_STDOUT_FILE && echo "No mismatched dependency versions") || (echo ""; echo "The \`npm ls\` command failed with mismatched dependencies error. This usually means that the dependency versions listed in package.json are not matching dependencies resolved and recorded in package-lock.json. If you updated package.json files in your PR, inspect the error output and try to re-install offending dependncies to fix the package-lock file." && exit 1)

0 commit comments

Comments
 (0)