From 9d6c7ffd1f7555139a65128b160b54de194cca73 Mon Sep 17 00:00:00 2001 From: Luis Paolini <paoliniluis@gmail.com> Date: Mon, 24 Jan 2022 17:26:13 -0300 Subject: [PATCH] Use matrixes to reduce complexity (#19490) * Use matrixes to reduce complexity * Cam's suggestions --- .circleci/config.yml | 155 +++++++++++++++---------------------------- 1 file changed, 54 insertions(+), 101 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c6dd699955c..d86f5c67602 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -683,6 +683,12 @@ jobs: skip-when-no-change: type: boolean default: false + java-version: + type: string + default: "" + version: + type: string + default: "" <<: *Params executor: << parameters.e >> steps: @@ -745,6 +751,9 @@ jobs: test-args: type: string default: "" + version: + type: string + default: "" executor: << parameters.e >> steps: - attach-workspace @@ -1063,31 +1072,16 @@ workflows: - checkout - clojure: - name: be-tests-<< matrix.edition >> - requires: - - be-deps - e: java-8 - clojure-args: -X:dev:ci:test - skip-when-no-change: true - <<: *Matrix - - - clojure: - name: be-tests-java-11-<< matrix.edition >> - requires: - - be-deps - e: java-11 - clojure-args: -X:dev:ci:test - skip-when-no-change: true - <<: *Matrix - - - clojure: - name: be-tests-java-16-<< matrix.edition >> + matrix: + parameters: + edition: ["ee", "oss"] + java-version: ["java-8", "java-11", "java-16"] + name: be-tests-<< matrix.java-version >>-<< matrix.edition >> requires: - be-deps - e: java-16 + e: << matrix.java-version >> clojure-args: -X:dev:ci:test skip-when-no-change: true - <<: *Matrix - clojure: name: be-linter-cloverage @@ -1103,69 +1097,61 @@ workflows: skip-when-no-change: true - test-driver: - name: be-tests-bigquery-ee + matrix: + parameters: + driver: ["bigquery", "bigquery-cloud-sdk", "googleanalytics", "sqlite"] + name: be-tests-<< matrix.driver >>-ee requires: - - be-tests-ee - driver: bigquery + - be-tests-java-8-ee + driver: << matrix.driver >> - test-driver: - name: be-tests-bigquery-cloud-sdk-ee + matrix: + parameters: + driver: ["sqlserver", "druid"] + name: be-tests-<< matrix.driver >>-ee requires: - - be-tests-ee - driver: bigquery-cloud-sdk + - be-tests-java-8-ee + e: << matrix.driver >> + driver: << matrix.driver >> - test-driver: name: be-google-related-drivers-classpath-test requires: - - be-tests-ee + - be-tests-java-8-ee driver: googleanalytics,bigquery,bigquery-cloud-sdk test-args: >- :only "[metabase.query-processor-test.expressions-test metabase.driver.google-test metabase.driver.googleanalytics-test]" - test-driver: - name: be-tests-druid-ee - requires: - - be-tests-ee - e: druid - driver: druid - - - test-driver: - name: be-tests-googleanalytics-ee - requires: - - be-tests-ee - driver: googleanalytics - - - test-driver: - name: be-tests-mongo-ee - description: "(Mongo 4.0)" - requires: - - be-tests-ee - e: mongo-4-0 - driver: mongo - - - test-driver: - name: be-tests-mongo-latest-ee - description: "(Mongo latest)" + matrix: + parameters: + version: ["mongo-4-0", "mongo-latest"] + name: be-tests-<< matrix.version >>-ee + description: "(<< matrix.version >>)" requires: - - be-tests-ee - e: mongo-latest + - be-tests-java-8-ee + e: << matrix.version >> driver: mongo - test-driver: - name: be-tests-mysql-ee - description: "(MySQL 5.7)" + matrix: + parameters: + version: ["mysql-5-7", "mariadb-10-2", "mariadb-latest"] + name: be-tests-<< matrix.version >>-ee + description: "(<< matrix.version >>)" requires: - - be-tests-ee + - be-tests-java-8-ee e: - name: mysql-5-7 + name: << matrix.version >> driver: mysql - test-driver: name: be-tests-mysql-latest-ee description: "(MySQL latest)" requires: - - be-tests-ee + - be-tests-java-8-ee e: name: mysql-latest driver: mysql @@ -1182,28 +1168,10 @@ workflows: MB_MYSQL_SSL_TEST_USER=metabase MB_MYSQL_SSL_TEST_PASSWORD=$MYSQL_RDS_SSL_INSTANCE_PASSWORD - - test-driver: - name: be-tests-mariadb-ee - description: "(MariaDB 10.2)" - requires: - - be-tests-ee - e: - name: mariadb-10-2 - driver: mysql - - - test-driver: - name: be-tests-mariadb-latest-ee - description: "(MariaDB latest)" - requires: - - be-tests-ee - e: - name: mariadb-latest - driver: mysql - - test-driver: name: be-tests-oracle-ee requires: - - be-tests-ee + - be-tests-java-8-ee before-steps: - fetch-jdbc-driver: source: ORACLE_JDBC_JAR @@ -1224,7 +1192,7 @@ workflows: name: be-tests-postgres-ee description: "(9.6)" requires: - - be-tests-ee + - be-tests-java-8-ee e: postgres-9-6 driver: postgres @@ -1232,7 +1200,7 @@ workflows: name: be-tests-postgres-latest-ee description: "(Latest)" requires: - - be-tests-ee + - be-tests-java-8-ee e: postgres-latest driver: postgres extra-env: >- @@ -1243,7 +1211,7 @@ workflows: - test-driver: name: be-tests-presto-ee requires: - - be-tests-ee + - be-tests-java-8-ee e: presto-186 before-steps: - wait-for-port: @@ -1253,7 +1221,7 @@ workflows: - test-driver: name: be-tests-presto-jdbc-ee requires: - - be-tests-ee + - be-tests-java-8-ee e: presto-jdbc-env # specific env for running Presto JDBC tests (newer Presto version, SSL, etc.) before-steps: - wait-for-port: @@ -1289,44 +1257,31 @@ workflows: - test-driver: name: be-tests-redshift-ee requires: - - be-tests-ee + - be-tests-java-8-ee driver: redshift timeout: 15m - test-driver: name: be-tests-snowflake-ee requires: - - be-tests-ee + - be-tests-java-8-ee driver: snowflake timeout: 115m - test-driver: name: be-tests-sparksql-ee requires: - - be-tests-ee + - be-tests-java-8-ee e: sparksql before-steps: - wait-for-port: port: 10000 driver: sparksql - - test-driver: - name: be-tests-sqlite-ee - requires: - - be-tests-ee - driver: sqlite - - - test-driver: - name: be-tests-sqlserver-ee - requires: - - be-tests-ee - e: sqlserver - driver: sqlserver - - test-driver: name: be-tests-vertica-ee requires: - - be-tests-ee + - be-tests-java-8-ee e: vertica before-steps: - fetch-jdbc-driver: @@ -1403,14 +1358,12 @@ workflows: - wait-for-databases - fe-tests-cypress: - matrix: - parameters: - edition: ["ee", "oss"] name: percy-visual-tests-<< matrix.edition >> requires: - build-uberjar-<< matrix.edition >> cypress-group: "percy-visual-<< matrix.edition >>" test-files: "./frontend/test/metabase-visual/**/*.cy.spec.js" + <<: *Matrix - snowplow-deps: requires: -- GitLab