diff --git a/.evergreen.yml b/.evergreen.yml index ec442acefbf..dbee22d522b 100644 --- a/.evergreen.yml +++ b/.evergreen.yml @@ -304,6 +304,46 @@ functions: DEBUG=${debug} MONGODB_VERSION=${mongodb_version|4} npm run --unsafe-perm --workspace compass-e2e-tests test-packaged-ci + test-connectivity: + - command: shell.exec + # Fail the task if it's idle for 10 mins + timeout_secs: 600 + params: + working_dir: src + shell: bash + env: + <<: *compass-env + COMPASS_SKIP_KERBEROS_TESTS: 'true' + COMPASS_RUN_DOCKER_TESTS: 'true' + DEBUG: ${debug} + script: | + set -e + # Load environment variables + eval $(.evergreen/print-compass-env.sh) + + git clone -b v1.2.4 https://github.com/mongodb-js/devtools-docker-test-envs.git test-envs + docker-compose -f test-envs/docker/enterprise/docker-compose.yaml up -d + docker-compose -f test-envs/docker/ldap/docker-compose.yaml up -d + docker-compose -f test-envs/docker/scram/docker-compose.yaml up -d + docker-compose -f test-envs/docker/sharded/docker-compose.yaml up -d + docker-compose -f test-envs/docker/ssh/docker-compose.yaml up -d + docker-compose -f test-envs/docker/tls/docker-compose.yaml up -d + docker-compose -f test-envs/docker/kerberos/docker-compose.yaml up -d + + stop_all_docker_containers() { + docker-compose -f test-envs/docker/enterprise/docker-compose.yaml down -v --remove-orphans + docker-compose -f test-envs/docker/ldap/docker-compose.yaml down -v --remove-orphans + docker-compose -f test-envs/docker/scram/docker-compose.yaml down -v --remove-orphans + docker-compose -f test-envs/docker/sharded/docker-compose.yaml down -v --remove-orphans + docker-compose -f test-envs/docker/ssh/docker-compose.yaml down -v --remove-orphans + docker-compose -f test-envs/docker/tls/docker-compose.yaml down -v --remove-orphans + docker-compose -f test-envs/docker/kerberos/docker-compose.yaml down -v --remove-orphans + } + + trap "stop_all_docker_containers" ERR + npm run test-connectivity --workspace mongodb-data-service + stop_all_docker_containers + save-windows-artifacts: - <<: *save-artifact params: @@ -523,6 +563,16 @@ tasks: compass_distribution: compass-readonly variants: [ubuntu] + - name: test-connectivity + tags: ['required-for-publish'] + commands: + - func: prepare + - func: install + - func: bootstrap + - func: test-connectivity + vars: + debug: 'compass*,electron*,hadron*,mongo*' + # copied as test-packaged-app-macos due to depends_on variation - name: test-packaged-app tags: ['required-for-publish'] @@ -712,6 +762,12 @@ buildvariants: # everything in one go - name: publish + - name: ubuntu_connectivity_tests + display_name: Connectivity Tests + run_on: ubuntu1604-large + tasks: + - name: test-connectivity + - name: rhel display_name: RHEL run_on: rhel76-large diff --git a/packages/data-service/package.json b/packages/data-service/package.json index 5c7d6b28add..d5fd1071a34 100644 --- a/packages/data-service/package.json +++ b/packages/data-service/package.json @@ -45,6 +45,7 @@ "check-ci": "npm run check", "pretest": "mongodb-runner start --port=27018 && node ../../scripts/rebuild.js keytar", "test": "mocha", + "test-connectivity": "mocha ./src/connect.spec.ts", "posttest": "mongodb-runner stop --port=27018", "test-cov": "nyc -x \"**/*.spec.*\" --reporter=lcov --reporter=text --reporter=html npm run test", "test-watch": "npm run test -- --watch", diff --git a/packages/data-service/src/connect.spec.ts b/packages/data-service/src/connect.spec.ts index d0d5fd18649..bb4f2caaeb5 100644 --- a/packages/data-service/src/connect.spec.ts +++ b/packages/data-service/src/connect.spec.ts @@ -581,6 +581,12 @@ describe('connect', function () { }); describe('kerberos', function () { + before(function () { + if (process.env.COMPASS_SKIP_KERBEROS_TESTS === 'true') { + this.skip(); + } + }); + it('connects to kerberos', async function () { await testConnection(envs.getConnectionOptions('kerberos'), { authenticatedUserRoles: [