diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..7fbc569 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,62 @@ +# https://circleci.com/blog/publishing-npm-packages-using-circleci-2-0/ + +version: 2 + +defaults: &defaults + working_directory: ~/repo + docker: + - image: circleci/node:10.15.0 + +jobs: + test: + <<: *defaults + steps: + - checkout + + - restore_cache: + keys: + - v1-dependencies-{{ checksum "package.json" }} + # fallback to using the latest cache if no exact match is found + - v1-dependencies- + + - run: npm install + - run: + name: Run tests + command: npm test + + - save_cache: + paths: + - node_modules + key: v1-dependencies-{{ checksum "package.json" }} + + - 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 + test-deploy: + jobs: + - test: + filters: + tags: + only: /^v[0-9]+\.[0-9]+\.[0-9]/ + - deploy: + requires: + - test + filters: + tags: + only: /^v[0-9]+\.[0-9]+\.[0-9]/ + branches: + ignore: /.*/ \ No newline at end of file diff --git a/package.json b/package.json index b9e0cf9..5cb80a1 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ }, "scripts": { "build": "rimraf ./dist && tsc --build tsconfig.json", - "start": "node ./dist/main.js" + "start": "node ./dist/main.js", + "test": "echo TODO: Tests" }, "repository": { "type": "git",