name: Plant Growing Automation on: push: branches: - main jobs: deploy: runs-on: pigrow steps: - name: Checkout code run: | cd ~/apps/grow git fetch git checkout main git pull origin main - name: Install dependencies - name: Install dependencies run: | cd ~/apps/grow if [ -f package-lock.json ] || [ -f package.json ]; then echo "Installing npm dependencies..." npm install else echo "No Node.js project found (missing package.json)" exit 1 fi - name: Stop existing screen session, if running run: | if screen -list | grep -q "grow_server"; then echo "Stopping existing screen session..." screen -S grow_server -X quit fi - name: Start server in screen session run: | cd ~/apps/grow setsid screen -dmS grow_server bash -c 'HTTP_PORT=8080 WS_PORT=3003 npm start >server.log 2>&1' echo "Server started in detached screen session"