X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fcom-log%2Fcom-log.yaml;h=266ebaaea4c02896dbd9ab1ed1067fa28ac55ee2;hb=refs%2Fheads%2Fmaster;hp=5465a473e552918d5fe00ab2ec7d654dc36ac679;hpb=1fbe5cad5f5b3ca28ab0c97d103b6f5f469a1a4b;p=ci-management.git diff --git a/jjb/com-log/com-log.yaml b/jjb/com-log/com-log.yaml index 5465a473..5d235a33 100644 --- a/jjb/com-log/com-log.yaml +++ b/jjb/com-log/com-log.yaml @@ -5,47 +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 - # copy packages to Jenkins filesystem - post_docker_build_script: !include-raw-escape: - - ../shell/export-packages.sh + <<: *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: - # TODO: define a merge template to push package, not image - - gerrit-docker-verify - <<: *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