version: '3.6'
services:
  minimal-packager:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.package
    volumes:
      - .:/app/build

  publisher:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.publisher
      args:
        - BUILDKITE=${BUILDKITE}
        - REG_BASIC_CREDENTIAL
        - REG_NPM_EMAIL
        - PUBLISH_URL
        - BRANCH_NAME
        - BUILD_RN_WITH_LATEST_NATIVES
  ci:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.ci

  browser-maze-runner:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.browser
      target: browser-maze-runner
      args:
        - BUILDKITE_BUILD_NUMBER
    environment:
      BUILDKITE:
      BUILDKITE_PIPELINE_NAME:
      DEBUG:
      MAZE_DEVICE_FARM_USERNAME:
      MAZE_DEVICE_FARM_ACCESS_KEY:
      HOST: "${HOST:-maze-runner}"
      API_HOST: "${API_HOST:-maze-runner}"
    networks:
      default:
        aliases:
          - maze-runner

  node-maze-runner:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.node
      target: node-maze-runner
    command: --fail-fast --retry 2
    environment:
      NODE_VERSION: "${NODE_VERSION:-10}"
      COMPOSE_PROJECT_NAME: "node${NODE_VERSION:-10}"
      NETWORK_NAME: "${BUILDKITE_JOB_ID:-js-maze-runner}"
      DEBUG:
    networks:
      default:
        aliases:
          - maze-runner
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  expo-maze-runner:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.expo
      args:
        - BUILDKITE_BUILD_NUMBER
    environment:
      BUILDKITE:
      BUILDKITE_PIPELINE_NAME:
      DEBUG:
      MAZE_DEVICE_FARM_USERNAME:
      MAZE_DEVICE_FARM_ACCESS_KEY:
    networks:
      default:
        aliases:
          - maze-runner
    volumes:
      - ./build:/app/test/expo/build

  expo-publisher:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.expo-publisher
    environment:
      EXPO_USERNAME:
      EXPO_PASSWORD:
      EXPO_RELEASE_CHANNEL:
    networks:
      default:
        aliases:
          - maze-runner

  expo-android-builder:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.expo-android-builder
    environment:
      DEBUG:
      EXPO_USERNAME:
      EXPO_PASSWORD:
      EXPO_RELEASE_CHANNEL:
    networks:
      default:
        aliases:
          - maze-runner
    volumes:
      - ./build:/app/test/expo/features/fixtures/build

  android-builder-base:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.android-builder-base

  react-native-android-builder:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.react-native-android-builder
      args:
        - REGISTRY_URL
        - REG_BASIC_CREDENTIAL
        - REG_NPM_EMAIL
    environment:
      - DEBUG
      - BRANCH_NAME
      - BUILDKITE
      - REGISTRY_URL
      - REACT_NATIVE_VERSION
      - NOTIFIER_VERSION
      - ARTEFACT_NAME
      - JS_SOURCE_DIR
    networks:
      default:
        aliases:
          - maze-runner
    volumes:
      - ./build:/app/build
      - ./test:/app/test
      - ./features:/app/features

  react-native-cli-tool-maze-runner:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.react-native-cli-tool
    environment:
      DEBUG:
      REACT_NATIVE_VERSION:
      NETWORK_NAME: "${BUILDKITE_JOB_ID:-react-native-cli-maze-runner}"
    networks:
      default:
        aliases:
          - maze-runner
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  react-native-cli-android-builder:
    build:
      context: .
      dockerfile: dockerfiles/Dockerfile.react-native-cli-android-builder
      args:
        - REGISTRY_URL
        - REG_BASIC_CREDENTIAL
        - REG_NPM_EMAIL
    environment:
      - VERBOSE
      - DEBUG
      - BRANCH_NAME
      - BUILDKITE
      - REGISTRY_URL
      - REACT_NATIVE_VERSION
    networks:
      default:
        aliases:
          - maze-runner
    volumes:
      - ./build:/app/build
      - ./test:/app/test
      - ./test/react-native-cli/features/:/app/features

  react-native-maze-runner:
    image: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-v4-cli
    environment:
      BUILDKITE:
      BUILDKITE_PIPELINE_NAME:
      DEBUG:
      MAZE_DEVICE_FARM_USERNAME:
      MAZE_DEVICE_FARM_ACCESS_KEY:
      SKIP_NAVIGATION_SCENARIOS:
    networks:
      default:
        aliases:
          - maze-runner
    volumes:
      - ./build:/app/build
      - ./test/react-native/features/:/app/features

  react-native-cli-maze-runner:
    image: 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-v4-cli
    environment:
      BUILDKITE:
      BUILDKITE_PIPELINE_NAME:
      DEBUG:
      MAZE_DEVICE_FARM_USERNAME:
      MAZE_DEVICE_FARM_ACCESS_KEY:
    volumes:
      - ./build:/app/build
      - ./test/react-native-cli/features/:/app/features/

networks:
  default:
    name: ${BUILDKITE_JOB_ID:-js-maze-runner}
