services:
  function:
    platform: linux/amd64
    build:
      context: .
      target: deploy
      args:
        version: "local-dev"
        AWS_ACCOUNT: "086679231553"
      additional_contexts:
        shared: ../shared
    volumes:
      - ./github_client:/var/task/github_client:cached
      - ./config.py:/var/task/config.py:cached
    ports:
      - "9000:8080"
    environment:
      - DD_ENV=dev
      - DD_SERVICE=lambda-offboarding-automation-auth0-client
      - DD_AGENT_HOST=dev-datadog-agent.dev.theorchard.io
      - DD_TRACE_ENABLED=true
      - DD_SERVERLESS_FLUSH_STRATEGY=periodically,1
      - LOG_LEVEL=INFO
      - ENVIRONMENT=dev
      - AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN
      - AWS_REGION
      - GITHUB_TOKEN

  lint-and-test:
    platform: linux/amd64
    build:
      context: .
      target: unit-lint
      args:
        AWS_ACCOUNT: "086679231553"
      additional_contexts:
        shared: ../shared
    volumes:
      - ./github_client:/var/task/github_client:cached
      - ./config.py:/var/task/config.py:cached
      - ./tests:/var/task/tests:cached
    command: ./lint-and-test.sh
    environment:
      - SKIP_LINT=0
      - TEST_ARGS=-v
      - COV_REPORT=term  # --cov-report pytest-cov option or OFF (try html!)
      - ENVIRONMENT=dev
      - RUN_INTEGRATION=0

  lockfile:
    platform: linux/amd64
    build:
      context: .
      target: base
      args:
        AWS_ACCOUNT: "086679231553"
      additional_contexts:
        shared: ../shared
    volumes:
      - ./:/var/task:cached
    entrypoint: ["uv"]
    command: ["lock", "--upgrade"]

  # Deployed Lambda image from ECR (for testing deployed builds)
  lambda:
    image: 086679231553.dkr.ecr.us-east-1.amazonaws.com/lambda-offboarding-automation-github-cli:latest
    environment:
      # Environment
      - ENVIRONMENT=${ENVIRONMENT:-qa}
      # AWS credentials
      - AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
      - AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
      - AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
      - GITHUB_TOKEN=$GITHUB_TOKEN

  integration-test:
    platform: linux/amd64
    build:
      context: .
      target: unit-lint
      args:
        AWS_ACCOUNT: "086679231553"
      additional_contexts:
        shared: ../shared
    volumes:
      - ./github_client:/var/task/github_client:cached
      - ./config.py:/var/task/config.py:cached
      - ./tests:/var/task/tests:cached
    command: ./lint-and-test.sh
    environment:
      - SKIP_LINT=1
      - TEST_ARGS=-vv
      - COV_REPORT=term  # --cov-report pytest-cov option or OFF (try html!)
      - ENVIRONMENT=dev
      - RUN_INTEGRATION=1
