ARG IMAGE_NAME__NODE
ARG IMAGE_TAG__NODE
ARG IMAGE_NAME__NGINX
ARG IMAGE_TAG__NGINX
FROM ${IMAGE_NAME__NODE}:${IMAGE_TAG__NODE} as deps
ARG NEXUS_NPM
ARG NEXUS_NPM_SHORT
ARG NEXUS_NPM_TOKEN
COPY package*.json *.lock ./
RUN if [ -f yarn.lock ]; then \
set -x && \
sed -ri 's%(^\s*resolved ")https://registry.yarnpkg.com/%\1'"${NEXUS_NPM}"'%' yarn.lock && \
set +x && \
NODE_ENV= yarn install --network-timeout 80000 --frozen-lockfile; \
elif [ -f package-lock.json ]; then \
npm ci; \
else \
NODE_ENV= yarn install; \
fi
COPY . ./
FROM deps as test
ARG NEXUS_NPM
ARG NEXUS_NPM_SHORT
ARG NEXUS_NPM_TOKEN
RUN CI=true yapm.sh test
FROM deps as storybook
ARG NEXUS_NPM
ARG NEXUS_NPM_SHORT
ARG NEXUS_NPM_TOKEN
RUN NODE_ENV=production yapm.sh run build-storybook
FROM deps as package
ARG NEXUS_NPM
ARG NEXUS_NPM_SHORT
ARG NEXUS_NPM_TOKEN
RUN NODE_ENV=production yapm.sh build
FROM package as publish
ARG NEXUS_NPM_PRIVATE
ARG NEXUS_NPM_PRIVATE_SHORT
ARG NEXUS_NPM_PRIVATE_TOKEN
ARG ARTIFACT_VERSION
ARG VERSIONING_MODE
ENV NEXUS_NPM=${NEXUS_NPM_PRIVATE}
ENV NEXUS_NPM_SHORT=${NEXUS_NPM_PRIVATE_SHORT}
ENV NEXUS_NPM_TOKEN=${NEXUS_NPM_PRIVATE_TOKEN}
RUN if [ ! "${VERSIONING_MODE}" = "manual" ]; then npm version --no-git-tag-version ${ARTIFACT_VERSION}; fi
RUN npm publish \
&& npm pack