From 6c29f95c611ec76ee4cfe845bb1b478768c9c473 Mon Sep 17 00:00:00 2001 From: Moritz Kiefer Date: Fri, 5 Feb 2021 17:36:56 +0100 Subject: [PATCH] Add a CI job for testing against Oracle DB (#8763) * Add a CI job for testing against Oracle DB changelog_begin changelog_end * . changelog_begin changelog_end * . changelog_begin changelog_end * . changelog_begin changelog_end * . changelog_begin changelog_end * . changelog_begin changelog_end * . changelog_begin changelog_end * . changelog_begin changelog_end * Cleanup changelog_begin changelog_end * . changelog_begin changelog_end * debug changelog_begin changelog_end * no debugging changelog_begin changelog_end --- ci/build.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/ci/build.yml b/ci/build.yml index 212c1cbb2b..936cfc1a34 100644 --- a/ci/build.yml +++ b/ci/build.yml @@ -201,6 +201,67 @@ jobs: trigger_sha: '$(trigger_sha)' - template: report-end.yml +- job: Linux_oracle + dependsOn: + - da_ghc_lib + timeoutInMinutes: 360 + pool: + name: 'ubuntu_20_04' + demands: assignment -equals default + steps: + - template: report-start.yml + - checkout: self + - bash: ci/dev-env-install.sh + displayName: 'Build/Install the Developer Environment' + - template: clean-up.yml + - bash: | + source dev-env/lib/ensure-nix + ci/dev-env-push.py + displayName: 'Push Developer Environment build results' + condition: eq(variables['System.PullRequest.IsFork'], 'False') + env: + # to upload to the Nix cache + GOOGLE_APPLICATION_CREDENTIALS_CONTENT: $(GOOGLE_APPLICATION_CREDENTIALS_CONTENT) + NIX_SECRET_KEY_CONTENT: $(NIX_SECRET_KEY_CONTENT) + - bash: ci/configure-bazel.sh + displayName: 'Configure Bazel' + env: + IS_FORK: $(System.PullRequest.IsFork) + # to upload to the bazel cache + GOOGLE_APPLICATION_CREDENTIALS_CONTENT: $(GOOGLE_APPLICATION_CREDENTIALS_CONTENT) + - bash: | + set -euo pipefail + eval "$(./dev-env/bin/dade-assist)" + export ORACLE_PORT=1521 + export ORACLE_PWD=hunter2 + docker login --username $ARTIFACTORY_USERNAME --password $ARTIFACTORY_PASSWORD digitalasset-daml-on-oracle-docker.jfrog.io + docker pull digitalasset-daml-on-oracle-docker.jfrog.io/oracle-xe-preloaded:2021-02-03-5a88b29 + # Cleanup stray containers that might still be running from + # another build that didn’t get shut down cleanly. + docker rm -f oracle || true + docker run -d --rm --name oracle -p $ORACLE_PORT:1521 -e ORACLE_PWD=$ORACLE_PWD digitalasset-daml-on-oracle-docker.jfrog.io/oracle-xe-preloaded:2021-02-03-5a88b29 + function cleanup() { + docker rm -f oracle + } + trap cleanup EXIT + testConnection() { + docker exec oracle bash -c 'sqlplus -L system/hunter2@//localhost:1521/XEPDB1 <<< "select * from dba_users;"; exit $?' >/dev/null + } + until testConnection + do + echo "Could not connect to Oracle, trying again..." + sleep 1 + done + # TODO Actually run some tests once we have them. + env: + ARTIFACTORY_USERNAME: $(ARTIFACTORY_USERNAME) + ARTIFACTORY_PASSWORD: $(ARTIFACTORY_PASSWORD) + displayName: 'Build' + - template: tell-slack-failed.yml + parameters: + trigger_sha: '$(trigger_sha)' + - template: report-end.yml + - job: compatibility_ts_libs dependsOn: - da_ghc_lib