Skip to content
Geunsik Lim edited this page Oct 11, 2018 · 50 revisions

Welcome to the TAOS-CI wiki!

Release Plan

CI Server

Demo: Case study

How to re-trigger a PR

Sometimes, contributors meet unexpected CI failure even though they submit correct PRs. In this case, please re-trigger CI checker by appending @open sesame mm/dd hh:mm of your PR title. Note that re-execution of CI checkers is dependent on @open sesame mm/dd hh:mm writing style of PR title whenever you try to edit PR title or edit PR body.

  • Before: [segmentation] update model & change IPC
  • After: [segmentation] update model & change IPC - @open sesame 08/15 18:27

CI Facilities

There are three groups as follows to support continuous integration among merging, build, and running.

  • Category: Format (before a build), Audit (building and after a build)
  • Running
No Group Checker Author Description
1 Format File size @geunsik-lim git show --pretty="format:" --name-only --diff-filter=AMRC, It is to provide a file size checker that prevent uploading files of too big size in the git repository. Note that uploading is big binary files is PITA in a source control management such as Git.
2 Format New line @geunsik-lim git show --pretty="format:" --name-only --diff-filter=AMRC, You do not have to include \ No newline at end of file statement at the end of source code. The checker verifies a coding style if a new line is existed whenever a PR is submitted.
3 Format No body @geunsik-lim git format-patch -1, You have to write commit description more than 4 words at least. Please refer to git-commit manual in order to write commit message correctly.
4 Format Signed-off @geunsik-lim webhook body, You have to run git commit -s ... command to clean license issue. The Signed-off-by: notation has to be included both 1) your PR body and 2) your commits. Lots of open source communities have been using Signed-off-by: notation by default to handle the license issues that result from contributors. First of all, We have to understand why we have to use Signed-off-by: statement. We recommend that we have to require Signed-off-by: line in git commit messages to author on our project as well as Linux community. "Is there a Signed-off-by" line?" is important because lawyers tell us we must have to it to cleanly maintain the license issues even though it has nothing to do with the code itself. So, the activity that we do append Signed-off-by: line is helpful to developers as well as lawyers. For more details, refer to Signing-off-commits
5 Format clang-format @geunsik-lim find, git ls-files $FILES_IN_COMPILER, clang-format is located in clang/tools/clang-format and can be used to format C/C++/Java/JavaScript/Objective-C/Protobuf code. We have used clang-format to keep a repository with a consistent code style but also avoid as much noise in any code review process. Note that we have checked the coding convention wight clang-format-4.0. If you get the clang-format checker failure, you have to press "Details" from PR status report. Then, run $patch -p1 < clang-format.patch command after pressing "report" folder.
6 Audit Build @geunsik-lim git clone, Builder can execute compilation of All applications.
7 Audit Resource @jiho-chu git clone, You have to include whole resource files to the RPM package. You can remove uninstalled resources from the repository.
8 Format doxygen-tag @geunsik-lim git show --pretty="format:" --name-only --diff-filter=AMRC, You have to include doxygen-style annotations in your source code. For more details, refer to Doxygen Documentation.

In case of C/C++ code, Author must include @file and @brief tag at least in his/him source code. Author must include @package and @brief tag at least in his/him source code.
9 Format timestamp @myungjoo-ham git show --pretty="%ct" --no-notes -s, It checks the timestamp of the commit with git show --pretty=%ct --no-notes -s command. If files are modified with a future time, you have to synchronize local time of your desktop PC by running /usr/sbin/ntpdate kr.pool.ntp.org command.
10 Format hard-coded-path @myungjoo-ham find in /home/, If you are submitting has hardcoded paths that are not allowed in the source, it reports failure. Please do not hardcode paths.
11 Format executable @myungjoo-ham git show --pretty="format:" --name-only --diff-filter=AMRC, It checkes executable bits for .cpp, .h, .hpp, .c, .caffemodel, .prototxt, and .txt. If the commit has an invalid executable, please turn the executable bits off.
12 Format rpm-spec @geunsik-lim git show --pretty="format:" --name-only --diff-filter=AMRC, It is a tool for checking common errors in rpm packages. It can be used to test individual packages and spec files before uploading or to check an entire distribution.
13 Format cppcheck @geunsik-lim git show --pretty="format:" --name-only --diff-filter=AMRC, Cppcheck is a static analysis tool for C/C++ code. It provides unique code analysis to detect bugs and focuses on detecting undefined behavior and dangerous coding constructs. The goal is to detect only real errors in the code (i.e. have very few false positives).
14 Format pylint @geunsik-lim git show --pretty="format:" --name-only --diff-filter=AMRC, It looks for programming errors, helps enforcing a coding standard and sniffs for some python code smells (as defined in Martin Fowler’s Refactoring book). Pylint is a source code, bug and quality checker for the Python programming language. It follows the style recommended by PEP 8, the Python style guide.
15 Format indent @geunsik-lim git ls-files $FILES_IN_COMPILER, It checks the code formatting style with GNU indent.
16 Audit apptest @ohsewon It is a test for nnstreamer. Testing gstreamer pipeline with nnstreamer plugin. For more details, refer to Sample Apps.
17 Format doxygen-build @geunsik-lim Check a doxygen grammar if a doxygen can normally generates source code
18 Format sloccount @geunsik-lim Count physical source lines of code (SLOC). It is a set of tools for counting physical Source Lines of Code (SLOC) in a large number of languages of a potentially large set of programs.
19 Format misspelling @geunsik-lim Check a misspelled statement in a text document file with GNU Aspell.
20 Audit ... ...
21 Audit ... ...
  • Todo
No Group Checker Author Description
1 Format License @who You have to verify if you may import open source legally into this reposiroty.
2 Audit Blame @who The author get the warning email from CI bot in case that someone generates a regression.

Reference

Clone this wiki locally