From 470cbe2eb6e05ed76fd9a36b470905bfc3fa0654 Mon Sep 17 00:00:00 2001 From: Cam Saul <1455846+camsaul@users.noreply.github.com> Date: Tue, 25 Feb 2020 17:11:42 -0800 Subject: [PATCH] Make wait-for-port and fetch-jdbc-driver generic CI steps (#11989) * Make wait-for-port and fetch-jdbc-driver generic CI steps [ci drivers] * Fix Druid tests failing on master [ci druid] (#11991) --- .circleci/config.yml | 86 ++++++++++++++++++++++++-------------------- .gitignore | 1 + 2 files changed, 48 insertions(+), 39 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c8094dbe585..6acab85b5c0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -186,8 +186,8 @@ commands: steps: - restore_cache: keys: - - be-deps-{{ checksum "project.clj" }} - - be-deps- + - be-deps-v2-{{ checksum "project.clj" }} + - be-deps-v2- restore-fe-deps-cache: steps: @@ -214,6 +214,32 @@ commands: command: yarn << parameters.command >> no_output_timeout: 5m + wait-for-port: + parameters: + port: + type: integer + steps: + - run: + name: Wait for port << parameters.port >> to be ready + command: > + while ! nc -z localhost << parameters.port >>; do sleep 0.1; done + no_output_timeout: 5m + + fetch-jdbc-driver: + parameters: + source: + type: string + dest: + type: string + steps: + - run: + name: Make plugins dir + command: mkdir /home/circleci/metabase/metabase/plugins + - run: + name: Download JDBC driver JAR << parameters.dest >> + command: > + wget --output-document=plugins/<< parameters.dest >> ${<< parameters.source >>} + no_output_timeout: 5m jobs: @@ -308,7 +334,7 @@ jobs: - restore-be-deps-cache - run: lein with-profile +include-all-drivers deps - save_cache: - key: be-deps-{{ checksum "project.clj" }} + key: be-deps-v2-{{ checksum "project.clj" }} paths: - /home/circleci/.m2 @@ -355,15 +381,9 @@ jobs: timeout: type: string default: 5m - jdbc-driver-source: - type: string - default: "" - jdbc-driver-dest: - type: string - default: "" - wait-for-port: - type: string - default: "" + before-steps: + type: steps + default: [] auto-retry: type: boolean default: false @@ -374,27 +394,7 @@ jobs: steps: - attach-workspace - restore-be-deps-cache - - when: - condition: << parameters.wait-for-port >> - steps: - - run: - name: Wait for << parameters.driver >> to be ready - command: > - /home/circleci/metabase/metabase/.circleci/skip-driver-tests.sh << parameters.driver >> || - while ! nc -z localhost << parameters.wait-for-port >>; do sleep 0.1; done - no_output_timeout: 5m - - when: - condition: << parameters.jdbc-driver-source >> - steps: - - run: - name: Make plugins dir - command: mkdir /home/circleci/metabase/metabase/plugins - - run: - name: Download << parameters.driver >> JDBC driver JAR - command: > - /home/circleci/metabase/metabase/.circleci/skip-driver-tests.sh << parameters.driver >> || - wget --output-document=plugins/<< parameters.jdbc-driver-dest >> ${<< parameters.jdbc-driver-source >>} - no_output_timeout: 5m + - steps: << parameters.before-steps >> - unless: condition: << parameters.auto-retry >> steps: @@ -724,8 +724,10 @@ workflows: name: be-tests-oracle requires: - be-tests - jdbc-driver-source: ORACLE_JDBC_JAR - jdbc-driver-dest: ojdbc8.jar + before-steps: + - fetch-jdbc-driver: + source: ORACLE_JDBC_JAR + dest: ojdbc8.jar driver: oracle - test-driver: @@ -749,7 +751,9 @@ workflows: requires: - be-tests e: presto - wait-for-port: "8080" + before-steps: + - wait-for-port: + port: 8080 driver: presto - test-driver: @@ -771,7 +775,9 @@ workflows: requires: - be-tests e: sparksql - wait-for-port: "10000" + before-steps: + - wait-for-port: + port: 10000 driver: sparksql - test-driver: @@ -792,8 +798,10 @@ workflows: requires: - be-tests e: vertica - jdbc-driver-source: VERTICA_JDBC_JAR - jdbc-driver-dest: vertica-jdbc-7.1.2-0.jar + before-steps: + - fetch-jdbc-driver: + source: VERTICA_JDBC_JAR + dest: vertica-jdbc-7.1.2-0.jar driver: vertica auto-retry: true diff --git a/.gitignore b/.gitignore index 3a9d6edb55d..8f612c64caf 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ /node_modules/ /osx-artifacts /plugins +/process.yml /reset-password-artifacts /resources/frontend_client/app/dist/ /resources/frontend_client/app/locales -- GitLab