Skip to content
prod e051e98
Browse

Code → test → ship

Execute from: 1 · Ship — code → test → deploy (WF-SHIP playbook step). This runbook is the command card when you already know the drill.

Any feature, fix, or config change — daily develop → test → deploy loop.

flowchart TD
start["Local change ready"] --> first{"First launch<br/>pre-stable?"}
first -->|yes| A["Pattern A — quick SSH / rsync"]
first -->|no| B["Pattern B — staging → production"]
start --> series{"Multi-commit<br/>feature series?"}
series -->|yes| C["Pattern C — batch deploy + tag"]
broken{"Deploy broke prod?"} --> D["Pattern D — revert / rollback"]
PatternWhenCore commands
APre-stable, rapid iterationgit push origin develop + SSH pull or scoped rsync
BPost-launch, real usersdep deploy staging → test → merge → dep deploy production
CMulti-commit featurePush all commits → single dep deploy → tag
DBroken productiongit revert + redeploy or dep rollback production
Terminal window
# Local site up
herd start
open http://<PROJECT>.test
# DB-dependent work only — sync prod → local, then:
php artisan migrate --pretend # Expected: SQL preview only
php artisan migrate # Expected: migrations apply cleanly
Terminal window
git add . && git commit -m "🔨 🟪 T3 Add-Feature: <description>"
git push origin develop
dep deploy staging
# 👤 Test staging URL — then:
git checkout production && git merge staging && git push origin production
dep deploy production
Terminal window
curl -sI https://<YOUR_DOMAIN> | head -1 # Expected: HTTP/2 200
curl -s https://<YOUR_DOMAIN>/health | head -c 80 # Expected: {"status":"healthy"
ssh <SSH_ALIAS> "tail -20 storage/logs/laravel.log | grep -i error || true"
ssh <SSH_ALIAS> "cd <DEPLOY_PATH> && php artisan queue:restart"

Friday after 3 PM · destructive migration without backup · tests failing locally · you cannot monitor for 2+ hours.