Build Status | Documentation | Contributing | Chat Room | Release Notes
Introduction
TAOS-CI is an automated project coordinator to achieve "Review less, merge faster" with a tool-based review system. It accelerates a software development based on the GitHub WebHook API. We aim to prevent a regression, find bugs, and reduce a nonproductive review process due to incorrect PRs in https://GitHub.com. Actually, submitting incorrect PRs is a PITA in case of continuous integration. Basically, PRs causing regressions will not be automatically merged. As a result, it drastically reduces the existing burdens of reviewers.
- Minimize a nonproductive review process
- Provide a test automation (both build and run)
- Prevent a performance regression
- Find bugs at a proper time before merging buggy codes
- Generate a doxygen-based developer manual
- Support modulable facilities with plug-in interface
- Integrate the existing opensource tools easily
- Verify an integrity of a package by supporting a platform build
- Support multiple operating systems as follows:
- Ubuntu: https://www.ubuntu.com/
- Tizen: https://source.tizen.org/
- Yocto: https://www.yoctoproject.org/
- Android: https://source.android.org
- TBD & TBI
Goals
The proposed system supports a light-weight code review automation approach to support a desktop computer based servers that have out-of-date CPUs and low memory capacity. Also, if you want to enable your project specific CI facilities, it will be easily customizable for your GitHub repository because it just requires APACHE, PHP, and BASH packages. Especially, we are mainly concentrating on the following three goals among a number of action items.
- Automating tests (both build and run)
- Preventing Performance regression
- Finding potential bugs at a proper time
Maintenance
Please refer Here.
Publications
-
Geunsik Lim, MyungJoo Ham, Jijoong Moon, Wook Song, Sangjung Woo, and Sewon Oh, "TAOS-CI: Lightweight & Modular Continuous Integration System for Edge Computing," 37th IEEE International Conference on Consumer Electronics (ICCE), Las Vegas, USA, Jan. 2019.
-
Geunsik Lim, MyungJoo Ham, and Jaeyun Jung, "VTB: Cloud-based Testbed for On-Device AI," Proc. of KIISE Korea Computer Congress, Jeju, Korea, Jun. 2019. Best Presentation Paper. (MAJOR domestic conference in Korea)
-
Geunsik Lim, MyungJoo Ham, and Jaeyun Jung, "VTS: Virtual Testbed System for Cloud-based On-Device AI Application," KIISE Transactions on Computing Practices : Computing Practices and Letter (CPL), Jan. 2020. Invited paper. (MAJOR domestic journal in Korea)
-
Geunsik Lim, MyungJoo Ham, Jijoong Moon, and Wook Song, "LightSys: Lightweight and Efficient CI System for Improving Integration Speed of Software," 43rd ACM/IEEE International Conference on Software Engineering (ICSE)-SEIP, Madrid, Spain (Virtual Conference due to COVID-19), May. 2021. (Top-tier)
How to install
Please refer to How to install TAOS-CI.
How to use new CI module
Please refer to How to use new CI module.
Now, available facilities are as following:
- Pre-build Group (before a build): File size, New line, No body, Signed-off, Clang-format, Doxygen, Timestamp, Hardcoded-path, Executable, RPM-spec, CPPcheck, Pylint, Indent, Resource checker, and so on.
- Post-build Group (after a build): Ubuntu builder, Tizen builder, Yocto builder, and Android (Coming Soon).
Self assessment
Note that you have to execute a self assessment before submitting your PR. Please refer to How to build a package.
Terminology
- CI: Continuous Integration
- CD: Continuous Deployment
- PR: Pull Request
- TBD: To Be Defined
- TBI: To Be Implemented
License
Reference
- WebHook API of GitHub - https://developer.github.com/WebHooks/
- A painless self-hosted Git service, Gogs - https://gogs.io/
- Free file transfer software, Curl - https://curl.haxx.se/docs/
- Papers
- ICSE2018, "Modern code review: a case study at google"
- ICSE2015, "Do Not Find Bugs: how the Current Code Review Best Practice Slows Us Down"
- IFIPAICT, "The Impact of a Low Level of Agreement Among Reviewers in a Code Review Process"
- ASE2014, "Automated Unit Test Generation for Classes with Environment Dependencies"
- FSE2016, "Why We Refactor? Confessions of GitHub Contributors"
- FSE2016, "Factors Influencing Code Review Processes in Industry"