Workflow
For each change to my web app, I add a card to a kanban board in Notion:
The card might refer to a feature, bug, or chore. Cards are sorted by priority in each column.
I assign myself to the card, move it to "Doing", and make a Git branch with this script:
git create-branch my-branch
I edit the code. I commit the changes to version control:
git add --all
git commit --version
I push to a remote branch:
git push
This only pushes my-branch
to GitHub due to this setting in
~/.gitconfig
:
[push]
default = current
I open a pull request (PR) with this script:
gh pr
This triggers webhooks that create:
I review the code again. I may push follow-up changes or edit the PR description.
When CI passes, I open the Slack thread and ask a teammate to review:
@buddy PTAL
"PTAL" means "Please Take A Look".
When they are ready to review, they add an 👀 emoji to the thread and open the PR in a browser.
They comment in-line on the code, offer feedback, and approve it. I make and follow-up changes and commit them. We may do these steps once, or multiple times.
My repo has these settings:
- Require pull request reviews before merging
- Require status checks to pass before merging
- Require branches to be up to date before merging
- Default commit message to pull request title and description
I press the "Squash and merge" button.
GitHub triggers a webhook to deploy the main
branch
to my staging environment on Render.
I acceptance test on staging. When everything looks good, I move back to the command line.
I clean up my-branch
and check out latest main
with
this script:
git post-land
I deploy to production with a deploy script:
deploy-prod
I move the card on the kanban board to "Done".