on:
  push:
    branches:
      - master

name: Build and Publish
jobs:
  build:
    name: Deploy Library
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - name: Use Node.js 10.17
        uses: actions/setup-node@v1
        with:
          node-version: 10.17
      - name: Cache node_modules
        id: cache-modules
        uses: actions/cache@v1
        with:
          path: node_modules
          key: ${{ runner.OS }}-build-${{ hashFiles('package.json') }}
      - name: Install Dependencies
        if: steps.cache-modules.outputs.cache-hit != 'true'
        run: npm install
      - name: Test Library
        run: npm run-script test
      - name: Build Library
        run: npm run-script build
      - name: Publish
        uses: mikeal/merge-release@master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
  demo:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - name: Use Node.js 10.17
        uses: actions/setup-node@v1
        with:
          node-version: 10.17
      - name: Cache node_modules
        id: cache-modules
        uses: actions/cache@v1
        with:
          path: node_modules
          key: ${{ runner.OS }}-build-${{ hashFiles('package.json') }}
      - name: Install Dependencies
        if: steps.cache-modules.outputs.cache-hit != 'true'
        run: npm install
      - name: Build demo folder
        run: |
          npm run-script build
          mkdir demo
          cp -r dist demo/dist
          cp -r src demo/src
          find ./demo
      - name: Deploy 🚀
        uses: JamesIves/github-pages-deploy-action@releases/v3
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          BRANCH: gh-pages
          FOLDER: demo
          CLEAN: true
