Skip to content
Snippets Groups Projects
Unverified Commit 682ed04b authored by Nemanja Glumac's avatar Nemanja Glumac Committed by GitHub
Browse files

Migrate Presto JDBC driver test to GitHub Actions (#27164)

* Remove Presto 186 config

We've already migrated it to GitHub actions.

* Migrate Presto JDBC driver test to GitHub Actions

* Wait for port to be ready

* Try `presto-jdbc` driver

* Wait for port before creating certificates
parent a0d9e138
No related branches found
No related tags found
No related merge requests found
......@@ -45,36 +45,6 @@ executors:
- image: metabase/qa-databases:mongo-sample-5.0
command: mongod --dbpath /data/db2/ --tlsMode requireTLS --tlsCertificateKeyFile /etc/mongo/metamongo.pem --tlsCAFile /etc/mongo/metaca.crt
presto-186:
working_directory: /home/circleci/metabase/metabase/
docker:
- image: metabase/ci:java-11-clj-1.11.0.1100.04-2022-build
- image: metabase/presto-mb-ci:0.186
environment:
JAVA_TOOL_OPTIONS: "-Xmx2g"
# Run instance with 8GB or RAM instead of the default 4GB for medium instances. The Presto Docker image runs
# OOM sometimes with the default medium size.
resource_class: large
presto-jdbc-env:
working_directory: /home/circleci/metabase/metabase/
docker:
- image: metabase/ci:java-11-clj-1.11.0.1100.04-2022-build
- image: metabase/presto-mb-ci:latest # version 0.254
environment:
JAVA_TOOL_OPTIONS: "-Xmx2g"
MB_PRESTO_JDBC_TEST_CATALOG: test_data
MB_PRESTO_JDBC_TEST_HOST: localhost
MB_PRESTO_JDBC_TEST_PORT: 8443
MB_PRESTO_JDBC_TEST_SSL: true
MB_PRESTO_JDBC_TEST_USER: metabase
MB_PRESTO_JDBC_TEST_PASSWORD: metabase
MB_ENABLE_PRESTO_JDBC_DRIVER: true
MB_PRESTO_JDBC_TEST_ADDITIONAL_OPTIONS: >
SSLTrustStorePath=/tmp/cacerts-with-presto-ssl.jks&SSLTrustStorePassword=changeit
# (see above)
resource_class: large
########################################################################################################################
# MAP FRAGMENTS AND CACHE KEYS #
########################################################################################################################
......@@ -588,39 +558,3 @@ workflows:
MB_ORACLE_SSL_TEST_SSL_TRUSTSTORE_PATH=/home/circleci/metabase/metabase/resources/certificates/rds_root_ca_truststore.jks
MB_ORACLE_SSL_TEST_SSL_TRUSTSTORE_OPTIONS=local
MB_ORACLE_SSL_TEST_SSL_TRUSTSTORE_PASSWORD_VALUE=metabase
- test-driver:
name: be-tests-presto-jdbc-ee
requires:
- be-deps
e: presto-jdbc-env # specific env for running Presto JDBC tests (newer Presto version, SSL, etc.)
before-steps:
- wait-for-port:
port: 8443
- run:
name: Create temp cacerts file based on bundled JDK one
command: cp $JAVA_HOME/lib/security/cacerts /tmp/cacerts-with-presto-ssl.jks
- run:
name: Capture Presto server self signed CA
command: |
while [[ ! -s /tmp/presto-ssl-ca.pem ]];
do echo "Waiting to capture SSL CA" \
&& openssl s_client -connect localhost:8443 2>/dev/null </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/presto-ssl-ca.pem \
&& sleep 1; done
- run:
name: Convert Presto CA from PEM to DER
command: openssl x509 -outform der -in /tmp/presto-ssl-ca.pem -out /tmp/presto-ssl-ca.der
- run:
name: Add write permission on cacerts file
command: chmod u+w /tmp/cacerts-with-presto-ssl.jks
- run:
name: Import Presto CA into temp cacerts file
command: |
keytool -noprompt -import -alias presto -keystore /tmp/cacerts-with-presto-ssl.jks \
-storepass changeit -file /tmp/presto-ssl-ca.der -trustcacerts
after-steps:
- run:
name: Capture max memory usage
command: cat /sys/fs/cgroup/memory/memory.max_usage_in_bytes
when: always
driver: presto-jdbc
......@@ -377,6 +377,56 @@ jobs:
with:
junit-name: 'be-tests-presto-186-ee'
be-tests-presto-jdbc-ee:
if: github.event.pull_request.draft == false
runs-on: ubuntu-20.04
timeout-minutes: 60
env:
CI: 'true'
DRIVERS: presto-jdbc
MB_PRESTO_JDBC_TEST_CATALOG: test_data
MB_PRESTO_JDBC_TEST_HOST: localhost
MB_PRESTO_JDBC_TEST_PORT: 8443
MB_PRESTO_JDBC_TEST_SSL: true
MB_PRESTO_JDBC_TEST_USER: metabase
MB_PRESTO_JDBC_TEST_PASSWORD: metabase
MB_ENABLE_PRESTO_JDBC_DRIVER: true
MB_PRESTO_JDBC_TEST_ADDITIONAL_OPTIONS: 'SSLTrustStorePath=/tmp/cacerts-with-presto-ssl.jks&SSLTrustStorePassword=changeit'
services:
presto:
image: metabase/presto-mb-ci:latest # version 0.254
ports:
- "8443:8443"
env:
JAVA_TOOL_OPTIONS: "-Xmx2g"
steps:
- uses: actions/checkout@v3
- name: Wait for port ${{ env.MB_PRESTO_JDBC_TEST_PORT }} to be ready
run: while ! nc -z localhost ${{ env.MB_PRESTO_JDBC_TEST_PORT }}; do sleep 0.1; done
timeout-minutes: 15
- name: Create temp cacerts file based on bundled JDK one
run: cp $JAVA_HOME/lib/security/cacerts /tmp/cacerts-with-presto-ssl.jks
- name: Capture Presto server self signed CA
run: |
while [[ ! -s /tmp/presto-ssl-ca.pem ]];
do echo "Waiting to capture SSL CA" \
&& openssl s_client -connect localhost:8443 2>/dev/null </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/presto-ssl-ca.pem \
&& sleep 1; done
- name: Convert Presto CA from PEM to DER
run: openssl x509 -outform der -in /tmp/presto-ssl-ca.pem -out /tmp/presto-ssl-ca.der
- name: Add write permission on cacerts file
run: chmod u+w /tmp/cacerts-with-presto-ssl.jks
- name: Import Presto CA into temp cacerts file
run: |
keytool -noprompt -import -alias presto -keystore /tmp/cacerts-with-presto-ssl.jks \
-storepass changeit -file /tmp/presto-ssl-ca.der -trustcacerts
- name: Test Presto JDBC driver
uses: ./.github/actions/test-driver
with:
junit-name: 'be-tests-presto-jdbc-ee'
- name: Capture max memory usage
run: cat /sys/fs/cgroup/memory/memory.max_usage_in_bytes
be-tests-redshift-ee:
if: github.event.pull_request.draft == false
runs-on: ubuntu-20.04
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment