From: Jessica Wagantall Date: Fri, 20 Nov 2020 17:53:23 +0000 (+0000) Subject: Merge " Added sonar job to the com-golog jjb template" X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=a7f9c4ab7d03930ad4445c1792ea1a9d2302035e;hp=559b5a3a20961d872c25e20607d5a72d4fe83406;p=ci-management.git Merge " Added sonar job to the com-golog jjb template" --- diff --git a/global-jjb b/global-jjb index 59faa997..33f5bf5a 160000 --- a/global-jjb +++ b/global-jjb @@ -1 +1 @@ -Subproject commit 59faa9977d726858902dcf513999616aaf6de7a5 +Subproject commit 33f5bf5ae760a7c815e39092a216f42ffcc42fbb diff --git a/jenkins-config/clouds/openstack/cattle/centos7-builder-1c-1g.cfg b/jenkins-config/clouds/openstack/cattle/centos7-builder-1c-1g.cfg index 3021ff55..92ec8475 100644 --- a/jenkins-config/clouds/openstack/cattle/centos7-builder-1c-1g.cfg +++ b/jenkins-config/clouds/openstack/cattle/centos7-builder-1c-1g.cfg @@ -1,3 +1,4 @@ +LABELS=centos7-builder-1c-1g IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20200317-165605.039 -VOLUME_SIZE=20 HARDWARE_ID=v2-highcpu-1 +VOLUME_SIZE=20 diff --git a/jenkins-config/clouds/openstack/cattle/centos7-docker-2c-8g-200g.cfg b/jenkins-config/clouds/openstack/cattle/centos7-docker-2c-8g-200g.cfg index 62407da1..5f4ed865 100644 --- a/jenkins-config/clouds/openstack/cattle/centos7-docker-2c-8g-200g.cfg +++ b/jenkins-config/clouds/openstack/cattle/centos7-docker-2c-8g-200g.cfg @@ -1,3 +1,4 @@ +LABELS=centos7-docker-2c-8g-200g IMAGE_NAME=ZZCI - CentOS 7 - docker - x86_64 - 20200317-104237.628 HARDWARE_ID=v2-standard-2 VOLUME_SIZE=200 diff --git a/jenkins-config/clouds/openstack/cattle/centos7-docker-2c-8g.cfg b/jenkins-config/clouds/openstack/cattle/centos7-docker-2c-8g.cfg index 00cb8b3a..a1a39a1a 100644 --- a/jenkins-config/clouds/openstack/cattle/centos7-docker-2c-8g.cfg +++ b/jenkins-config/clouds/openstack/cattle/centos7-docker-2c-8g.cfg @@ -1,3 +1,4 @@ +LABELS=centos7-docker-2c-8g IMAGE_NAME=ZZCI - CentOS 7 - docker - x86_64 - 20200317-104237.628 HARDWARE_ID=v2-standard-2 VOLUME_SIZE=20 diff --git a/jenkins-config/clouds/openstack/cattle/centos8-builder-1c-1g.cfg b/jenkins-config/clouds/openstack/cattle/centos8-builder-1c-1g.cfg index 1e1fddca..16cb7497 100644 --- a/jenkins-config/clouds/openstack/cattle/centos8-builder-1c-1g.cfg +++ b/jenkins-config/clouds/openstack/cattle/centos8-builder-1c-1g.cfg @@ -1,3 +1,4 @@ +LABELS=centos8-builder-1c-1g IMAGE_NAME=ZZCI - CentOS 8 - builder - x86_64 - 20200403-151332.560 VOLUME_SIZE=20 HARDWARE_ID=v2-highcpu-1 diff --git a/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-2c-2g.cfg b/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-2c-2g.cfg index 1cf46725..c6edac7d 100644 --- a/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-2c-2g.cfg +++ b/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-2c-2g.cfg @@ -1,4 +1,4 @@ -IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20200317-165726.675 LABELS=ubuntu1804-builder-2c-2g +IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20200317-165726.675 HARDWARE_ID=v2-highcpu-2 VOLUME_SIZE=20 diff --git a/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-4c-4g.cfg b/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-4c-4g.cfg index 1c6f38aa..d3310896 100644 --- a/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-4c-4g.cfg +++ b/jenkins-config/clouds/openstack/cattle/ubuntu1804-builder-4c-4g.cfg @@ -1,4 +1,4 @@ -IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20200317-165726.675 LABELS=ubuntu1804-builder-4c-4g +IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20200317-165726.675 HARDWARE_ID=v2-highcpu-4 VOLUME_SIZE=20 diff --git a/jenkins-config/clouds/openstack/cattle/ubuntu1804-docker-4c-4g.cfg b/jenkins-config/clouds/openstack/cattle/ubuntu1804-docker-4c-4g.cfg index 3df02e57..fbaf72b8 100644 --- a/jenkins-config/clouds/openstack/cattle/ubuntu1804-docker-4c-4g.cfg +++ b/jenkins-config/clouds/openstack/cattle/ubuntu1804-docker-4c-4g.cfg @@ -1,4 +1,4 @@ -IMAGE_NAME=ZZCI - Ubuntu 18.04 - docker - x86_64 - 20200317-104132.496 LABELS=ubuntu1804-docker-4c-4g +IMAGE_NAME=ZZCI - Ubuntu 18.04 - docker - x86_64 - 20200317-104132.496 HARDWARE_ID=v2-highcpu-4 VOLUME_SIZE=20 diff --git a/jjb/com-gs-lite/prescan-com-gs-lite-ubuntu.sh b/jjb/com-gs-lite/prescan-com-gs-lite-ubuntu.sh new file mode 100644 index 00000000..df5c570f --- /dev/null +++ b/jjb/com-gs-lite/prescan-com-gs-lite-ubuntu.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +echo "---> cmake-sonarqube.sh starts" + +CMAKE_OPTS= +BUILD_DIR=$WORKSPACE/src +BUILD_WRAP_DIR=$WORKSPACE/bw-output + + +build_dir="${BUILD_DIR:-$WORKSPACE/build}" +build_wrap_dir="${BUILD_WRAP_DIR:-$WORKSPACE/bw-output}" +cmake_opts="${CMAKE_OPTS:-}" +make_opts="${MAKE_OPTS:-}" + +cd src || exit 1 +wget -q -O bw.zip https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip +unzip -q bw.zip +sudo mv build-wrapper-* /opt/build-wrapper + +mkdir -p "$build_dir" +cd "$build_dir" || exit 1 + + +# $make_opts may be empty. +# shellcheck disable=SC2086 +/opt/build-wrapper/build-wrapper-linux-x86-64 --out-dir "$build_wrap_dir" make $make_opts + +echo "---> cmake-sonarqube.sh ends" diff --git a/jjb/com-log/com-log.yaml b/jjb/com-log/com-log.yaml index 658bca01..266ebaae 100644 --- a/jjb/com-log/com-log.yaml +++ b/jjb/com-log/com-log.yaml @@ -102,6 +102,8 @@ <<: *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-packagecloud-release-verify - gerrit-packagecloud-release-merge diff --git a/jjb/com-pylog/com-pylog.yaml b/jjb/com-pylog/com-pylog.yaml index e41e9f04..45a391fb 100644 --- a/jjb/com-pylog/com-pylog.yaml +++ b/jjb/com-pylog/com-pylog.yaml @@ -40,9 +40,60 @@ - gerrit-pypi-verify - gerrit-pypi-stage +- project: + <<: *pylog_common + name: com-pylog-docker + # image name + docker-name: o-ran-sc/com-pylog + # source of docker tag + container-tag-method: yaml-file + # use host network + docker-build-args: '--network=host' + build-node: centos7-docker-2c-8g + # do not trigger on changes in docs, releases + + +- pylog_python: &pylog_python + # settings for python builds + name: com-pylog-python + # the install script assumes an ubuntu image + build-node: ubuntu1804-builder-2c-2g + # impt for verify and tox etc + python-version: python3 + # no need to verify docs + tox-envs: py3 + tox-dir: mdclogpy + + # promote package from test.pypi.org to pypi.org - project: <<: *pylog_common + <<: *pylog_python name: pylog-pypi-release + # do not trigger on changes in docs, releases + gerrit_trigger_file_paths: + - compare-type: REG_EXP + pattern: '^((?!docs\/|releases\/|\/COMMIT_MSG).)*$' jobs: - '{project-name}-gerrit-pypi-release-jobs' + jobs: + - gerrit-tox-verify + stream: + - master: + branch: master + +- project: + <<: *pylog_common + <<: *pylog_python + name: com-pylog-sonarqube + 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=mdclogpy + sonar.python.coverage.reportPaths=$TOX_DIR/coverage.xml + jobs: + - gerrit-tox-sonarqube diff --git a/jjb/nonrtric/nonrtric.yaml b/jjb/nonrtric/nonrtric.yaml index 4d856432..827dbdb1 100644 --- a/jjb/nonrtric/nonrtric.yaml +++ b/jjb/nonrtric/nonrtric.yaml @@ -28,8 +28,7 @@ <<: *nonrtric_jdk_common mvn-params: -Dbuild.number=${{BUILD_NUMBER}} jobs: - - gerrit-maven-docker-verify: - mvn-opts: -Dexec.skip=false + - gerrit-maven-docker-verify - gerrit-maven-docker-merge - gerrit-maven-docker-stage stream: @@ -44,7 +43,7 @@ <<: *nonrtric_jdk_common name: nonrtric-policy-agent project-name: '{name}' - mvn-opts: '-Ddocker.skip=true -Dexec.skip=true' + mvn-opts: '-Ddocker.skip=true' mvn-params: '-f policy-agent' gerrit_trigger_file_paths: - compare-type: REG_EXP @@ -67,7 +66,7 @@ <<: *nonrtric_jdk_common name: nonrtric-sdnc-a1-controller project-name: '{name}' - mvn-opts: '-Ddocker.skip=true -Dexec.skip=true' + mvn-opts: '-Ddocker.skip=true' mvn-params: '-f sdnc-a1-controller/northbound' gerrit_trigger_file_paths: - compare-type: REG_EXP @@ -97,7 +96,7 @@ <<: *nonrtric_jdk_common name: nonrtric-sonar # template goal install builds docker image unnecessarily - mvn-params: '-Ddocker.skip=true -Dexec.skip=true' + mvn-params: '-Ddocker.skip=true' sonarcloud: true sonarcloud-api-token: '{sonarcloud_api_token}' sonarcloud-project-key: '{sonarcloud_project_organization}_{project-name}' diff --git a/jjb/ric-app-hw-go/ric-app-hw-go.yaml b/jjb/ric-app-hw-go/ric-app-hw-go.yaml new file mode 100644 index 00000000..37386ffc --- /dev/null +++ b/jjb/ric-app-hw-go/ric-app-hw-go.yaml @@ -0,0 +1,24 @@ +--- +- project: + name: ric-app-hw-go-project-view + project-name: ric-app-hw-go + views: + - project-view + +- hw-go_common: &hw-go_common + # values apply to all projects + name: hw-go-common + # git repo + project: ric-app/hw-go + # jenkins prefix + project-name: ric-app-hw-go + # maven settings file has docker credentials + mvn-settings: ric-app-hw-go-settings + +# verify INFO.yaml changes +- project: + <<: *hw-go_common + name: ric-app-hw-go-info + build-node: centos7-builder-1c-1g + jobs: + - gerrit-info-yaml-verify diff --git a/jjb/ric-app-hw-python/ric-app-hw-python.yaml b/jjb/ric-app-hw-python/ric-app-hw-python.yaml new file mode 100644 index 00000000..67549cfc --- /dev/null +++ b/jjb/ric-app-hw-python/ric-app-hw-python.yaml @@ -0,0 +1,24 @@ +--- +- project: + name: ric-app-hw-python-project-view + project-name: ric-app-hw-python + views: + - project-view + +- hw-python_common: &hw-python_common + # values apply to all projects + name: hw-python-common + # git repo + project: ric-app/hw-python + # jenkins prefix + project-name: ric-app-hw-python + # maven settings file has docker credentials + mvn-settings: ric-app-hw-python-settings + +# verify INFO.yaml changes +- project: + <<: *hw-python_common + name: ric-app-hw-python-info + build-node: centos7-builder-1c-1g + jobs: + - gerrit-info-yaml-verify diff --git a/jjb/ric-plt-appmgr/prescan-ric-plt-appmgr-ubuntu.sh b/jjb/ric-plt-appmgr/prescan-ric-plt-appmgr-ubuntu.sh new file mode 100644 index 00000000..98809eef --- /dev/null +++ b/jjb/ric-plt-appmgr/prescan-ric-plt-appmgr-ubuntu.sh @@ -0,0 +1,31 @@ +# +# Copyright (c) 2020 HCL Technology Pvt Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#---------------------------------------------------------- + + + +echo "--> prescan-ric-plt-appmgr-ubuntu.sh starts" +cd $WORKSPACE +#docker build --network=host -t nexus3.o-ran-sc.org:10004/o-ran-sc/ric-plt-appmgr:0.5.0 . + +sed -i 's,-cover,-coverprofile cover.out,' Dockerfile + +docker build --network=host -t tmpimg --target=appmgr-build . +CONTAINER=$(docker create tmpimg) +docker cp $CONTAINER:/go/src/ws/cover.out cover.out +docker rm $CONTAINER + +echo "--> prescan-ric-plt-appmgr-ubuntu.sh ends" diff --git a/jjb/ric-plt-appmgr/ric-plt-appmgr.yaml b/jjb/ric-plt-appmgr/ric-plt-appmgr.yaml index 8aff3c6f..af88f953 100644 --- a/jjb/ric-plt-appmgr/ric-plt-appmgr.yaml +++ b/jjb/ric-plt-appmgr/ric-plt-appmgr.yaml @@ -37,6 +37,35 @@ stream: - master: branch: master +- project: + <<: *appmgr_docker_common + name: ric-plt-appmgr-go-sonarqube + # docker-enabled nodes have golang + # build script needs ubuntu + build-node: ubuntu1804-docker-4c-4g + sonar-prescan-script: !include-raw-escape: prescan-ric-plt-appmgr-ubuntu.sh + sonar-project-file: "" + # use sonarcloud values from defaults.yaml + sonar-properties: | + # Required metadata + sonar.login={sonarcloud_api_token} + sonar.projectKey={sonarcloud_project_organization}_{project-name} + sonar.projectName={project-name} + sonar.organization={sonarcloud_project_organization} + # Encoding + sonar.build.sourceEncoding=UTF-8 + # Language + sonar.language=go + # Source + sonar.sources=. + # Unit tests + sonar.go.coverage.reportPaths=**/cover.out + # Inclusions + sonar.inclusions=**/*.go + # Exclusions + sonar.exclusions=**/*_test.go + jobs: + - gerrit-sonar-prescan-script - project: <<: *appmgr_docker_common @@ -46,3 +75,4 @@ build-node: centos7-docker-2c-8g jobs: - '{project-name}-gerrit-release-jobs' + diff --git a/jjb/ric-plt-dbaas/ric-plt-dbaas.yaml b/jjb/ric-plt-dbaas/ric-plt-dbaas.yaml index cc525c4a..6b49119f 100644 --- a/jjb/ric-plt-dbaas/ric-plt-dbaas.yaml +++ b/jjb/ric-plt-dbaas/ric-plt-dbaas.yaml @@ -13,36 +13,91 @@ jobs: - gerrit-info-yaml-verify -- dbaas_docker_common: &dbaas_docker_common - # values apply to all dbaas docker projects - name: dbaas-docker-common +- dbaas_common: &dbaas_common + # values apply to all ric-plt/dbaas projects + name: dbaas-common # git repo project: ric-plt/dbaas # jenkins job name prefix project-name: ric-plt-dbaas - # maven settings file has docker credentials + # maven settings file has credentials mvn-settings: ric-plt-dbaas-settings +# compile code and run tests - project: - <<: *dbaas_docker_common - name: ric-plt-dbaas - # image name - docker-name: 'o-ran-sc/{name}' - # Specify docker file and host network - docker-build-args: '--network=host -f docker/Dockerfile.redis' - # source of docker tag - container-tag-method: yaml-file + <<: *dbaas_common + name: ric-plt-dbaas-lib + pre-build: !include-raw-escape: setup-dbaas-build-deb.sh + build-node: ubuntu1804-builder-2c-2g + make-opts: -j 2 test jobs: - - '{project-name}-gerrit-docker-jobs' + - gerrit-autotools-verify stream: - master: branch: master +# common settings for building DEB and RPM packages +- dbaas_pkg_common: &dbaas_pkg_common + name: ric-plt-pkg-cmn + pre-build: !include-raw-escape: setup-dbaas-build-deb.sh + # directory with package files + build-dir: pkg + # docker image has the package_cloud gem + build-node: ubuntu1804-docker-4c-4g + jobs: + - gerrit-autotools-packagecloud-stage + stream: + - master: + branch: master + +# build DEB package files +- project: + <<: *dbaas_common + <<: *dbaas_pkg_common + name: ric-plt-dbaas-deb + project-name: '{name}' + configure-opts: --with-deb-dir={build-dir} + make-opts: -j4 deb-pkg + +# build RPM package files +- project: + <<: *dbaas_common + <<: *dbaas_pkg_common + name: ric-plt-dbaas-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: + <<: *dbaas_common + name: ric-plt-lib-dbaas-sonarqube + pre-build: !include-raw-escape: setup-dbaas-build-deb.sh + build-node: ubuntu1804-docker-4c-4g + # set appropriate CXXFLAGS + configure-opts: --build=i686-pc-linux-gnu + # use all cores + make-opts: -j4 all + 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-autotools-sonarqube + - project: - <<: *dbaas_docker_common + <<: *dbaas_common name: ric-plt-dbaas-release - # maven release requires sigul which requires centos - # container release requires docker - build-node: centos7-docker-2c-8g jobs: - - '{project-name}-gerrit-release-jobs' + - gerrit-packagecloud-release-verify + - gerrit-packagecloud-release-merge diff --git a/jjb/ric-plt-dbaas/setup-dbaas-build-deb.sh b/jjb/ric-plt-dbaas/setup-dbaas-build-deb.sh new file mode 100644 index 00000000..6b89a091 --- /dev/null +++ b/jjb/ric-plt-dbaas/setup-dbaas-build-deb.sh @@ -0,0 +1,41 @@ +#!/bin/bash +############################################################################## +# +# Copyright (c) 2020 HCL Technology. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +############################################################################## + +# Installs prerequisites needed to compile & test SDL code +# and build RPM/DEB packages on a Debian/Ubuntu machine. + +echo "--> setup-sdl-build-deb.sh" + +# Ensure we fail the job if any steps fail. +set -eux -o pipefail + +# install prereqs +sudo apt-get update && sudo apt-get -q -y install \ + autoconf-archive libhiredis-dev rpm valgrind \ + libboost-filesystem-dev libboost-program-options-dev libboost-system-dev + +# generate configure script +cd redismodule +autoreconf --install +cd .. +curl -L https://github.com/cpputest/cpputest/releases/download/v3.8/cpputest-3.8.tar.gz | \ + tar --strip-components=1 -xzf - +cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_COVERAGE=ON -DMEMORY_LEAK_DETECTION=OFF . +sudo make install +echo "--> setup-sdl-build-deb.sh ends" \ No newline at end of file diff --git a/jjb/ric-plt-sdlgo/prescan-sdlgo-go-ubuntu.sh b/jjb/ric-plt-sdlgo/prescan-sdlgo-go-ubuntu.sh new file mode 100644 index 00000000..b9c27b5e --- /dev/null +++ b/jjb/ric-plt-sdlgo/prescan-sdlgo-go-ubuntu.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# Installs NNG then runs a build script in the repository +# Assumes ubuntu - uses apt-get + +echo "--> prescan-sdlgo-go-ubuntu.sh" + +set -ex + +sudo apt-get install -y cmake ninja-build + +# NNG repo is not frequently tagged so it's pinned to a commit hash. +# This commit repairs bug https://github.com/nanomsg/nng/issues/970 +git clone https://github.com/nanomsg/nng.git +(cd nng \ + && git checkout e618abf8f3db2a94269a79c8901a51148d48fcc2 \ + && mkdir build \ + && cd build \ + && cmake -DBUILD_SHARED_LIBS=1 -G Ninja .. \ + && ninja \ + && sudo ninja install) +#!/bin/bash + +#================================================================================== +# Copyright (c) 2020 AT&T Intellectual Property. +# Copyright (c) 2020 Nokia +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#================================================================================== +# Go install, build, etc +export GOPATH=$HOME/go +export PATH=$GOPATH/bin:$PATH + +# xApp-framework stuff +export CFG_FILE=../config/config-file.json +export RMR_SEED_RT=../config/uta_rtg.rt + +GO111MODULE=on GO_ENABLED=0 GOOS=linux + +# setup version tag +if [ -f container-tag.yaml ] +then + tag=$(grep "tag:" container-tag.yaml | awk '{print $2}') +else + tag="no-tag-found" +fi + +hash=$(git rev-parse --short HEAD || true) + +# Build + +go build -a -installsuffix cgo -ldflags "-X main.Version=$tag -X main.Hash=$hash" -o ./cmd/*.go + +# Execute UT and measure coverage + +go test . -v -coverprofile cover.out || true + +echo "--> build_sdlgo_ubuntu.sh ends" + +echo "--> prescan-sdlgo-go-ubuntu.sh ends" diff --git a/jjb/ric-plt-sdlgo/ric-plt-sdlgo.yaml b/jjb/ric-plt-sdlgo/ric-plt-sdlgo.yaml index c2cea4b0..3e2a454d 100644 --- a/jjb/ric-plt-sdlgo/ric-plt-sdlgo.yaml +++ b/jjb/ric-plt-sdlgo/ric-plt-sdlgo.yaml @@ -38,3 +38,39 @@ stream: - master: branch: master +- project: + <<: *sdlgo_docker_common + name: ric-plt-sdlgo-go-sonarqube + # docker-enabled nodes have golang + # build script needs ubuntu + build-node: ubuntu1804-docker-4c-4g + sonar-prescan-script: !include-raw-escape: prescan-sdlgo-go-ubuntu.sh + sonar-project-file: "" + # use sonarcloud values from defaults.yaml + sonar-properties: | + # Required metadata + sonar.login={sonarcloud_api_token} + sonar.projectKey={sonarcloud_project_organization}_{project-name} + sonar.projectName={project-name} + sonar.organization={sonarcloud_project_organization} + # Encoding + sonar.build.sourceEncoding=UTF-8 + # Language + sonar.language=go + # Source + sonar.sources=. + # Unit tests + sonar.go.coverage.reportPaths=./cover.out,/internal/sdlgoredis/cover.out + # Inclusions + sonar.inclusions=**/*.go + # Exclusions + sonar.exclusions=**/*_test.go + jobs: + - gerrit-sonar-prescan-script + +- project: + <<: *sdlgo_docker_common + name: ric-plt-sdlgo-go-release + build-node: centos7-docker-2c-8g + jobs: + - '{project-name}-gerrit-release-jobs' diff --git a/jjb/ric-plt-streaming-protobufs/prescan-ric-plt-streaming-protobufs-ubuntu.sh b/jjb/ric-plt-streaming-protobufs/prescan-ric-plt-streaming-protobufs-ubuntu.sh new file mode 100644 index 00000000..f60776dd --- /dev/null +++ b/jjb/ric-plt-streaming-protobufs/prescan-ric-plt-streaming-protobufs-ubuntu.sh @@ -0,0 +1,34 @@ +echo "starting prescan-ric-plt-streaming-protobufs-ubuntu.sh" + +#!/bin/sh +# +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2018-2019 Nokia. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# This source code is part of the near-RT RIC (RAN Intelligent Controller) +# platform project (RICP). +# Go install, build, etc +set -e + + +cd $WORKSPACE/protogen/go/streaming_protobufs + +export GO111MODULE=on +go mod download +#No _test.go file for coverage report + +go test $WORKSPACE/protogen/go/streaming_protobufs/ -v -coverprofile cover.out + +echo " prescan-ric-plt-streaming-protobufs-ubuntu.sh ends" diff --git a/jjb/ric-plt-streaming-protobufs/ric-plt-streaming-protobufs.yaml b/jjb/ric-plt-streaming-protobufs/ric-plt-streaming-protobufs.yaml index 094d5eab..11c2d6aa 100644 --- a/jjb/ric-plt-streaming-protobufs/ric-plt-streaming-protobufs.yaml +++ b/jjb/ric-plt-streaming-protobufs/ric-plt-streaming-protobufs.yaml @@ -1,4 +1,10 @@ --- +- project: + name: ric-plt-streaming-protobufs-project-view + project-name: ric-plt-streaming-protobufs + views: + - project-view + - project: name: ric-plt-streaming-protobufs-info project-name: ric-plt-streaming-protobufs @@ -6,3 +12,68 @@ build-node: centos7-builder-1c-1g jobs: - gerrit-info-yaml-verify + +- streaming-protobufs_docker_common: &streaming-protobufs_docker_common + # values apply to all streaming-protobufs docker projects + name: streaming-protobufs-docker-common + # git repo + project: ric-plt/streaming-protobufs + # jenkins job name prefix + project-name: ric-plt-streaming-protobufs + # maven settings file has docker credentials + mvn-settings: ric-plt-streaming-protobufs-settings + +# runs unit tests on verify only +- project: + <<: *streaming-protobufs_docker_common + name: ric-plt-streaming-protobufs + # image name, altho it is never pushed + docker-name: '{name}' + # use host network + docker-build-args: '--network=host -f ci/Dockerfile' + # image tag; use a fixed value + container-tag-method: latest + jobs: + - gerrit-docker-verify + stream: + - master: + branch: master +- project: + <<: *streaming-protobufs_docker_common + name: ric-plt-streaming-protobufs-go-sonarqube + # docker-enabled nodes have golang + # build script needs ubuntu + build-node: ubuntu1804-docker-4c-4g + sonar-prescan-script: !include-raw-escape: prescan-ric-plt-streaming-protobufs-ubuntu.sh + sonar-project-file: "" + # use sonarcloud values from defaults.yaml + sonar-properties: | + # Required metadata + sonar.login={sonarcloud_api_token} + sonar.projectKey={sonarcloud_project_organization}_{project-name} + sonar.projectName={project-name} + sonar.organization={sonarcloud_project_organization} + # Encoding + sonar.build.sourceEncoding=UTF-8 + # Language + sonar.language=go + # Source + sonar.sources=. + # Unit tests + sonar.go.coverage.reportPaths=**/cover.out + # Inclusions + sonar.inclusions=**/*.go + # Exclusions + sonar.exclusions=**/*_test.go + jobs: + - gerrit-sonar-prescan-script + +- project: + <<: *streaming-protobufs_docker_common + name: ric-plt-streaming-protobufs-release + # maven release requires sigul which requires centos + # container release requires docker + build-node: centos7-docker-2c-8g + jobs: + - '{project-name}-gerrit-release-jobs' + diff --git a/jjb/ric-plt-submgr/prescan-ric-plt-submgr-ubuntu.sh b/jjb/ric-plt-submgr/prescan-ric-plt-submgr-ubuntu.sh new file mode 100644 index 00000000..b259d5cd --- /dev/null +++ b/jjb/ric-plt-submgr/prescan-ric-plt-submgr-ubuntu.sh @@ -0,0 +1,30 @@ +# Copyright (c) 2020 HCL Technology Pvt Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#---------------------------------------------------------- +echo "--> build_ric-plt-submgr-ubuntu.sh starts" + +docker --version +echo "Unit Test" +cd $WORKSPACE +#docker build --network=host -t nexus3.o-ran-sc.org:10004/o-ran-sc/ric-plt-submgr:0.5.3 . + +# target submgrbuild +# /tmp/submgr_cover.out +docker build --network=host -t tmpimg --target=submgrbuild . +CONTAINER=$(docker create tmpimg) +docker cp $CONTAINER:/tmp/submgr_cover.out cover.out +docker rm $CONTAINER + +echo "--> prescan-ric-plt-submgr-ubuntu.sh ends" diff --git a/jjb/ric-plt-submgr/ric-plt-submgr.yaml b/jjb/ric-plt-submgr/ric-plt-submgr.yaml index 5ca703ae..f6605e9d 100644 --- a/jjb/ric-plt-submgr/ric-plt-submgr.yaml +++ b/jjb/ric-plt-submgr/ric-plt-submgr.yaml @@ -37,6 +37,35 @@ stream: - master: branch: master +- project: + <<: *submgr_docker_common + name: ric-plt-submgr-go-sonarqube + # docker-enabled nodes have golang + # build script needs ubuntu + build-node: ubuntu1804-docker-4c-4g + sonar-prescan-script: !include-raw-escape: prescan-ric-plt-submgr-ubuntu.sh + sonar-project-file: "" + # use sonarcloud values from defaults.yaml + sonar-properties: | + # Required metadata + sonar.login={sonarcloud_api_token} + sonar.projectKey={sonarcloud_project_organization}_{project-name} + sonar.projectName={project-name} + sonar.organization={sonarcloud_project_organization} + # Encoding + sonar.build.sourceEncoding=UTF-8 + # Language + sonar.language=go + # Source + sonar.sources=. + # Unit tests + sonar.go.coverage.reportPaths=**/cover.out + # Inclusions + sonar.inclusions=**/*.go + # Exclusions + sonar.exclusions=**/*_test.go + jobs: + - gerrit-sonar-prescan-script - project: <<: *submgr_docker_common @@ -46,3 +75,4 @@ build-node: centos7-docker-2c-8g jobs: - '{project-name}-gerrit-release-jobs' + diff --git a/jjb/ric-plt-tracelibcpp/ric-plt-tracelibcpp.yaml b/jjb/ric-plt-tracelibcpp/ric-plt-tracelibcpp.yaml index c9784bd0..a1b306a6 100644 --- a/jjb/ric-plt-tracelibcpp/ric-plt-tracelibcpp.yaml +++ b/jjb/ric-plt-tracelibcpp/ric-plt-tracelibcpp.yaml @@ -13,37 +13,92 @@ jobs: - gerrit-info-yaml-verify -- tracelibcpp_docker_common: &tracelibcpp_docker_common - # values apply to all tracelibcpp docker projects - name: tracelibcpp-docker-common - # git repo +- tracelibcpp_common: &tracelibcpp_common + name: tracelibcpp-common + # git repo project: ric-plt/tracelibcpp # jenkins job name prefix project-name: ric-plt-tracelibcpp - # maven settings file has docker credentials + # maven settings file has credentials to archive artifacts mvn-settings: ric-plt-tracelibcpp-settings + # test scripts depend on this name + build-dir: $WORKSPACE/build + # Use ubuntu base for cmake v3 + # Use docker variant for packagecloud ruby gem + build-node: ubuntu1804-docker-4c-4g + # pre-build scripts for CMake templates: + # install alien package to build RPMS + # install RMR per version file in repo + pre-build: !include-raw-escape: + - ../shell/install-deb-alien.sh + # skip install in cmake-build.sh + install: false +# verify every commit - project: - <<: *tracelibcpp_docker_common - name: ric-plt-tracelibcpp - # image name, altho it is never pushed - docker-name: '{name}' - # use host network - docker-build-args: '--network=host -f ci/Dockerfile' - # image tag; use a fixed value - container-tag-method: latest + <<: *tracelibcpp_common + name: tracelibcpp-verify + cmake-opts: -DDEV_PKG=1 + make-opts: package test ARGS=-V jobs: - - gerrit-docker-verify - - oran-gerrit-docker-ci-pc-merge + - gerrit-cmake-verify stream: - master: branch: master +# development library - package and publish - project: + <<: *tracelibcpp_common + name: ric-plt-tracelibcpp-dev + project-name: '{name}' + cmake-opts: -DDEV_PKG=1 + make-opts: package + install-prefix: /usr/local + jobs: + - gerrit-cmake-packagecloud-stage + stream: + - master: + branch: master + +# runtime library - package and publish +- project: + <<: *tracelibcpp_common + name: ric-plt-tracelibcpp-rt + project-name: '{name}' + cmake-opts: -DDEV_PKG=0 + make-opts: package + install-prefix: /usr/local + jobs: + - gerrit-cmake-packagecloud-stage + stream: + - master: + branch: master + +# promote deb/rpm from staging to release at PackageCloud.io +- project: + <<: *tracelibcpp_common name: ric-plt-tracelibcpp-release - project: ric-plt/tracelibcpp - project-name: ric-plt-tracelibcpp + # release uses sigul which requires centos build-node: centos7-builder-1c-1g jobs: - gerrit-packagecloud-release-verify - gerrit-packagecloud-release-merge + +# analyze C code and test coverage +- project: + name: tracelibcpp-sonarqube + <<: *tracelibcpp_common + make-opts: -j8 all + 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.scanner.force-deprecated-java-version=true + sonar.build.sourceEncoding=UTF-8 + sonar.sources=src + sonar.cfamily.build-wrapper-output=$WORKSPACE/bw-output + sonar.cfamily.gcov.reportsPath=test + jobs: + - gerrit-cmake-sonarqube diff --git a/jjb/ric-plt-tracelibgo/prescan-ric-plt-tracelibgo-ubuntu.sh b/jjb/ric-plt-tracelibgo/prescan-ric-plt-tracelibgo-ubuntu.sh new file mode 100644 index 00000000..9810feed --- /dev/null +++ b/jjb/ric-plt-tracelibgo/prescan-ric-plt-tracelibgo-ubuntu.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2018-2019 Nokia. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# This source code is part of the near-RT RIC (RAN Intelligent Controller) +# platform project (RICP). +# + + +set -e + +export GO111MODULE=on +go mod download +go test ./pkg/tracelibgo -v -coverprofile cover.out diff --git a/jjb/ric-plt-tracelibgo/ric-plt-tracelibgo.yaml b/jjb/ric-plt-tracelibgo/ric-plt-tracelibgo.yaml index 5b4c628c..06a42818 100644 --- a/jjb/ric-plt-tracelibgo/ric-plt-tracelibgo.yaml +++ b/jjb/ric-plt-tracelibgo/ric-plt-tracelibgo.yaml @@ -38,3 +38,41 @@ stream: - master: branch: master +- project: + <<: *tracelibgo_docker_common + name: ric-plt-tracelibgo-go-sonarqube + # docker-enabled nodes have golang + # build script needs ubuntu + build-node: ubuntu1804-docker-4c-4g + sonar-prescan-script: !include-raw-escape: prescan-ric-plt-tracelibgo-ubuntu.sh + sonar-project-file: "" + # use sonarcloud values from defaults.yaml + sonar-properties: | + # Required metadata + sonar.login={sonarcloud_api_token} + sonar.projectKey={sonarcloud_project_organization}_{project-name} + sonar.projectName={project-name} + sonar.organization={sonarcloud_project_organization} + # Encoding + sonar.build.sourceEncoding=UTF-8 + # Language + sonar.language=go + # Source + sonar.sources=. + # Unit tests + sonar.go.coverage.reportPaths=**/cover.out + # Inclusions + sonar.inclusions=**/*.go + # Exclusions + sonar.exclusions=**/*_test.go + jobs: + - gerrit-sonar-prescan-script + +- project: + <<: *tracelibgo_docker_common + name: ric-plt-tracelibgo-release + # maven release requires sigul which requires centos + # container release requires docker + build-node: centos7-docker-2c-8g + jobs: + - '{project-name}-gerrit-release-jobs' diff --git a/jjb/ric-plt-utils/Dockerfile.build b/jjb/ric-plt-utils/Dockerfile.build new file mode 100644 index 00000000..387bef39 --- /dev/null +++ b/jjb/ric-plt-utils/Dockerfile.build @@ -0,0 +1,83 @@ +# vi: ts=4 sw=4 noet: + +#================================================================================== +# Copyright (c) 2020 AT&T Intellectual Property. +# Copyright (c) 2020 Nokia +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#================================================================================== + +# Build the munchkin container assuming that the current working directory is the +# top of the munchkin portion of the shared repo. + +# ---- these are global and must be set before the first from directive +# +# package versions and locations for easier maintenance +ARG RMR_VER=4.1.4 +ARG LOG_VER=0.0.4 +ARG FRAME_VER=2.2.0 + +ARG PROD_URL_BASE=https://packagecloud.io/o-ran-sc/release/packages/debian/stretch/ +ARG BETA_URL_BASE=https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/ + +ARG LOG_BASE=${PROD_URL_BASE} +ARG RMR_BASE=${BETA_URL_BASE} +ARG FRAME_BASE=${BETA_URL_BASE} + + +# ----------------------------------------------------------------------------------------------------- +FROM ubuntu:18.04 + +RUN apt-get update \ + && apt-get install -y git cmake make g++ wget curl libcurl4-gnutls-dev libcurlpp-dev libcurlpp0 + + +# sadly they need to be 'touched' to pull them into each stage +ARG RMR_VER +ARG LOG_VER +ARG FRAME_VER +ARG FRAME_BASE +ARG RMR_BASE +ARG LOG_BASE + +WORKDIR /playpen/down + +RUN wget --content-disposition ${LOG_BASE}/mdclog_${LOG_VER}-1_amd64.deb/download.deb \ + && wget --content-disposition ${LOG_BASE}/mdclog-dev_${LOG_VER}-1_amd64.deb/download.deb \ + && wget --content-disposition ${RMR_BASE}/rmr-dev_${RMR_VER}_amd64.deb/download.deb \ + && wget --content-disposition ${RMR_BASE}/rmr_${RMR_VER}_amd64.deb/download.deb \ + && wget --content-disposition ${FRAME_BASE}/ricxfcpp_${FRAME_VER}_amd64.deb/download.deb \ + && wget --content-disposition ${FRAME_BASE}/ricxfcpp-dev_${FRAME_VER}_amd64.deb/download.deb \ + && dpkg -i *deb + + + +WORKDIR /playpen/build +COPY ./ ./ + +# build the utility; installs into /usr/local/bin +# +RUN rm -fr .build \ + && mkdir .build \ + && cd .build \ + && cmake .. \ + && make install \ + && make test ARGS="-V" + + + +#RUN mkdir /var/mgxapp +#COPY xapp_config.json /var/mgxapp/config.json + +#WORKDIR /playpen +#CMD [ "munchkin", "-c", "/var/mgxapp/config.json" ] \ No newline at end of file diff --git a/jjb/ric-plt-utils/cmake-sonarqube.sh b/jjb/ric-plt-utils/cmake-sonarqube.sh new file mode 100644 index 00000000..891f1c3f --- /dev/null +++ b/jjb/ric-plt-utils/cmake-sonarqube.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# SPDX-License-Identifier: EPL-1.0 +############################################################################## +# Copyright (c) 2020 HCL Technologies and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +############################################################################## +echo "---> cmake-sonarqube.sh" +cd mgxapp +docker build -t ric-plt-utils -f Dockerfile.build . +docker create --name ric-plt-utils ric-plt-utils +docker cp ric-plt-utils:/playpen/build/test/ . +docker rm ric-plt-utils +echo "---> cmake-sonarqube.sh ends" \ No newline at end of file diff --git a/jjb/ric-plt-utils/ric-plt-utils.yaml b/jjb/ric-plt-utils/ric-plt-utils.yaml index 276db491..3735fc65 100644 --- a/jjb/ric-plt-utils/ric-plt-utils.yaml +++ b/jjb/ric-plt-utils/ric-plt-utils.yaml @@ -7,8 +7,104 @@ - project: name: ric-plt-utils-info - project: ric-plt/utils + project: ric-plt-utils project-name: ric-plt-utils build-node: centos7-builder-1c-1g jobs: - gerrit-info-yaml-verify + +- utils_common: &utils_common + name: utils-common + # git repo + project: ric-plt/utils + # jenkins job name prefix + project-name: ric-plt-utils + # maven settings file has credentials to archive artifacts + mvn-settings: ric-plt-utils-settings + # test scripts depend on this name + build-dir: $WORKSPACE/mgxapp/build + # Use ubuntu base for cmake v3 + # Use docker variant for packagecloud ruby gem + build-node: ubuntu1804-docker-4c-4g + # pre-build scripts for CMake templates: + # install alien package to build RPMS + # install RMR per version file in repo + pre-build: !include-raw-escape: + - ../shell/install-deb-alien.sh + - ./cmake-sonarqube.sh + # skip install in cmake-build.sh + install: false + +# verify every commit +- project: + <<: *utils_common + name: utils-verify + cmake-opts: -DDEV_PKG=1 + make-opts: package test ARGS=-V + jobs: + - gerrit-cmake-verify + stream: + - master: + branch: master + +# development library - package and publish +- project: + <<: *utils_common + name: ric-plt-utils-dev + project-name: '{name}' + cmake-opts: -DDEV_PKG=1 + make-opts: package + install-prefix: /usr/local + jobs: + - gerrit-cmake-packagecloud-stage + stream: + - master: + branch: master + +# runtime library - package and publish +- project: + <<: *utils_common + name: ric-plt-utils-rt + project-name: '{name}' + cmake-opts: -DDEV_PKG=0 + make-opts: package + install-prefix: /usr/local + jobs: + - gerrit-cmake-packagecloud-stage + stream: + - master: + branch: master + +# promote deb/rpm from staging to release at PackageCloud.io +- project: + <<: *utils_common + name: ric-plt-utils-release + # release uses sigul which requires centos + build-node: centos7-builder-1c-1g + jobs: + - gerrit-packagecloud-release-verify + - gerrit-packagecloud-release-merge + +# analyze C code and test coverage +- project: + name: utils-sonarqube + <<: *utils_common + make-opts: test ARGS=-V + 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.scanner.force-deprecated-java-version=true + sonar.build.sourceEncoding=UTF-8 + sonar.sources=mgxapp/src + sonar.cfamily.threads=4 + sonar.cfamily.cache.enabled=false + sonar.cfamily.build-wrapper-output=$WORKSPACE/bw-output + sonar.cfamily.gcov.reportsPath=test + sonar.c.file.suffixes=- + sonar.cpp.file.suffixes=- + sonar.objc.file.suffixes=- + jobs: + - gerrit-cmake-sonarqube diff --git a/jjb/ric-plt-vespamgr/prescan-ric-plt-vespamgr-ubuntu.sh b/jjb/ric-plt-vespamgr/prescan-ric-plt-vespamgr-ubuntu.sh new file mode 100644 index 00000000..fba08538 --- /dev/null +++ b/jjb/ric-plt-vespamgr/prescan-ric-plt-vespamgr-ubuntu.sh @@ -0,0 +1,46 @@ +echo "--> prescan-ric-plt-vespamgr-ubuntu.sh starts" + +#!/bin/bash +# +# Copyright (c) 2019 AT&T Intellectual Property. +# Copyright (c) 2018-2019 Nokia. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# This source code is part of the near-RT RIC (RAN Intelligent Controller) +# platform project (RICP). +# + + +set -e +set -x +# Load modules +GO111MODULE=on go mod download +export GOPATH=$HOME/go +export PATH=$GOPATH/bin:$GOROOT/bin:$PATH + +# Run vesmgr UT & Coverage +go test ./... -v -coverprofile cover.out + +# setup version tag +if [ -f container-tag.yaml ] +then + tag=$(grep "tag:" container-tag.yaml | awk '{print $2}') +else + tag="-" +fi + +hash=$(git rev-parse --short HEAD || true) + +# Install vesmgr +go install -ldflags "-X main.Version=$tag -X main.Hash=$hash" -v ./cmd/vesmgr diff --git a/jjb/ric-plt-vespamgr/ric-plt-vespamgr.yaml b/jjb/ric-plt-vespamgr/ric-plt-vespamgr.yaml index f76407f6..5c9bb2ef 100644 --- a/jjb/ric-plt-vespamgr/ric-plt-vespamgr.yaml +++ b/jjb/ric-plt-vespamgr/ric-plt-vespamgr.yaml @@ -37,6 +37,35 @@ stream: - master: branch: master +- project: + <<: *vespamgr_docker_common + name: ric-plt-vespamgr-go-sonarqube + # docker-enabled nodes have golang + # build script needs ubuntu + build-node: ubuntu1804-docker-4c-4g + sonar-prescan-script: !include-raw-escape: prescan-ric-plt-vespamgr-ubuntu.sh + sonar-project-file: "" + # use sonarcloud values from defaults.yaml + sonar-properties: | + # Required metadata + sonar.login={sonarcloud_api_token} + sonar.projectKey={sonarcloud_project_organization}_{project-name} + sonar.projectName={project-name} + sonar.organization={sonarcloud_project_organization} + # Encoding + sonar.build.sourceEncoding=UTF-8 + # Language + sonar.language=go + # Source + sonar.sources=. + # Unit tests + sonar.go.coverage.reportPaths=**/cover.out + # Inclusions + sonar.inclusions=**/*.go + # Exclusions + sonar.exclusions=**/*_test.go + jobs: + - gerrit-sonar-prescan-script - project: <<: *vespamgr_docker_common @@ -46,3 +75,4 @@ build-node: centos7-docker-2c-8g jobs: - '{project-name}-gerrit-release-jobs' + diff --git a/jjb/ric-plt-xapp-frame/prescan-ric-plt-xapp-frame-ubuntu.sh b/jjb/ric-plt-xapp-frame/prescan-ric-plt-xapp-frame-ubuntu.sh new file mode 100644 index 00000000..33b716ea --- /dev/null +++ b/jjb/ric-plt-xapp-frame/prescan-ric-plt-xapp-frame-ubuntu.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# +# Copyright (c) 2020 HCL Technologies Pvt +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# This source code is part of the near-RT RIC (RAN Intelligent Controller) +# platform project (RICP). +# + +docker --version +echo "Unit Test" +cd $WORKSPACE +docker build --network=host -f ci/Dockerfile -t nexus3.o-ran-sc.org:10004/ric-plt-xapp-frame:latest . diff --git a/jjb/ric-plt-xapp-frame/ric-plt-xapp-frame.yaml b/jjb/ric-plt-xapp-frame/ric-plt-xapp-frame.yaml index 834d5960..b9b7b094 100644 --- a/jjb/ric-plt-xapp-frame/ric-plt-xapp-frame.yaml +++ b/jjb/ric-plt-xapp-frame/ric-plt-xapp-frame.yaml @@ -38,3 +38,41 @@ stream: - master: branch: master +- project: + <<: *xapp_frame_docker_common + name: ric-plt-xapp-frame-go-sonarqube + # docker-enabled nodes have golang + # build script needs ubuntu + build-node: ubuntu1804-docker-4c-4g + sonar-prescan-script: !include-raw-escape: prescan-ric-plt-xapp-frame-ubuntu.sh + sonar-project-file: "" + # use sonarcloud values from defaults.yaml + sonar-properties: | + # Required metadata + sonar.login={sonarcloud_api_token} + sonar.projectKey={sonarcloud_project_organization}_{project-name} + sonar.projectName={project-name} + sonar.organization={sonarcloud_project_organization} + # Encoding + sonar.build.sourceEncoding=UTF-8 + # Language + sonar.language=go + # Source + sonar.sources=. + # Unit tests + sonar.go.coverage.reportPaths=**/cover.out + # Inclusions + sonar.inclusions=**/*.go + # Exclusions + sonar.exclusions=**/*_test.go + jobs: + - gerrit-sonar-prescan-script + +- project: + <<: *xapp_frame_docker_common + name: ric-plt-xapp-frame-release + # maven release requires sigul which requires centos + # container release requires docker + build-node: centos7-docker-2c-8g + jobs: + - '{project-name}-gerrit-release-jobs' diff --git a/jjb/sim-o1-interface/sim-o1-interface.yaml b/jjb/sim-o1-interface/sim-o1-interface.yaml index 16c15e7c..42bc3bff 100644 --- a/jjb/sim-o1-interface/sim-o1-interface.yaml +++ b/jjb/sim-o1-interface/sim-o1-interface.yaml @@ -24,7 +24,7 @@ mvn-settings: sim-o1-interface-settings # source of docker tag container-tag-method: yaml-file - docker-root: ntsimulator + # if no container-tag-yaml-dir is defined, container-tag.yml is taken from the docker-root build-node: ubuntu1804-docker-4c-4g jobs: - '{project-name}-gerrit-docker-jobs' @@ -34,67 +34,63 @@ - project: <<: *sim_o1_interface_docker - name: sim-o1-interface-ntsim-manager + name: sim-o1-interface-ntsim-ng-base # jenkins job name prefix project-name: '{name}' # image name - docker-name: 'o-ran-sc/ntsim-manager' + docker-name: 'o-ran-sc/nts-ng-base' # dockerfile is in subdir - docker-build-args: '--network=host -f deploy/nts-manager/Dockerfile' - # tag file is in subdir - container-tag-yaml-dir: ntsimulator/deploy/nts-manager + docker-build-args: '--network=host -f deploy/base/ubuntu.Dockerfile' + # tag file latest, since it is base for others + container-tag-method: latest + docker-root: ntsimulator gerrit_trigger_file_paths: - compare-type: REG_EXP - pattern: 'ntsimulator/deploy/nts-manager/.*' + pattern: 'ntsimulator/ntsim-ng/.*' - compare-type: REG_EXP - pattern: 'ntsimulator/src/ntsimulator-manager/.*' - - compare-type: REG_EXP - pattern: 'ntsimulator/yang/nts-manager/.*' + pattern: 'ntsimulator/deploy/base/.*' - project: <<: *sim_o1_interface_docker - name: sim-o1-interface-o-ran-ru-fh + name: sim-o1-interface-ntsim-ng-manager # jenkins job name prefix project-name: '{name}' # image name - docker-name: 'o-ran-sc/ntsim-o-ran-ru-fh' + docker-name: 'o-ran-sc/ntsim-ng-manager' # dockerfile is in subdir - docker-build-args: '--network=host -f deploy/o-ran/ru-fh/Dockerfile' - # tag file is in subdir - container-tag-yaml-dir: ntsimulator/deploy/o-ran/ru-fh + docker-build-args: '--network=host -f ubuntu.Dockerfile' + docker-root: ntsimulator/deploy/nts-manager gerrit_trigger_file_paths: - compare-type: REG_EXP - pattern: 'ntsimulator/.*' + pattern: 'ntsimulator/deploy/nts-manager/.*' - project: <<: *sim_o1_interface_docker - name: sim-o1-interface-o-ran-ru + name: sim-o1-interface-ntsim-ng-o-ran-fh # jenkins job name prefix project-name: '{name}' # image name - docker-name: 'o-ran-sc/ntsim-o-ran-ru' + docker-name: ' o-ran-sc/nts-ng-o-ran-fh' # dockerfile is in subdir - docker-build-args: '--network=host -f deploy/o-ran-sc/o-ran-ru/Dockerfile' - # tag file is in subdir - container-tag-yaml-dir: ntsimulator/deploy/o-ran-sc/o-ran-ru + docker-build-args: '--network=host -f ubuntu.Dockerfile' + docker-root: ntsimulator/deploy/o-ran gerrit_trigger_file_paths: - compare-type: REG_EXP - pattern: 'ntsimulator/.*' + pattern: 'ntsimulator/deploy/o-ran/.*' - project: <<: *sim_o1_interface_docker - name: sim-o1-interface-x-ran + name: sim-o1-interface-ntsim-ng-x-ran # jenkins job name prefix project-name: '{name}' # image name - docker-name: 'o-ran-sc/ntsim-x-ran' + docker-name: 'o-ran-sc/nts-ng-x-ran' # dockerfile is in subdir - docker-build-args: '--network=host -f deploy/x-ran/Dockerfile' - # tag file is in subdir - container-tag-yaml-dir: ntsimulator/deploy/x-ran + docker-build-args: '--network=host -f ubuntu.Dockerfile' + docker-root: ntsimulator/deploy/x-ran gerrit_trigger_file_paths: - compare-type: REG_EXP - pattern: 'ntsimulator/.*' + pattern: 'ntsimulator/deploy/x-ran/.*' - project: <<: *sim_o1_interface_docker diff --git a/jjb/smo-a1/smo-a1.yaml b/jjb/smo-a1/smo-a1.yaml new file mode 100644 index 00000000..afb51f5a --- /dev/null +++ b/jjb/smo-a1/smo-a1.yaml @@ -0,0 +1,14 @@ +--- +- project: + name: smo-a1-project-view + project-name: smo-a1 + views: + - project-view + +- project: + name: smo-a1-info + project: smo/a1 + project-name: smo-a1 + build-node: centos7-builder-1c-1g + jobs: + - gerrit-info-yaml-verify diff --git a/jjb/smo-app/smo-app.yaml b/jjb/smo-app/smo-app.yaml new file mode 100644 index 00000000..1029b7aa --- /dev/null +++ b/jjb/smo-app/smo-app.yaml @@ -0,0 +1,14 @@ +--- +- project: + name: smo-app-project-view + project-name: smo-app + views: + - project-view + +- project: + name: smo-app-info + project: smo/app + project-name: smo-app + build-node: centos7-builder-1c-1g + jobs: + - gerrit-info-yaml-verify diff --git a/jjb/smo-o1/smo-o1.yaml b/jjb/smo-o1/smo-o1.yaml new file mode 100644 index 00000000..66031fe1 --- /dev/null +++ b/jjb/smo-o1/smo-o1.yaml @@ -0,0 +1,14 @@ +--- +- project: + name: smo-o1-project-view + project-name: smo-o1 + views: + - project-view + +- project: + name: smo-o1-info + project: smo/o1 + project-name: smo-o1 + build-node: centos7-builder-1c-1g + jobs: + - gerrit-info-yaml-verify diff --git a/jjb/smo-ves/smo-ves.yaml b/jjb/smo-ves/smo-ves.yaml new file mode 100644 index 00000000..d1dd6518 --- /dev/null +++ b/jjb/smo-ves/smo-ves.yaml @@ -0,0 +1,14 @@ +--- +- project: + name: smo-ves-project-view + project-name: smo-ves + views: + - project-view + +- project: + name: smo-ves-info + project: smo/ves + project-name: smo-ves + build-node: centos7-builder-1c-1g + jobs: + - gerrit-info-yaml-verify diff --git a/jjb/smo/smo.yaml b/jjb/smo/smo.yaml new file mode 100644 index 00000000..5897a9d7 --- /dev/null +++ b/jjb/smo/smo.yaml @@ -0,0 +1,14 @@ +--- +- project: + name: smo-project-view + project-name: smo + views: + - project-view + +- project: + name: smo-info + project: smo + project-name: smo + build-node: centos7-builder-1c-1g + jobs: + - gerrit-info-yaml-verify