config.yml 1.83 KiB
version: 2.1
jobs:
  build:
    docker:
      - image: cimg/node:14.17.3
        environment:
            CHROME_BIN: "/usr/bin/google-chrome"
    steps:
      - run:
          name: Install Headless Chrome dependencies
          command: |
            sudo apt-get update \
            && sudo apt-get install -yq \
            gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
            libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
            libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 \
            libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates \
            fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
      - checkout
      - run:
          name: Check current version of node
          command: node -v
      - restore_cache:
          keys:
            - node_modules_cache_{{ checksum "package-lock.json" }}
      - run:
          name: Install project dependencies
          command: |
            if [ ! -d "node_modules" ]; then
            npm ci -f
      - save_cache:
          key: node_modules_cache_{{ checksum "package-lock.json" }}
          paths:
            - node_modules
      - run:
          name: install sonar scanner
          command: sudo npm install -g sonarqube-scanner@2.5.0
      - run:
          name: Run SonarScanner
          command: sonar-scanner
      - run:
          name: Publish to NPM
          command: |
            if [ -z $CIRCLE_PR_NUMBER ]; then
              npm run build-lib
              echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc
              npm publish ./dist/common-consumption
            else
              npm run build-lib
            fi