ARG NODE_VERSION=lts


FROM node:${NODE_VERSION}-alpine AS deps

WORKDIR /vode-app/

COPY package.json .
COPY package-lock.json .
COPY .npmrc .

RUN --mount=type=secret,id=VODE_APP_REGISTRY_AUTH_TOKEN \
    export VODE_APP_REGISTRY_AUTH_TOKEN=$(cat /run/secrets/VODE_APP_REGISTRY_AUTH_TOKEN) && \
    npm install


FROM node:${NODE_VERSION}-alpine AS files

WORKDIR /vode-app/

COPY --from=deps /vode-app/node_modules/ node_modules/

COPY scripts/ scripts/
COPY src/ src/
COPY assets/ assets/
# COPY tests/ tests/
COPY buildinfo.txt .
COPY buildinfo-template.txt .
COPY CHANGELOG.md .
COPY CHANGELOG-template.md .
COPY index.html .
COPY package.json .
COPY tsconfig.build.json .
COPY tsconfig.json .


FROM files AS build

WORKDIR /vode-app/

RUN npm run build


FROM scratch AS artifacts

COPY --from=build /vode-app/dist/ dist/


FROM nginx:alpine AS final

COPY --from=artifacts /dist/ /usr/share/nginx/html/
COPY oci/nginx/default.conf.template /etc/nginx/templates/default.conf.template

ENV BASE_PATH="/"
ENV SPA_PATH="spa"
