私たちのプロジェクトは非常に巨大で、すべてのターゲットを 1 つのコンパイル + 分析 + 公開にまとめると、完了するまでにかなりの時間がかかります。そこで、klocwork 解析を並行して実行したいと思います。
ここに私が今持っているものがあります(ターゲットをさまざまなサブタスクに分割します):
kw-analysis -> kw-analysis-sub-1
| -> kw-analysis-sub-2
| -> ...
| -> kw-analysis-sub-n
| |
| + the sub-task will handle:
| 1. compile single target and generate spec: kwinject_<target_name>.out :
| $ export KWWRAP_HOOKS_DIR='/temp/kw/hooks'
| $ export PATH=${KWWRAP_HOOKS_DIR}:$PATH
| $ make <target_name>
| $ kwinject --trace-in "/temp/kw/kwwrap.trace" --output "kwinject_<target_name>.out"
| 2. trace and anslysis for each target:
| $ kwbuildproject --url "<https://url:port>/<project_name>" [-I] --table-directory kwtable_<target_name> kwinject_<target_name>.out
| 3. archive kwtable_<target_name> folder
|
+ leading job will do:
1. copy all kwtable_<target_name> from sub-analysis jobs (downstream jobs)
2. deploy and publish the result into klocwork sever once for all
<<<<<< this is the key point of parallel analysis
私が知っているように、単一の kwtable を公開することは次のようになります。
$ kwadmin --url <https://url:port> load --name <build_name> <project_name> kwtable_<target_name>
ただし、次の方法でkwadmin
複数の kwtabels をサポートしていないようです。
kwadmin load --name <build_name> ... kwtable_<target_name_1> kwtable_<target_name_2> ...
存在するビルドに追加の結果を追加することもサポートしていません
$ kwadmin load --name <build_name> ... kwtable_<target_name_1>
|
+ create build first
$ kwadmin "append" --name <build_name> ... kwtable_<target_name_2>
*
+ append new result in <build_name> for anothers kwtables folder
では、klocwork 解析を並行して実行する方法はありますか。ところで、統合ツールとして Jenkins を使用しています