services:
    dev:
        platform: linux/amd64
        build:
            context: .
            target: dev
            args:
                DOCKER_BUILDKIT: 1
            secrets:
                - GITHUB_NPM_TOKEN
        environment:
            - GITHUB_NPM_TOKEN=/run/secrets/GITHUB_NPM_TOKEN
            - Environment=dev
            - INTROSPECTION=true # Enable apollo features
            - PLAYGROUND=true # Enable apollo features
            - SWITCHBOARD_SECRET
            - ORCHARD_SECRET
            - AUTH0_CREDENTIALS
            - AUTH0_AUDIENCE
            - GRASS_URL
            - SPLIT_API_KEY
            - AWS_DEFAULT_REGION=us-east-1
            - AWS_REGION=us-east-1
            - AWS_ACCESS_KEY_ID
            - AWS_SECRET_ACCESS_KEY
            - AWS_SESSION_TOKEN
        container_name: graphql-switchboard
        ports:
            - "8080:8080"
        volumes:
            - ./src:/var/app/src
    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
            - Environment
            - NODE_ENV
            - DD_ENV
            - LOGGER_DSN
            - SENTRY_DSN
            - GRAPHQL_PRODUCT_HOST
            - AUTH0_CREDENTIALS_ARN
            - AUTH0_AUDIENCE
            - GRASS_URL
            - SWITCHBOARD_ROLE_ARN
            - SWITCHBOARD_SECRET_ARN
            - INTROSPECTION
            - SPLIT_API_KEY
        container_name: graphql-switchboard-deploy
        ports:
            - "8080:8080"
    unit-lint:
        build:
            context: .
            target: unit-lint
            args:
                - DOCKER_BUILDKIT=1
            secrets:
                - GITHUB_NPM_TOKEN
        environment:
            - NODE_ENV=test
            - ENV=test
            - 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
            - Environment=qa # to match the service env name.
            - GITHUB_NPM_TOKEN=/run/secrets/GITHUB_NPM_TOKEN
            - BASE_URL=https://qa-graphql-switchboard.theorchard.io/graphql
            - QA_HOST=https://qa-graphql-switchboard.theorchard.io/graphql
            - AWS_ACCESS_KEY_ID
            - AWS_DEFAULT_REGION=us-east-1
            - AWS_SECRET_ACCESS_KEY
            - AWS_SESSION_TOKEN
            - SWITCHBOARD_SECRET
            - AUTH0_CREDENTIALS
            - ORCHARD_SECRET
secrets:
    GITHUB_NPM_TOKEN:
        environment: "GITHUB_NPM_TOKEN"
