version: 2

jobs:
  build:
    docker:
      - image: circleci/node:8.14.0
    steps:
      - checkout
      - run: npm install
      - run: npm run build
      - persist_to_workspace:
          root: ../
          paths:
            - project

  deploy:
    docker:
      - image: circleci/node:8
    steps:
      - attach_workspace:
          at: ../
      - run: 'echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc'
      - run: npm --no-git-tag-version version prerelease --preid=next.$(echo $CIRCLE_SHA1 | cut -c -7)
      - run: npm publish --tag next || true
      - run: mkdir ~/.ssh/ && echo -e "Host github.com\n\tStrictHostKeyChecking no\n" > ~/.ssh/config
      - run: git config --global user.name thegecko
      - run: git config --global user.email github@thegecko.org
      - run: git add --force dist lib types
      - run: git stash save
      - run: git checkout gh-pages
      - run: git merge master --no-commit -X theirs
      - run: git checkout stash -- .
      - run: git commit --allow-empty --message "Automatic Deployment [skip ci]"
      - run: git push

workflows:
  version: 2
  commit:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: master
