How we use GitHub with Trello

There are probably hundreds of articles around on the subject. But, we’d still dare to write one more. Our workflow comes with least overhead & is recommended for startups or small team setups.

Prerequisite: All features & bugs should have a card on your project Trello board.

Maintaining minimalistic Kanban board on Trello

  • Names are self-explanatory
  • You may have additional below lists if Scheduled list is over-populated
    • Backlog
    • Bugs
  • Ready for Testing is used for QA / review purposes
  • Ready to Release means feature branch has been merged in development & will go out to production as part of next deploy

Branch & release management in GitHub

Branch names are given in italics.

  • master
    • It has production environment code
    • New release is created whenever a push is made to production & release is named using semantic versioning
    • Unplanned releases or hotfixes are considered as patch versions, planned updates / new features are minor versions & major overhaul eg. change of framework, leads to change in major version
  • development
    • It has development environment code
    • Access is limited to pull request reviewers / senior developers & engineering lead
  • Feature branches
    • Feature/c-{trello_card_id}_FeatureDescription
    • Feature/c-{trello_card_id}_AnotherFeatureDescription
      • Pull request to merge into development branch is created when feature is ready & should be handed over to reviewer with no merge conflicts
      • All defects / feedback found during QA / review is worked upon by developer on feature branch & a merging of pull request is done by reviewer when satisfactory changes are made
  •  Bugfix branches
    • Bugfix/c-{trello_card_id}_BugDescription
    • Bugfix/c-{trello_card_id}_AnotherBugDescription
      • Pull request flow remains same for bugs & is handled like any other feature pull request

Since we are talking about defects & bugs, I’d like to explain the difference between the two. Surprisingly, some developers are unaware of the difference.

Defects are the ones that are found during feature development or in development environment & bugs are the ones that are found in production environment.

Last but not the least, you can use GitHub power-up with Trello that pulls your commits & pull requests in Trello card itself. I’m sure there are benefits to it, if followed religiously. However, I’d be honest, we have been irregular with it as it requires you to manually add commit or pull request. I’d recommend checking it out with more complex setups that requires use of Trello card labels & pull request labeling.

This setup greatly benefits us in ensuring quality code delivery & tracking. It is complemented by the fact that we have continuous integration in place using CircleCI for both development & production environments enabling automation for running tests, generating stable builds & carrying out end-to-end deployment on AWS using AWS CLI. But, that’s a topic for another day. 🙂

Stay tuned for more engineering updates!

Leave a Reply