name: github-pages
on:
  push:
    branches: [master]
jobs:
  main:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: git config
        run: |
          git config user.name bot
          git config user.email bot@example
      - run: git subtree add -P build origin gh-pages
      - id: yarn_cache
        run: echo "::set-output name=dir::$(yarn cache dir)"
      - uses: actions/cache@v2
        with:
          path: ${{ steps.yarn_cache.outputs.dir }}
          key: yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: yarn-
      - run: yarn
      - name: build
        run: |
          yarn build
          touch build/.nojekyll
      - id: git_status
        run: echo "::set-output name=mod::$(git status --porcelain)"
      - name: deploy
        if: steps.git_status.outputs.mod != ''
        run: |
          git add -f build
          git commit -m github-pages
          git subtree push -P build origin gh-pages