bugsnag/bugsnag-js

View on GitHub
dockerfiles/Dockerfile.browser

Summary

Maintainability
Test Coverage
# CI test image for unit/lint/type tests
FROM node:14-alpine as browser-feature-builder

RUN apk add --update bash python3 make gcc g++ musl-dev xvfb-run

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY babel.config.js lerna.json .eslintignore .eslintrc.js jest.config.js tsconfig.json ./
ADD min_packages.tar .
COPY bin ./bin
COPY packages ./packages
RUN npx lerna bootstrap
RUN npm run build

RUN npm pack --verbose packages/js/
RUN npm pack --verbose packages/browser/
RUN npm pack --verbose packages/node/
RUN npm pack --verbose packages/plugin-angular/
RUN npm pack --verbose packages/plugin-react/
RUN npm pack --verbose packages/plugin-vue/
RUN npm pack --verbose packages/web-worker/

COPY test/browser/features test/browser/features

WORKDIR /app/test/browser/features/fixtures
RUN npm install --no-package-lock --no-save ../../../../bugsnag-browser-*.tgz
RUN npm install --no-package-lock --no-save ../../../../bugsnag-plugin-react-*.tgz
RUN npm install --no-package-lock --no-save ../../../../bugsnag-plugin-vue-*.tgz
RUN npm install --no-package-lock --no-save ../../../../bugsnag-web-worker-*.tgz
WORKDIR plugin_angular/ng
RUN npm install --no-package-lock --no-save \
  ../../../../../../bugsnag-plugin-angular-*.tgz  \
  ../../../../../../bugsnag-node-*.tgz \
  ../../../../../../bugsnag-browser-*.tgz \
  ../../../../../../bugsnag-js-*.tgz

# install the dependencies and build each fixture
WORKDIR /app/test/browser/features/fixtures
RUN find . -name package.json -type f -mindepth 2 -maxdepth 3 ! -path "./node_modules/*" | \
  xargs -I % bash -c 'cd `dirname %` && npm install --no-package-lock && npm run build'

# once the fixtures are built we no longer need node_modules and
# it makes the COPY later on much faster if we don't have them
RUN rm -fr **/*/node_modules/

# The maze-runner browser tests (W3C protocol)
FROM 855461928731.dkr.ecr.us-west-1.amazonaws.com/maze-runner-releases:latest-v8-cli as browser-maze-runner

COPY --from=browser-feature-builder /app/test/browser /app/test/browser/
WORKDIR /app/test/browser