name: github-pages on: push: branches: [master] jobs: main: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - 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@v3 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