name: Deploy to WPEngine
on:
  workflow_dispatch
  # Remove "workflow_dispatch" above and uncomment the lines below to enable deploy on push
  # only do this once you're actually ready to start deploying to Flywheel
  # push:
  #   branches:
  #     - main

jobs:
  build:
    runs-on: ubuntu-latest
    if: ${{ !contains(github.event.head_commit.message, '#skipGA') }}

    steps:
    - uses: actions/checkout@v3

    - name: Get Composer Cache Directory
      id: composer-cache
      run: |
        echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

    - uses: actions/cache@v3
      with:
        path: ${{ steps.composer-cache.outputs.dir }}
        key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
        restore-keys: |
          ${{ runner.os }}-composer-

    - name: Install PHP Composer
      uses: php-actions/composer@v6
      with:
        php_version: "8.2"

    - name: Cache node modules
      id: cache-npm
      uses: actions/cache@v3
      env:
        cache-name: cache-node-modules
      with:
        # npm cache files are stored in `~/.npm` on Linux/macOS
        path: ~/.npm
        key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
        restore-keys: |
          ${{ runner.os }}-build-${{ env.cache-name }}-
          ${{ runner.os }}-build-
          ${{ runner.os }}-

    - name: Install npm dependencies
      run: npm install

    - name: Run build task
      run: npm run build

    - name: Clean up node modules (not needed to deploy)
      run: rm -rf node_modules

    - name: Deploy to WPE
      uses: wpengine/github-action-wpe-site-deploy@v3
      with:
        WPE_SSHG_KEY_PRIVATE: ${{ secrets.WPE_SSHG_KEY_PRIVATE }}
        WPE_ENV: vdiv5
        FLAGS: '-azvr --inplace --delete --exclude=".*"'
        REMOTE_PATH: "wp-content/themes/vdi-v5"
