version: "3.8"
services:
    service:
        platform: linux/amd64
        build:
            context: .
            target: dev
            args:
                DOCKER_BUILDKIT: 1
            secrets:
                - GITHUB_NPM_TOKEN
        environment:
            - GITHUB_NPM_TOKEN=/run/secrets/GITHUB_NPM_TOKEN
            - ENV=qa
            - PORT=8080
            - NODE_ENV=dev
            - LOG_LEVEL=info
            - DD_TRACE_ENABLED=false
            - ENABLE_JWT_SERVICE_CACHE=false
            - APOLLO_INTROSPECTION=true
            - APOLLO_PLAYGROUND=true
            - NEO4J_URL
            - NEO4J_USER
            - NEO4J_PASSWORD
            - SPLIT_API_KEY
        container_name: graphql-participant
        ports:
            - "8080:8080"
        volumes:
            - ./src:/var/app/src
    service-deploy:
        platform: linux/amd64
        build:
            context: .
            target: deploy
            args:
                DOCKER_BUILDKIT: 1
            secrets:
                - GITHUB_NPM_TOKEN
        environment:
            - GITHUB_NPM_TOKEN=/run/secrets/GITHUB_NPM_TOKEN
            - ENV=qa
            - PORT=8080
            - NODE_ENV=dev
            - LOG_LEVEL=info
            - DD_TRACE_ENABLED=false
            - ENABLE_JWT_SERVICE_CACHE=false
            - APOLLO_INTROSPECTION=false
            - APOLLO_PLAYGROUND=false
            - NEO4J_URL
            - NEO4J_USER
            - NEO4J_PASSWORD
            - SPLIT_API_KEY
        container_name: graphql-participant-deploy
        ports:
            - "8081:8080"
    unit-lint:
        build:
            context: .
            target: unit-lint
            args:
                - DOCKER_BUILDKIT=1
            secrets:
                - GITHUB_NPM_TOKEN
        environment:
            - NODE_ENV=test
            - ENV=dev
            - GITHUB_NPM_TOKEN=/run/secrets/GITHUB_NPM_TOKEN
    integration-tests:
        build:
            context: .
            target: integration-tests
            args:
                - DOCKER_BUILDKIT=1
            secrets:
                - GITHUB_NPM_TOKEN
        environment:
            - NODE_ENV=test
            - ENV=qa
            - GITHUB_NPM_TOKEN=/run/secrets/GITHUB_NPM_TOKEN
            - E2E_ENDPOINT=https://qa-graphql-participant.theorchard.io/graphql
            - AWS_ACCESS_KEY_ID
            - AWS_DEFAULT_REGION=us-east-1
            - AWS_REGION=us-east-1
            - AWS_SECRET_ACCESS_KEY
            - AWS_SESSION_TOKEN
            - SPLIT_API_KEY
            - NODE_OPTIONS=${NODE_OPTIONS:-}
            - JOB_NAME=${JOB_NAME:-}
            - JOB_URL=${JOB_URL:-}
            - BUILD_NUMBER=${BUILD_NUMBER:-}
            - BUILD_ID=${BUILD_ID:-}
            - BUILD_TAG=${BUILD_TAG:-}
            - BUILD_URL=${BUILD_URL:-}
            - JENKINS_URL=${JENKINS_URL:-}
            - DD_TEST_SESSION_NAME=integration-tests
            - DD_SERVICE=graphql-participant-integration-tests
            - DD_ENV=qa
            - DD_AGENT_HOST=172.17.0.1
            - WORKSPACE=${WORKSPACE:-}
            - DD_GIT_REPOSITORY_URL=${GIT_URL:-}
            - DD_GIT_COMMIT_SHA=${GIT_COMMIT:-}
            - DD_GIT_BRANCH=${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_AUTHOR_DATE=${DD_GIT_COMMIT_AUTHOR_DATE:-}
secrets:
    GITHUB_NPM_TOKEN:
        environment: "GITHUB_NPM_TOKEN"
