Skip to content

Commit 34f7a91

Browse files
authored
MONGOID-5601 Atlas Search Index Management (#5723)
* let's see if this'll start up an atlas cluster... * need to add a variant so the spec will actually run * appease rubocop * run on a supported os * need .mod/drivers-evergreen-tools * this got put in the wrong directory * get specs to pass * rubocop * finish specs for atlas index management * docs for the search index stuff * rubocop * return the correct value * add missing documentation
1 parent 8f74b68 commit 34f7a91

21 files changed

+965
-118
lines changed

.evergreen/config.yml

Lines changed: 122 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -44,50 +44,56 @@ functions:
4444
params:
4545
working_dir: "src"
4646
script: |
47-
# Get the current unique version of this checkout
48-
if [ "${is_patch}" = "true" ]; then
49-
CURRENT_VERSION=$(git describe)-patch-${version_id}
50-
else
51-
CURRENT_VERSION=latest
52-
fi
53-
54-
export DRIVERS_TOOLS="$(pwd)/../drivers-tools"
55-
56-
export MONGO_ORCHESTRATION_HOME="$DRIVERS_TOOLS/.evergreen/orchestration"
57-
export MONGODB_BINARIES="$DRIVERS_TOOLS/mongodb/bin"
58-
export UPLOAD_BUCKET="${project}"
59-
export PROJECT_DIRECTORY="$(pwd)"
60-
61-
cat <<EOT > expansion.yml
62-
CURRENT_VERSION: "$CURRENT_VERSION"
63-
DRIVERS_TOOLS: "$DRIVERS_TOOLS"
64-
MONGO_ORCHESTRATION_HOME: "$MONGO_ORCHESTRATION_HOME"
65-
MONGODB_BINARIES: "$MONGODB_BINARIES"
66-
UPLOAD_BUCKET: "$UPLOAD_BUCKET"
67-
PROJECT_DIRECTORY: "$PROJECT_DIRECTORY"
68-
PREPARE_SHELL: |
69-
set -o errexit
70-
set -o xtrace
71-
export DRIVERS_TOOLS="$DRIVERS_TOOLS"
72-
export MONGO_ORCHESTRATION_HOME="$MONGO_ORCHESTRATION_HOME"
73-
export MONGODB_BINARIES="$MONGODB_BINARIES"
74-
export UPLOAD_BUCKET="$UPLOAD_BUCKET"
75-
export PROJECT_DIRECTORY="$PROJECT_DIRECTORY"
76-
77-
export TMPDIR="$MONGO_ORCHESTRATION_HOME/db"
78-
export PATH="$MONGODB_BINARIES:$PATH"
79-
export PROJECT="${project}"
80-
81-
export MONGODB_VERSION=${VERSION}
82-
export TOPOLOGY=${TOPOLOGY}
83-
export SINGLE_MONGOS=${SINGLE_MONGOS}
84-
export AUTH=${AUTH}
85-
export SSL=${SSL}
86-
export APP_TESTS=${APP_TESTS}
87-
export DOCKER_DISTRO=${DOCKER_DISTRO}
88-
EOT
89-
# See what we've done
90-
cat expansion.yml
47+
# Get the current unique version of this checkout
48+
if [ "${is_patch}" = "true" ]; then
49+
CURRENT_VERSION=$(git describe)-patch-${version_id}
50+
else
51+
CURRENT_VERSION=latest
52+
fi
53+
54+
export DRIVERS_TOOLS="$(pwd)/.mod/drivers-evergreen-tools"
55+
56+
export MONGO_ORCHESTRATION_HOME="$DRIVERS_TOOLS/.evergreen/orchestration"
57+
export MONGODB_BINARIES="$DRIVERS_TOOLS/mongodb/bin"
58+
export UPLOAD_BUCKET="${project}"
59+
export PROJECT_DIRECTORY="$(pwd)"
60+
61+
cat <<EOT > expansion.yml
62+
CURRENT_VERSION: "$CURRENT_VERSION"
63+
DRIVERS_TOOLS: "$DRIVERS_TOOLS"
64+
MONGO_ORCHESTRATION_HOME: "$MONGO_ORCHESTRATION_HOME"
65+
MONGODB_BINARIES: "$MONGODB_BINARIES"
66+
UPLOAD_BUCKET: "$UPLOAD_BUCKET"
67+
PROJECT_DIRECTORY: "$PROJECT_DIRECTORY"
68+
PREPARE_SHELL: |
69+
set -o errexit
70+
set -o xtrace
71+
export DRIVERS_TOOLS="$DRIVERS_TOOLS"
72+
export MONGO_ORCHESTRATION_HOME="$MONGO_ORCHESTRATION_HOME"
73+
export MONGODB_BINARIES="$MONGODB_BINARIES"
74+
export UPLOAD_BUCKET="$UPLOAD_BUCKET"
75+
export PROJECT_DIRECTORY="$PROJECT_DIRECTORY"
76+
77+
export TMPDIR="$MONGO_ORCHESTRATION_HOME/db"
78+
export PATH="$MONGODB_BINARIES:$PATH"
79+
export PROJECT="${project}"
80+
81+
export MONGODB_VERSION="${VERSION}"
82+
export TOPOLOGY="${TOPOLOGY}"
83+
export SINGLE_MONGOS="${SINGLE_MONGOS}"
84+
export AUTH="${AUTH}"
85+
export SSL="${SSL}"
86+
export APP_TESTS="${APP_TESTS}"
87+
export DOCKER_DISTRO="${DOCKER_DISTRO}"
88+
export RVM_RUBY="${RVM_RUBY}"
89+
export RAILS="${RAILS}"
90+
export DRIVER="${DRIVER}"
91+
export I18N="${I18N}"
92+
export TEST_I18N_FALLBACKS="${TEST_I18N_FALLBACKS}"
93+
export FLE="${FLE}"
94+
EOT
95+
# See what we've done
96+
cat expansion.yml
9197
9298
# Load the expansion file to make an evergreen variable with the current unique version
9399
- command: expansions.update
@@ -266,7 +272,7 @@ functions:
266272
${PREPARE_SHELL}
267273
env \
268274
MONGODB_URI="${MONGODB_URI}" \
269-
TOPOLOGY=${TOPOLOGY} \
275+
TOPOLOGY="${TOPOLOGY}" \
270276
RVM_RUBY="${RVM_RUBY}" \
271277
RAILS="${RAILS}" \
272278
DRIVER="${DRIVER}" \
@@ -307,10 +313,66 @@ post:
307313
#- func: "upload test results"
308314
- func: "upload test results to s3"
309315

316+
task_groups:
317+
- name: testatlas_task_group
318+
setup_group_can_fail_task: true
319+
setup_group_timeout_secs: 1800 # 30 minutes
320+
setup_group:
321+
- func: fetch source
322+
- func: create expansions
323+
- command: shell.exec
324+
params:
325+
shell: "bash"
326+
working_dir: "src"
327+
script: |
328+
${PREPARE_SHELL}
329+
330+
DRIVERS_ATLAS_PUBLIC_API_KEY="${DRIVERS_ATLAS_PUBLIC_API_KEY}" \
331+
DRIVERS_ATLAS_PRIVATE_API_KEY="${DRIVERS_ATLAS_PRIVATE_API_KEY}" \
332+
DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \
333+
DRIVERS_ATLAS_LAMBDA_USER="${DRIVERS_ATLAS_LAMBDA_USER}" \
334+
DRIVERS_ATLAS_LAMBDA_PASSWORD="${DRIVERS_ATLAS_LAMBDA_PASSWORD}" \
335+
LAMBDA_STACK_NAME="dbx-ruby-lambda" \
336+
MONGODB_VERSION="7.0" \
337+
task_id="${task_id}" \
338+
execution="${execution}" \
339+
$DRIVERS_TOOLS/.evergreen/atlas/setup-atlas-cluster.sh
340+
- command: expansions.update
341+
params:
342+
file: src/atlas-expansion.yml
343+
teardown_group:
344+
- command: shell.exec
345+
params:
346+
shell: "bash"
347+
working_dir: "src"
348+
script: |
349+
${PREPARE_SHELL}
350+
351+
DRIVERS_ATLAS_PUBLIC_API_KEY="${DRIVERS_ATLAS_PUBLIC_API_KEY}" \
352+
DRIVERS_ATLAS_PRIVATE_API_KEY="${DRIVERS_ATLAS_PRIVATE_API_KEY}" \
353+
DRIVERS_ATLAS_GROUP_ID="${DRIVERS_ATLAS_GROUP_ID}" \
354+
LAMBDA_STACK_NAME="dbx-ruby-lambda" \
355+
task_id="${task_id}" \
356+
execution="${execution}" \
357+
$DRIVERS_TOOLS/.evergreen/atlas/teardown-atlas-cluster.sh
358+
tasks:
359+
- test-full-atlas-task
360+
310361
tasks:
311362
- name: "test"
312363
commands:
313364
- func: "run tests"
365+
- name: "test-full-atlas-task"
366+
commands:
367+
- command: shell.exec
368+
type: test
369+
params:
370+
working_dir: "src"
371+
shell: "bash"
372+
script: |
373+
${PREPARE_SHELL}
374+
MONGODB_URI="${MONGODB_URI}" \
375+
.evergreen/run-tests-atlas-full.sh
314376
axes:
315377
- id: "mongodb-version"
316378
display_name: MongoDB Version
@@ -432,13 +494,16 @@ axes:
432494
- id: "os"
433495
display_name: OS
434496
values:
497+
- id: actual-ubuntu-22.04
498+
display_name: "Ubuntu 22.04"
499+
run_on: ubuntu2204-small
435500
- id: ubuntu-18.04
436501
display_name: "Ubuntu 18.04"
437502
run_on: ubuntu2004-small
438503
variables:
439504
DOCKER_DISTRO: ubuntu1804
440505
- id: ubuntu-22.04
441-
display_name: "Ubuntu 20.04"
506+
display_name: "Ubuntu 22.04"
442507
run_on: ubuntu2004-small
443508
variables:
444509
DOCKER_DISTRO: ubuntu2204
@@ -682,7 +747,7 @@ buildvariants:
682747
rails: ['7.0']
683748
os: ubuntu-22.04
684749
fle: helper
685-
display_name: "${rails}, ${driver}, ${mongodb-version}"
750+
display_name: "${rails}, ${driver}, ${mongodb-version} (FLE ${fle})"
686751
tasks:
687752
- name: "test"
688753

@@ -809,3 +874,13 @@ buildvariants:
809874
display_name: "FLE: ${rails}, ${driver}, ${mongodb-version}"
810875
tasks:
811876
- name: "test"
877+
878+
- matrix_name: atlas-full
879+
matrix_spec:
880+
ruby: ruby-3.2
881+
os: actual-ubuntu-22.04
882+
auth: auth
883+
ssl: ssl
884+
display_name: "Atlas (Full)"
885+
tasks:
886+
- name: testatlas_task_group

.evergreen/config/axes.yml.erb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,16 @@ axes:
119119
- id: "os"
120120
display_name: OS
121121
values:
122+
- id: actual-ubuntu-22.04
123+
display_name: "Ubuntu 22.04"
124+
run_on: ubuntu2204-small
122125
- id: ubuntu-18.04
123126
display_name: "Ubuntu 18.04"
124127
run_on: ubuntu2004-small
125128
variables:
126129
DOCKER_DISTRO: ubuntu1804
127130
- id: ubuntu-22.04
128-
display_name: "Ubuntu 20.04"
131+
display_name: "Ubuntu 22.04"
129132
run_on: ubuntu2004-small
130133
variables:
131134
DOCKER_DISTRO: ubuntu2204

0 commit comments

Comments
 (0)