version: '3.8'

services:
  dbt_audience:
    build:
      context: .
      target: deploy
    volumes:
      - .:/var/app

  lint-and-test:
    build:
      context: .
      target: lint-and-test
    environment:
      DBT_PROFILES_DIR: profiles/snowflake_auth
      SNOWFLAKE_ACCOUNT: ${SNOWFLAKE_ACCOUNT}
      SNOWFLAKE_USER: ${SNOWFLAKE_USER}
      SNOWFLAKE_ROLE: ${SNOWFLAKE_ROLE}
      SNOWFLAKE_DATABASE: ${SNOWFLAKE_DATABASE}
      SNOWFLAKE_SCHEMA: ${SNOWFLAKE_SCHEMA}
      SNOWFLAKE_WAREHOUSE: ${SNOWFLAKE_WAREHOUSE}
      SNOWFLAKE_PRIVATE_KEY: ${SNOWFLAKE_PRIVATE_KEY}
      SNOWFLAKE_PRIVATE_KEY_PASSPHRASE: ${SNOWFLAKE_PRIVATE_KEY_PASSPHRASE}
      DBT_SELECT_MODELS: ${DBT_SELECT_MODELS}
      DBT_FULL_REFRESH: ${DBT_FULL_REFRESH}
      POST_SNAPSHOT_MODELS: ${POST_SNAPSHOT_MODELS}
      DISABLE_DEV_SEGMENTATION: ${DISABLE_DEV_SEGMENTATION}
      EXCLUDED_MODELS: ${EXCLUDED_MODELS}
    volumes:
      - .:/var/app

  dbt-test:
    build:
      context: .
      target: dbt-test
    environment:
      DBT_PROFILES_DIR: profiles/snowflake_auth
      SNOWFLAKE_ACCOUNT: ${SNOWFLAKE_ACCOUNT}
      SNOWFLAKE_USER: ${SNOWFLAKE_USER}
      SNOWFLAKE_ROLE: ${SNOWFLAKE_ROLE}
      SNOWFLAKE_DATABASE: ${SNOWFLAKE_DATABASE}
      SNOWFLAKE_SCHEMA: ${SNOWFLAKE_SCHEMA}
      SNOWFLAKE_WAREHOUSE: ${SNOWFLAKE_WAREHOUSE}
      SNOWFLAKE_PRIVATE_KEY: ${SNOWFLAKE_PRIVATE_KEY}
      SNOWFLAKE_PRIVATE_KEY_PASSPHRASE: ${SNOWFLAKE_PRIVATE_KEY_PASSPHRASE}
      DBT_TARGET: ${DBT_TARGET}
    volumes:
      - .:/var/app

  invoke-validate-email-domains-lambda:
    build:
      context: .
      args:
        ENVIRONMENT: ${ENVIRONMENT}
        LAMBDA_ACCOUNT_ID: ${LAMBDA_ACCOUNT_ID}
      target: invoke-validate-email-domains-lambda
    environment:
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
      - AWS_DEFAULT_REGION
    volumes:
      - .:/var/app

  clean-artist-cache:
    build:
      context: .
      target: clean-artist-cache
    environment:
      - REDIS_ARTIST_PATTERN
      - REDIS_HOST
    volumes:
      - .:/var/app
