CI: Disable INFO verify jobs
[ci-management.git] / jjb / com-log / com-log.yaml
index ffd23b7..5d235a3 100644 (file)
@@ -5,44 +5,96 @@
     views:
       - project-view
 
-- log_docker_common: &log_docker_common
-    # values apply to all RIC docker-build projects.
-    # factored out in case log needs multiple projects.
-    # use a specific name to prevent reuse attempts
-    # bcos anchors don't cross document boundaries.
-    name: log-docker-common
+- _com_log_common: &com_log_common # values apply to all com/log projects
+    name: com-log-common
+    # git repo
+    project: com/log
+    # jenkins job name prefix
+    project-name: com-log
+    # maven settings file has docker credentials
+    mvn-settings: com-log-settings
+    # verify/merge/package/sonar all require this
+    pre-build: !include-raw-escape: setup-com-log-build-deb.sh
+
+# compile code and run tests
+- project:
+    <<: *com_log_common
+    name: com-log-lib
+    build-node: ubuntu1804-builder-2c-2g
+    make-opts: -j 2 test
+    # do not trigger on changes in docs, releases
+    gerrit_trigger_file_paths:
+      - compare-type: REG_EXP
+        pattern: '^((?!docs\/|releases\/|\/COMMIT_MSG).)*$'
+    jobs:
+      - gerrit-autotools-verify
+    stream:
+      - master:
+          branch: master
+
+# common settings for building DEB and RPM packages
+- _com_log_pkg_common: &com_log_pkg_common
+    name: com-log-pkg-common
+    # directory with package files
+    build-dir: pkg
+    # docker image has the package_cloud gem
     build-node: ubuntu1804-docker-4c-4g
-    # pull from the public mirror + releases registry
-    container-public-registry: nexus3.o-ran-sc.org:10001
-    # push to the staging repo bcos all builds are RCs
-    container-push-registry: nexus3.o-ran-sc.org:10004
+    jobs:
+      - gerrit-autotools-packagecloud-stage
     stream:
       - master:
           branch: master
 
+# build DEB package files
 - project:
-    name: com-log
-    # git repo
-    project: com/log
-    # jenkins job name prefix
-    project-name: '{name}'
-    # use host network to clone from our gerrit
-    docker-build-args: '--network=host -f ci/Dockerfile'
-    # image name
-    docker-name: '{name}'
-    # image tag, use a fixed value
-    container-tag-method: latest
-    # maven settings file has docker credentials
-    mvn-settings: com-log-settings
+    <<: *com_log_common
+    <<: *com_log_pkg_common
+    name: com-log-deb
+    project-name: "{name}"
+    configure-opts: --with-deb-dir={build-dir}
+    make-opts: -j4 deb-pkg
+
+# build RPM package files
+- project:
+    <<: *com_log_common
+    <<: *com_log_pkg_common
+    name: com-log-rpm
+    project-name: "{name}"
+    configure-opts: --with-rpm-dir={build-dir}
+    # parallel jobs (option -j) fail on rpm build
+    # https://bugzilla.redhat.com/show_bug.cgi?id=1398405
+    make-opts: rpm-pkg
+
+# analyze C code and test coverage
+- project:
+    <<: *com_log_common
+    name: com-log-sonarqube
+    build-node: ubuntu1804-docker-4c-4g
+    # set appropriate CXXFLAGS
+    configure-opts: --with-gcov-report-dir=gcov_report
+    # use all cores
+    make-opts: -j4 test_gcov
+    sonar-project-file: ""
+    sonar-properties: |
+      sonar.login={sonarcloud_api_token}
+      sonar.projectKey={sonarcloud_project_organization}_{project-name}
+      sonar.projectName={project-name}
+      sonar.organization={sonarcloud_project_organization}
+      sonar.build.sourceEncoding=UTF-8
+      sonar.sources=src
+      sonar.cfamily.build-wrapper-output=$WORKSPACE/bw-output
+      sonar.cfamily.cache.enabled=false
+      sonar.cfamily.gcov.reportsPath=gcov_report
+      sonar.cfamily.threads=4
     jobs:
-      - gerrit-docker-verify
-      - oran-gerrit-docker-ci-pc-merge
-    <<: *log_docker_common
+      - gerrit-autotools-sonarqube
 
 - project:
-    name: com-log-info
-    project: com/log
-    project-name: com-log
+    <<: *com_log_common
+    # these templates ignore the pre-build script
+    name: com-log-release
+    # release uses sigul which requires centos
     build-node: centos7-builder-1c-1g
     jobs:
-      - gerrit-info-yaml-verify
+      - gerrit-packagecloud-release-verify
+      - gerrit-packagecloud-release-merge