CI CD 101
PJ talking about CI CD phases
From idea to market/value Goal is to remove all the obstacles between the idea and it getting done as value.
- Idea
-- define a bucket of acceptance tests
Comments on the customer not willing to cover/document their acceptance tests, but in some cases there is improvement here
-- write broken acceptance tests
- write code to make the first test pass
-- write broken unit tests
-- write just enough code
-- refactor
-- pre commit build
-- we mentioned code review tools/techniques, and pair programming
-- get feedback in 10 minutes from people available
-- every time a test goes green - commit!
How much time does the build take?
We need to keep the build as short as possible.
Version control systems. A round on who is using what VCS.
Master branches, feature branches. PJ hates branches, want to avoid them if possible. Microservices as a solution to keep parts of the system away from each other.
There is no CI/CD on feature branches. You can have continuous build on branches, but since they are not integrated, that is not CI.
unit tests "WE have 87% of out unit tests passing!" PJ: Ignored unit tests are worse that no unit tests at all. ignored unit tests mean effort put into them, consuming time for nothing.
- CD steps -- pre commit build -- run the unit tests -- package -- deploy -- acceptance tests
Things running in parallel: -- nice big suite of regression test -- performance tests -- document