f127090517cd611d8430838e7544625755c151af
[ci-management.git] / jjb / com-log / com-log.yaml
1 ---
2 - project:
3     name: com-log-project-view
4     project-name: com-log
5     views:
6       - project-view
7
8 - project:
9     name: com-log-info
10     project: com/log
11     project-name: com-log
12     build-node: centos7-builder-1c-1g
13     jobs:
14       - gerrit-info-yaml-verify
15
16 - _com_log_common: &com_log_common # values apply to all com/log projects
17     name: com-log-common
18     # git repo
19     project: com/log
20     # jenkins job name prefix
21     project-name: com-log
22     # maven settings file has docker credentials
23     mvn-settings: com-log-settings
24     # verify/merge/package/sonar all require this
25     pre-build: !include-raw-escape: setup-com-log-build-deb.sh
26
27 # compile code and run tests
28 - project:
29     <<: *com_log_common
30     name: com-log-lib
31     build-node: ubuntu1804-builder-2c-2g
32     make-opts: -j 2 test
33     # do not trigger on changes in docs, releases
34     gerrit_trigger_file_paths:
35       - compare-type: REG_EXP
36         pattern: '^((?!docs\/|releases\/|\/COMMIT_MSG).)*$'
37     jobs:
38       - gerrit-autotools-verify
39     stream:
40       - master:
41           branch: master
42
43 # common settings for building DEB and RPM packages
44 - _com_log_pkg_common: &com_log_pkg_common
45     name: com-log-pkg-common
46     # directory with package files
47     build-dir: pkg
48     # docker image has the package_cloud gem
49     build-node: ubuntu1804-docker-4c-4g
50     jobs:
51       - gerrit-autotools-packagecloud-stage
52     stream:
53       - master:
54           branch: master
55
56 # build DEB package files
57 - project:
58     <<: *com_log_common
59     <<: *com_log_pkg_common
60     name: com-log-deb
61     project-name: "{name}"
62     configure-opts: --with-deb-dir={build-dir}
63     make-opts: -j4 deb-pkg
64
65 # build RPM package files
66 - project:
67     <<: *com_log_common
68     <<: *com_log_pkg_common
69     name: com-log-rpm
70     project-name: "{name}"
71     configure-opts: --with-rpm-dir={build-dir}
72     # parallel jobs (option -j) fail on rpm build
73     # https://bugzilla.redhat.com/show_bug.cgi?id=1398405
74     make-opts: rpm-pkg
75
76 # analyze C code and test coverage
77 - project:
78     <<: *com_log_common
79     name: com-log-sonarqube
80     build-node: ubuntu1804-docker-4c-4g
81     # set appropriate CXXFLAGS
82     configure-opts: --with-gcov-report-dir=gcov_report
83     # use all cores
84     make-opts: -j4 test_gcov
85     sonar-project-file: ""
86     sonar-properties: |
87       sonar.login={sonarcloud_api_token}
88       sonar.projectKey={sonarcloud_project_organization}_{project-name}
89       sonar.projectName={project-name}
90       sonar.organization={sonarcloud_project_organization}
91       sonar.build.sourceEncoding=UTF-8
92       sonar.sources=src
93       sonar.cfamily.build-wrapper-output=$WORKSPACE/bw-output
94       sonar.cfamily.cache.enabled=false
95       sonar.cfamily.gcov.reportsPath=gcov_report
96       sonar.cfamily.threads=4
97     jobs:
98       - gerrit-autotools-sonarqube
99
100 - project:
101     <<: *com_log_common
102     # these templates ignore the pre-build script
103     name: com-log-release
104     # release uses sigul which requires centos
105     build-node: centos7-builder-1c-1g
106     jobs:
107       - gerrit-packagecloud-release-verify
108       - gerrit-packagecloud-release-merge