---
services:
  function:
    platform: linux/amd64
    build:
      context: .
      target: deploy
    volumes:
      - ./src:/var/task/src
      - $HOME/.ssh/snowflake:/root/.ssh/snowflake:ro
    ports:
      - "9000:8080"
    environment:
      - DD_ENV=dev
      - DD_SERVICE=new_release_json_blaster
      - DD_TRACE_ENABLED=false
      - DD_ENHANCED_METRICS=false
      - AWS_REGION
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
    env_file:
      - path: '.env'
        required: false
  lint-and-test:
    platform: linux/amd64
    build:
      context: .
      target: unit-lint
    environment:
      - SKIP_LINT=0
      - TEST_ARGS=-v
      - COV_REPORT=term

  format:
    platform: linux/amd64
    build:
      context: .
      target: format
    volumes:
      - ./src:/var/task/src
      - ./tests:/var/task/tests
  test-integration:
    platform: linux/amd64
    build:
      context: .
      target: integration-test
    environment:
      - AWS_REGION
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
  update_poetry_lockfile:
    platform: linux/amd64
    build:
      context: .
      target: poetry_update
    volumes:
      - ./poetry.lock:/var/task/poetry.lock

  dev:
    build:
      context: .
      target: dev
    env_file:
      - path: '.env'
        required: false
    volumes:
      - ~/.ssh/snowflake:/var/app/.ssh/snowflake:ro
    environment:
      - AWS_REGION
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
