a internal network server ▸ Android’s FlexibleClient. Uses Git. Hosted on GitHub ▸ GeneXus Standard Classes. Uses Git. Hosted on GitHub (Currently migrating)
WORKING Why work on a separate branch for each change? ▸ Ease of working on several change sets in parallel ▸ Avoid change sets hell ▸ Higher code quality before merging to master
WORKING Why work on a separate branch for each change? ▸ Ease of working on several change sets in parallel ▸ Avoid change sets hell ▸ Higher code quality before merging to master ▸ Higher confidence on our tests (as they were performed in isolation)
IT’S READY TO BE MERGED When is a PR ready to be merged? 1. TeamCity must report a successful build 1. Build 2. Unit Tests 3. Static code analyzers (Error-prone, Android Lint, Checkstyle) 4. Publish to Nexus
IT’S READY TO BE MERGED When is a PR ready to be merged? 1. TeamCity must report a successful build 2. Approved by at least one teammate 3. Tested by the support team
IT’S READY TO BE MERGED When is a PR ready to be merged? 1. TeamCity must report a successful build 2. Approved by at least one teammate 3. Tested by the support team
IT’S READY TO BE MERGED When is a PR ready to be merged? 1. TeamCity must report a successful build 2. Approved by at least one teammate 3. Tested by the support team
feedback ✓ Android FlexibleClient build avg. time: < 2 min (down from hours) ✓ Signal to noise ratio is awesome (no more build emails) ✓ CI is easily scalable, updatable and has much better integrations ✓ Built on top of Docker
Less than 25 mins from Fixed to Tested! (before it took hours literally) ✓ Much better tracking of the changes ✓ PRs list brings gap visibility (no more lost issues into oblivion) ✓ CHANGELOG let us see what changed in each release