File tree Expand file tree Collapse file tree
packages/cubejs-testing-drivers Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66 "CUBEJS_CUBESTORE_HOST" : " store" ,
77 "CUBEJS_DB_TYPE" : " athena" ,
88 "CUBEJS_DB_EXPORT_BUCKET" : " s3://athena-drivers-tests-preaggs/bucket" ,
9- "CUBEJS_PRE_AGGREGATIONS_SCHEMA" : " drivers_tests_preaggs" ,
9+ "CUBEJS_PRE_AGGREGATIONS_SCHEMA" : " ${DRIVERS_TESTS_CUBEJS_PRE_AGGREGATIONS_SCHEMA:- drivers_tests_preaggs} " ,
1010 "CUBEJS_AWS_KEY" : " ${DRIVERS_TESTS_ATHENA_CUBEJS_AWS_KEY}" ,
1111 "CUBEJS_AWS_SECRET" : " ${DRIVERS_TESTS_ATHENA_CUBEJS_AWS_SECRET}" ,
1212 "CUBEJS_AWS_REGION" : " us-east-1" ,
Original file line number Diff line number Diff line change 77 "CUBEJS_CUBESTORE_HOST" : " store" ,
88 "CUBEJS_DB_TYPE" : " bigquery" ,
99 "CUBEJS_DB_NAME" : " test" ,
10- "CUBEJS_PRE_AGGREGATIONS_SCHEMA" : " dev_pre_aggregations" ,
10+ "CUBEJS_PRE_AGGREGATIONS_SCHEMA" : " ${DRIVERS_TESTS_CUBEJS_PRE_AGGREGATIONS_SCHEMA:- dev_pre_aggregations} " ,
1111 "CUBEJS_DB_BQ_PROJECT_ID" : " cube-open-source" ,
1212 "CUBEJS_DB_BQ_CREDENTIALS" : " ${DRIVERS_TESTS_CUBEJS_DB_BQ_CREDENTIALS}" ,
1313
Original file line number Diff line number Diff line change 7373 "CUBEJS_DB_DATABRICKS_TOKEN" : " ${DRIVERS_TESTS_CUBEJS_DB_DATABRICKS_TOKEN}" ,
7474 "CUBEJS_DB_DATABRICKS_URL" : " ${DRIVERS_TESTS_CUBEJS_DB_DATABRICKS_URL}" ,
7575 "CUBEJS_DB_DATABRICKS_ACCEPT_POLICY" : " true" ,
76- "CUBEJS_PRE_AGGREGATIONS_SCHEMA" : " drivers_tests_preaggs" ,
76+ "CUBEJS_PRE_AGGREGATIONS_SCHEMA" : " ${DRIVERS_TESTS_CUBEJS_PRE_AGGREGATIONS_SCHEMA:- drivers_tests_preaggs} " ,
7777 "CUBEJS_PG_SQL_PORT" : " 5656" ,
7878 "CUBEJS_SQL_USER" : " admin" ,
7979 "CUBEJS_SQL_PASSWORD" : " admin_password" ,
Original file line number Diff line number Diff line change 2222 "CUBEJS_DB_HOST" : " ${DRIVERS_TESTS_CUBEJS_DB_REDSHIFT_HOST}" ,
2323 "CUBEJS_DB_PORT" : " 5439" ,
2424 "CUBEJS_DB_NAME" : " dev" ,
25+ "CUBEJS_PRE_AGGREGATIONS_SCHEMA" : " ${DRIVERS_TESTS_CUBEJS_PRE_AGGREGATIONS_SCHEMA:-dev_pre_aggregations}" ,
2526 "CUBEJS_DB_USER" : " ${DRIVERS_TESTS_CUBEJS_DB_REDSHIFT_USER}" ,
2627 "CUBEJS_DB_PASS" : " ${DRIVERS_TESTS_CUBEJS_DB_REDSHIFT_PASS}" ,
2728 "CUBEJS_DB_MAX_POOL" : " 2" ,
Original file line number Diff line number Diff line change @@ -127,10 +127,19 @@ export async function runEnvironment(
127127 const { length } = val ;
128128
129129 if ( val . indexOf ( '${' ) === 0 && val . indexOf ( '}' ) === length - 1 ) {
130- const name = val . slice ( 2 , length - 1 ) . trim ( ) ;
130+ // Supports docker-compose style interpolation `${VAR}` and `${VAR:-default}`.
131+ // The `:-default` fallback lets shared-cloud fixtures point a value (e.g. the
132+ // pre-aggregations schema) at a per-run env var in CI while keeping the original
133+ // literal as the default for local/other runs where the var is unset.
134+ const expr = val . slice ( 2 , length - 1 ) . trim ( ) ;
135+ const sepIdx = expr . indexOf ( ':-' ) ;
136+ const name = ( sepIdx === - 1 ? expr : expr . slice ( 0 , sepIdx ) ) . trim ( ) ;
137+ const fallback = sepIdx === - 1 ? undefined : expr . slice ( sepIdx + 2 ) ;
131138 const value = process . env [ name ] ;
132139 if ( value ) {
133- process . env [ key ] = process . env [ name ] ;
140+ process . env [ key ] = value ;
141+ } else if ( fallback !== undefined ) {
142+ process . env [ key ] = fallback ;
134143 } else {
135144 throw new Error ( `Env variable ${ name } must be defined, because it's used as ${ key } ` ) ;
136145 }
You can’t perform that action at this time.
0 commit comments