version: 2 defaults: &defaults working_directory: ~/repo docker: - image: circleci/node:8.11.4 jobs: build: <<: *defaults steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "package.json" }} - v1-dependencies- - run: sudo apt-get install -y bluetooth bluez libbluetooth-dev libudev-dev - run: npm install - save_cache: paths: - node_modules key: v1-dependencies-{{ checksum "package.json" }} - run: npm run all - persist_to_workspace: root: ~/repo paths: . deploy: <<: *defaults steps: - attach_workspace: at: ~/repo - run: name: Authenticate with registry command: echo "//registry.npmjs.org/:_authToken=$npm_TOKEN" > ~/repo/.npmrc - run: name: Publish package command: npm publish workflows: version: 2 build-deploy: jobs: - build: filters: tags: only: /^v.*/ - deploy: requires: - build filters: tags: only: /^v.*/ branches: ignore: /.*/