name: master

on:
  push:
    branches:
      - 'master'
    paths:
      - 'node_modules/**'
      - 'package.json'
      - '.github/workflows/master.yml'

jobs:
  prune:
    runs-on: ubuntu-latest
    steps:
      -
        # https://github.com/actions/checkout
        name: Checkout
        uses: actions/checkout@v1
      -
        # https://github.com/actions/checkout/issues/6
        name: Fix detached HEAD
        run: git checkout ${GITHUB_REF#refs/heads/}
      -
        # https://github.com/actions/setup-node
        name: Set up Node
        uses: actions/setup-node@v1
      -
        name: Prune prod
        run: |
          rm -rf node_modules
          npm install --production
      -
        name: Set up Git
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          git config user.name "${GITHUB_ACTOR}"
          git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
          git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git
      -
        name: Commit and push changes
        run: |
          git add .
          if output=$(git status --porcelain) && [ ! -z "$output" ]; then
            git commit -m 'Update node_modules'
            git push
          fi
