name: Deploy to Dreamhost (dev)
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 Dreamhost
  push:
    branches:
      - main

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

    steps:
    - name: Install rsync
      run: |
        apt-get update
        apt-get -y install rsync

    - name: Checkout code
      uses: actions/checkout@v6

    - name: Cache node modules
      id: cache-npm
      uses: actions/setup-node@v6
      env:
        cache-name: cache-node-modules
      with:
        node-version: "22"

    - name: Install npm dependencies
      run: npm install

    - name: Run build task
      run: npm run build

    - name: Deploy to Dreamhost
      uses: SamKirkland/web-deploy@v1
      with:
        target-server: iad1-shared-e1-31.dreamhost.com
        ssh-port: 22
        remote-user: soloweb
        private-ssh-key: ${{ secrets.REMOTE_PRIVATE_KEY }}
        destination-path: solowebdesigns.net/cwc/wp-content/themes/community-works-collaborative
        rsync-options: --archive --verbose --compress --delete-after --human-readable --exclude=.git* --exclude=.git/ --exclude=.vscode/ --exclude=database/ --exclude=.gitignore --exclude=DOCKER_ENV --exclude=docker_tag --exclude=output.log --exclude=vendor/ --exclude=node_modules/ --exclude=notes/ --exclude=docs/
