---
services:
  integration-tests:
    build:
      context: .
      dockerfile: Dockerfile
      target: integration-tests
      args:
        AWS_ACCOUNT: ${AWS_ACCOUNT:-086679231553}
    environment:
      DD_ENV: ${DD_ENV:-qa}
      DD_SERVICE: lambda-product-transfer-integration-tests
      DD_VERSION: ${DD_VERSION:-local}
      DD_SITE: ${DD_SITE:-sonymusic-pde.datadoghq.com}
      DD_AGENT_HOST: host-gateway
      DD_GIT_REPOSITORY_URL: ${DD_GIT_REPOSITORY_URL}
      DD_GIT_COMMIT_SHA: ${DD_GIT_COMMIT_SHA}
      DD_GIT_BRANCH: ${DD_GIT_BRANCH}
      DD_GIT_COMMIT_AUTHOR_NAME: ${DD_GIT_COMMIT_AUTHOR_NAME}
      DD_GIT_COMMIT_AUTHOR_EMAIL: ${DD_GIT_COMMIT_AUTHOR_EMAIL}
      DD_GIT_COMMIT_MESSAGE: ${DD_GIT_COMMIT_MESSAGE}
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
      AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-}
      AWS_DEFAULT_REGION: us-east-1
      LAMBDA_FUNCTION_NAMES: ${LAMBDA_FUNCTION_NAMES:-}
      LAMBDA_ENDPOINT_URL: ${LAMBDA_ENDPOINT_URL:-}
      JOB_NAME: ${JOB_NAME:-}
      BUILD_NUMBER: ${BUILD_NUMBER:-}
      BUILD_ID: ${BUILD_ID:-}
      JENKINS_URL: ${JENKINS_URL:-}
      BUILD_URL: ${BUILD_URL:-}
    depends_on:
      finalize-job:
        condition: service_healthy
        required: false
      handle-error:
        condition: service_healthy
        required: false
      ensure-artists:
        condition: service_healthy
        required: false
      execute-content-transfer:
        condition: service_healthy
        required: false
      update-dim-tables:
        condition: service_healthy
        required: false
      edit-attachments:
        condition: service_healthy
        required: false
    extra_hosts:
      - "host-gateway:host-gateway"

  lint:
    profiles: [lint]
    build:
      context: .
      dockerfile: Dockerfile
      target: lint
      args:
        AWS_ACCOUNT: ${AWS_ACCOUNT:-086679231553}

  handle-error:
    profiles: [handle-error]
    platform: linux/amd64
    build:
      context: ../lambda/handle-error
      dockerfile: Dockerfile
      target: deploy
    environment:
      ENVIRONMENT: qa
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
      AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-}
      AWS_DEFAULT_REGION: us-east-1
      DD_TRACE_ENABLED: "false"
    tmpfs:
      - /opt/extensions
    healthcheck:
      test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/8080'"]
      interval: 60s
      timeout: 3s
      retries: 5
      start_period: 24s
      start_interval: 15s

  finalize-job:
    profiles: [finalize-job]
    platform: linux/amd64
    build:
      context: ../lambda/finalize-job
      dockerfile: Dockerfile
      target: deploy
    environment:
      ENVIRONMENT: qa
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
      AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-}
      AWS_DEFAULT_REGION: us-east-1
      DD_TRACE_ENABLED: "false"
    tmpfs:
      - /opt/extensions
    healthcheck:
      test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/8080'"]
      interval: 60s
      timeout: 3s
      retries: 5
      start_period: 24s
      start_interval: 15s

  ensure-artists:
    profiles: [ensure-artists]
    platform: linux/amd64
    build:
      context: ../lambda/ensure-artists
      dockerfile: Dockerfile
      target: deploy
    environment:
      ENVIRONMENT: qa
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
      AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-}
      AWS_DEFAULT_REGION: us-east-1
      DD_TRACE_ENABLED: "false"
    tmpfs:
      - /opt/extensions
    healthcheck:
      test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/8080'"]
      interval: 60s
      timeout: 3s
      retries: 5
      start_period: 24s
      start_interval: 15s

  execute-content-transfer:
    profiles: [execute-content-transfer]
    platform: linux/amd64
    build:
      context: ../lambda/execute-content-transfer
      dockerfile: Dockerfile
      target: deploy
    environment:
      ENVIRONMENT: qa
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
      AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-}
      AWS_DEFAULT_REGION: us-east-1
      DD_TRACE_ENABLED: "false"
    tmpfs:
      - /opt/extensions
    healthcheck:
      test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/8080'"]
      interval: 60s
      timeout: 3s
      retries: 5
      start_period: 24s
      start_interval: 15s

  update-dim-tables:
    profiles: [update-dim-tables]
    platform: linux/amd64
    build:
      context: ../lambda/update-dim-tables
      dockerfile: Dockerfile
      target: deploy
    environment:
      ENVIRONMENT: qa
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
      AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-}
      AWS_DEFAULT_REGION: us-east-1
      SNOWFLAKE_PRIVATE_KEY_PATH: /var/task/.ssh/snowflake/snowflake_key.p8
      SNOWFLAKE_KEY_PASSPHRASE: ${SNOWFLAKE_KEY_PASSPHRASE:-}
      SNOWFLAKE_USER_NAME: ${SNOWFLAKE_USER_NAME:-}
      SNOWFLAKE_ACCOUNT: ${SNOWFLAKE_ACCOUNT:-}
      SNOWFLAKE_ROLE: ${SNOWFLAKE_ROLE:-}
      SNOWFLAKE_SCHEMA: ${SNOWFLAKE_SCHEMA:-QA}
      DD_TRACE_ENABLED: "false"
    tmpfs:
      - /opt/extensions
    volumes:
      - ~/.ssh/snowflake:/var/task/.ssh/snowflake:ro
    healthcheck:
      test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/8080'"]
      interval: 60s
      timeout: 3s
      retries: 5
      start_period: 24s
      start_interval: 15s

  edit-attachments:
    profiles: [edit-attachments]
    platform: linux/amd64
    build:
      context: ../lambda/edit-attachments
      dockerfile: Dockerfile
      target: deploy
    environment:
      ENVIRONMENT: qa
      AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-}
      AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-}
      AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN:-}
      AWS_DEFAULT_REGION: us-east-1
      DD_TRACE_ENABLED: "false"
    tmpfs:
      - /opt/extensions
    healthcheck:
      test: ["CMD-SHELL", "bash -c '</dev/tcp/localhost/8080'"]
      interval: 60s
      timeout: 3s
      retries: 5
      start_period: 24s
      start_interval: 15s
