version: 2.1 executors: default: docker: - image: circleci/node:10-stretch-browsers environment: - FIREFOX_VERSION: "60.0esr" working_directory: ~ commands: install_firefox: steps: - restore_cache: key: firefox-bin paths: - ~/firefox - run: name: Install Firefox command: | test -d ~/firefox/${FIREFOX_VERSION} && exit 0 url=https://ftp.mozilla.org/pub/firefox/releases/${FIREFOX_VERSION}/linux-x86_64/en-US/firefox-${FIREFOX_VERSION}.tar.bz2 curl -sSL -o- "$url" | tar xvfj - mkdir -p ~/firefox mv firefox ~/firefox/${FIREFOX_VERSION} - save_cache: key: firefox-bin paths: - ~/firefox - run: echo 'export PATH=~/firefox/$FIREFOX_VERSION:$PATH' >> $BASH_ENV setup_npm: steps: - restore_cache: key: dependency-cache-{{ checksum "package-lock.json" }} - run: name: Install npm wee command: npm install - save_cache: key: dependency-cache-{{ checksum "package-lock.json" }} paths: - node_modules jobs: build: executor: name: default steps: - install_firefox - checkout - setup_npm - run: npm run lint - run: npm test - run: npm run package e2e: executor: name: default steps: - install_firefox - checkout - setup_npm - run: npm run build - run: npm run ambassador:build - run: name: Run web server command: node e2e/web-server background: true - run: npm run test:e2e workflows: version: 2 build_and_test: jobs: - build - e2e