CI / CD#
It’s no time to waste too much time to do something MANUALLY after develop. In particular, something is necessary to do every times like run tests.
Below are somethings be necessary to do and they could be automation with some CI tools:
Prepare the runtime environment for testing
Run tests
Collect the code coverage which be tested
Combine the code coverage results
Report code coverage result
Check and record the code quality
Build codes
Release codes
Absolutely, it does different things with different branch. For example, branch develop focus on test and code coverage, branch master is responsible for run all entire flows includes run tests, report code coverage and release code, etc.
CI/CD Building Status#
CI/CD Flow#
Work Flow#
Work Circle#
Tool#
MultiRunnable be developed with using multiple different CI tools before. Currently, it only uses 2 CI tools: GitHub Actions & Circle-CI.
GitHub Actions#
Runtime OS:
Linux
MacOS
Procedures (By branches):
Using Motivation:
It’s highly integrated with code repository platform — GitHub.
Setting of configuration is clean and easy (it’s great of readable).
It has rich plugins (actions) which could operate with other services, etc.
The workflow feature of CI/CD is powerful.
GitHub provides a UI page (Actions) to let develop clearly monitor anything about GitHub Actions (includes entire workflow).
It’s FREE and it provides many credits per month.
Circle-CI#
Runtime OS:
Windows
Procedures (For every branches):
Prepare test items -> run tests and save code coverages -> submit to coverage service
Using Motivation:
It’s workflow feature of CI/CD is powerful.
It provides a website to let develop clearly monitor anything (includes entire workflow).
It’s FREE and it provides many credits per month.
AppVeyor (Deprecated)#
Runtime OS:
Windows
Procedures (For every branches):
Prepare test items -> run tests and save code coverages -> submit to coverage service
Deprecated Motivation:
It’s not good at workflow I need of DevOps.
Setting of configuration isn’t clean.
Travis-CI (Deprecated)#
Runtime OS:
Linux
Procedures (For every branches):
Prepare test items -> run tests and save code coverages -> submit to coverage service
Deprecated Motivation:
It’s not FREE.