From 5cbd5fa42c65492a1101136ea944a096b1a50802 Mon Sep 17 00:00:00 2001 From: bailey Date: Tue, 13 May 2025 11:13:54 -0600 Subject: [PATCH 1/4] Commit all changes with precommit --- .evergreen/config.yml | 29 ++++++++++++ .evergreen/setup-remote.sh | 3 ++ langchain-js/config.env | 3 ++ langchain-js/indexes/langchain_test.json | 18 ++++++++ langchain-js/run.sh | 57 ++++++++++++++++++++++++ 5 files changed, 110 insertions(+) create mode 100644 langchain-js/config.env create mode 100644 langchain-js/indexes/langchain_test.json create mode 100644 langchain-js/run.sh diff --git a/.evergreen/config.yml b/.evergreen/config.yml index a9bb287..ff3d1a3 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -250,6 +250,25 @@ tasks: - func: "fetch repo" - func: "execute tests" + - name: test-langchain-js-local + tags: [local] + commands: + - func: "fetch repo" + - func: "execute tests" + - command: attach.xunit_results + params: + file: src/langchain-js/langchainjs/libs/langchain-mongodb/results.xml + + - name: test-langchain-js-remote + tags: [remote] + commands: + - func: "fetch repo" + - func: "setup remote atlas" + - func: "execute tests" + - command: attach.xunit_results + params: + file: src/langchain-js/langchainjs/libs/langchain-mongodb/results.xml + buildvariants: - name: test-semantic-kernel-python-rhel display_name: Semantic-Kernel RHEL Python @@ -369,3 +388,13 @@ buildvariants: - ubuntu2204-small tasks: - name: test-langchaingo-local + + - name: test-langchain-js-ubuntu + display_name: LangchainJS Ubuntu2204 + expansions: + DIR: langchain-js + run_on: + - ubuntu2204-small + tasks: + - name: test-langchain-js-local + - name: test-langchain-js-remote diff --git a/.evergreen/setup-remote.sh b/.evergreen/setup-remote.sh index 41237b5..10691d3 100644 --- a/.evergreen/setup-remote.sh +++ b/.evergreen/setup-remote.sh @@ -41,6 +41,9 @@ case $DIR in pymongo-voyageai) MONGODB_URI=$VOYAGEAI_MONGODB_URI ;; + langchain-js) + MONGODB_URI=$LANGCHAIN_MONGODB_URI + ;; *) echo "Missing config in setup-remote.sh for DIR: $DIR" exit 1 diff --git a/langchain-js/config.env b/langchain-js/config.env new file mode 100644 index 0000000..6c1a908 --- /dev/null +++ b/langchain-js/config.env @@ -0,0 +1,3 @@ +REPO_NAME=langchainjs +CLONE_URL="https://github.com/baileympearson/langchainjs.git" +DATABASE=langchain_test_db diff --git a/langchain-js/indexes/langchain_test.json b/langchain-js/indexes/langchain_test.json new file mode 100644 index 0000000..ff9864f --- /dev/null +++ b/langchain-js/indexes/langchain_test.json @@ -0,0 +1,18 @@ +{ + "name": "default", + "type": "search", + "mappings": { + "fields": { + "e": { + "type": "number" + }, + "embedding": { + "dimensions": 1536, + "similarity": "euclidean", + "type": "knnVector" + } + } + }, + "database": "langchain", + "collectionName": "test" +} \ No newline at end of file diff --git a/langchain-js/run.sh b/langchain-js/run.sh new file mode 100644 index 0000000..c50db87 --- /dev/null +++ b/langchain-js/run.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +set -o errexit + +# TODO: remove before merging +git branch +git switch use-local-atlas +git log -n 1 + +setup_remote_atlas() { + # Get the MONGODB_URI and OPENAI_API_KEY. + SCRIPT_DIR=$(realpath "$(dirname ${BASH_SOURCE[0]})") + ROOT_DIR=$(dirname $SCRIPT_DIR) + + if [[ -f "$ROOT_DIR/env.sh" ]]; then + echo "Sourcing $ROOT_DIR/env.sh" + source $ROOT_DIR/env.sh + fi + + bash ../../.evergreen/fetch-secrets.sh + source secrets-export.sh + + if [[ -n "$MONGODB_URI" ]]; then + export MONGODB_ATLAS_URI=$MONGODB_URI + fi + + echo "MONGODB_ATLAS_URI: $MONGODB_ATLAS_URI" +} + +setup_node_and_yarn() { + # setup node, npm and yarn + PATH=/opt/devtools/node22/bin:$(pwd)/bin:$PATH + npm_config_prefix=$(pwd) + export PATH + export npm_config_prefix + + npm install --global yarn +} + +setup_langchain_integration() { + cd libs/langchain-mongodb + + yarn install + yarn build + + yarn add --dev jest-junit + export JEST_JUNIT_OUTPUT_NAME=results.xml + + # optionally enable to debug local atlas in CI. + # export DEBUG=testcontainers* +} + +setup_remote_atlas +setup_node_and_yarn +setup_langchain_integration + +yarn test:int --reporters=default --reporters=jest-junit From 265f0bd7d604d5cd6656e8627ff8d98af7f722cc Mon Sep 17 00:00:00 2001 From: bailey Date: Wed, 14 May 2025 07:43:07 -0600 Subject: [PATCH 2/4] remove references to my fork --- langchain-js/config.env | 2 +- langchain-js/run.sh | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/langchain-js/config.env b/langchain-js/config.env index 6c1a908..4ce79d6 100644 --- a/langchain-js/config.env +++ b/langchain-js/config.env @@ -1,3 +1,3 @@ REPO_NAME=langchainjs -CLONE_URL="https://github.com/baileympearson/langchainjs.git" +CLONE_URL="https://github.com/langchain-ai/langchainjs.git" DATABASE=langchain_test_db diff --git a/langchain-js/run.sh b/langchain-js/run.sh index c50db87..cba18c5 100644 --- a/langchain-js/run.sh +++ b/langchain-js/run.sh @@ -2,11 +2,6 @@ set -o errexit -# TODO: remove before merging -git branch -git switch use-local-atlas -git log -n 1 - setup_remote_atlas() { # Get the MONGODB_URI and OPENAI_API_KEY. SCRIPT_DIR=$(realpath "$(dirname ${BASH_SOURCE[0]})") From 1b42c0072d16f68dfb179c53dc7da8ba01f0a735 Mon Sep 17 00:00:00 2001 From: bailey Date: Tue, 27 May 2025 14:23:41 -0600 Subject: [PATCH 3/4] fix CI --- langchain-js/config.env | 2 +- langchain-js/run.sh | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/langchain-js/config.env b/langchain-js/config.env index 4ce79d6..fdb4833 100644 --- a/langchain-js/config.env +++ b/langchain-js/config.env @@ -1,3 +1,3 @@ REPO_NAME=langchainjs -CLONE_URL="https://github.com/langchain-ai/langchainjs.git" +REPO_ORG=langchain-ai DATABASE=langchain_test_db diff --git a/langchain-js/run.sh b/langchain-js/run.sh index cba18c5..41d639c 100644 --- a/langchain-js/run.sh +++ b/langchain-js/run.sh @@ -1,5 +1,4 @@ #!/bin/bash - set -o errexit setup_remote_atlas() { @@ -12,14 +11,12 @@ setup_remote_atlas() { source $ROOT_DIR/env.sh fi - bash ../../.evergreen/fetch-secrets.sh + bash "$ROOT_DIR/.evergreen/fetch-secrets.sh" source secrets-export.sh if [[ -n "$MONGODB_URI" ]]; then export MONGODB_ATLAS_URI=$MONGODB_URI fi - - echo "MONGODB_ATLAS_URI: $MONGODB_ATLAS_URI" } setup_node_and_yarn() { From bba4db9897d49747be56613bffe92c0831c4850d Mon Sep 17 00:00:00 2001 From: bailey Date: Wed, 28 May 2025 08:09:52 -0600 Subject: [PATCH 4/4] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f384b81..2f28ce6 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ Test execution flow is defined in `.evergreen/config.yml`. The test pipeline's c - `DIR` -- The subdirectory where the tasks will run -- `run_on` -- Specified platform to run on. `rhel87-small` should be used by default. Any other distro may fail Atlas CLI setup. +- `run_on` -- Specified platform to run on. `rhel87-small` or `ubuntu2204-small` should be used by default. Any other distro may fail Atlas CLI setup. - `tasks` -- Tasks to run. See below for more details - `cron` -- The tests are run via a cron job on a nightly cadence. This can be modified by setting a different cadence. Cron jobs can be scheduled using [cron syntax](https://crontab.guru/#0_0_*_*_*)