# CI test image for unit/lint/type tests, but also needs to be capable of building
# the Android notifier as part of a React Native integration test run.
FROM 855461928731.dkr.ecr.us-west-1.amazonaws.com/android:latest as android

RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y rsync npm nodejs

# Android setup
ENV ANDROID_HOME="/sdk/"
ENV GRADLE_OPTS="-Dorg.gradle.daemon=false"

# NPM setup
RUN rm -f ~/.npmrc

ARG REG_BASIC_CREDENTIAL
ARG REG_NPM_EMAIL
RUN echo "_auth=$REG_BASIC_CREDENTIAL" >> ~/.npmrc
RUN echo "email=$REG_NPM_EMAIL" >> ~/.npmrc
RUN echo "always-auth=true" >> ~/.npmrc
RUN echo "unsafe-perm=true" >> ~/.npmrc

WORKDIR /app

COPY package*.json ./
COPY . .
COPY scripts/ scripts/

ARG PUBLISH_URL
ARG BUILDKITE
ARG BRANCH_NAME
ARG BUILD_RN_WITH_LATEST_NATIVES
RUN BUILDKITE=${BUILDKITE} BRANCH_NAME=${BRANCH_NAME} BUILD_RN_WITH_LATEST_NATIVES=${BUILD_RN_WITH_LATEST_NATIVES} node scripts/publish.js $PUBLISH_URL
