FROM public.ecr.aws/docker/library/node:16-alpine as base

# Setup PNPM

RUN corepack enable && corepack prepare pnpm@8.6.0 --activate

WORKDIR /app

# @TODO improve CI
# COPY . .
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .
COPY packages/ui-icons/package.json packages/ui-icons/
COPY packages/ui-vue/package.json packages/ui-vue/
# Needed for the depedencies (for example postcss.config.js)
COPY packages/frontend/package.json packages/frontend/
COPY packages/dev-utils/package.json packages/dev-utils/

# NPM dependencies

RUN --mount=type=cache,id=pnpm-store,target=/root/.local/share/pnpm/store/v3 \
  pnpm install --frozen-lockfile --ignore-scripts --prefer-offline --filter "@livestorm/ui-vue..." --filter "@livestorm/frontend..."

COPY packages/ui-icons packages/ui-icons
COPY packages/ui-vue packages/ui-vue
# Needed for the references to '../frontend'
COPY packages/frontend/ packages/frontend/

RUN pnpm run -r --filter "@livestorm/ui-vue..." prepare && \
    pnpm run -r --filter "@livestorm/ui-vue^..." build

WORKDIR /app/packages/ui-vue
