From: Lott, Christopher (cl778h) Date: Fri, 13 Mar 2020 14:09:01 +0000 (-0400) Subject: Add jobs for golang project ric-plt/alarm-go X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=1df0a79301bac7b34d70b7ad3902ea8d68984ae9;p=ci-management.git Add jobs for golang project ric-plt/alarm-go Build a docker image and analyze go source with Sonar Use script that installs NNG in Jenkins build minion Signed-off-by: Lott, Christopher (cl778h) Change-Id: I987931a8022d17384873348764c165450e7b9ca6 --- diff --git a/jjb/ric-plt-alarm-go/build-alarm-go-ubuntu.sh b/jjb/ric-plt-alarm-go/build-alarm-go-ubuntu.sh new file mode 100755 index 00000000..cd32d650 --- /dev/null +++ b/jjb/ric-plt-alarm-go/build-alarm-go-ubuntu.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Installs NNG then run a build script in the repository +# Assumes ubuntu - uses apt-get + +echo "--> build-alarm-go-ubuntu.sh" + +echo "Install packages" +sudo apt-get install -y cmake ninja-build + +# NNG repo is not frequently tagged so it's pinned to a commit hash. +# This commit provides fix to the proxy-reconnect +# bug that we identified: https://github.com/nanomsg/nng/issues/970 +echo "Clone and build NNG" +git clone https://github.com/nanomsg/nng.git +(cd nng \ + && git checkout e618abf8f3db2a94269a79c8901a51148d48fcc2 \ + && mkdir build \ + && cd build \ + && cmake3 -DBUILD_SHARED_LIBS=1 -G Ninja .. \ + && ninja-build \ + && sudo ninja-build install) + +cmd="./adapter/build_adapter.sh" +echo "INFO: invoking build script: $cmd" +$cmd + +echo "--> build-alarm-go-ubuntu.sh ends" diff --git a/jjb/ric-plt-alarm-go/ric-plt-alarm-go.yaml b/jjb/ric-plt-alarm-go/ric-plt-alarm-go.yaml index fc4750e8..f0c45fdf 100644 --- a/jjb/ric-plt-alarm-go/ric-plt-alarm-go.yaml +++ b/jjb/ric-plt-alarm-go/ric-plt-alarm-go.yaml @@ -1,4 +1,10 @@ --- +- project: + name: ric-plt-alarm-go-project-view + project-name: ric-plt-alarm-go + views: + - project-view + - project: name: ric-plt-alarm-go-info project: ric-plt/alarm-go @@ -6,3 +12,60 @@ build-node: centos7-builder-1c-1g jobs: - gerrit-info-yaml-verify + +- alarm_go_common: &alarm_go_common + # values apply to all projects + name: alarm-go-common + # git repo + project: ric-plt/alarm-go + # jenkins job name prefix + project-name: ric-plt-alarm-go + # maven settings file has docker credentials + mvn-settings: ric-plt-alarm-go-settings + +- project: + <<: *alarm_go_common + name: ric-plt-alarm-go-docker + # image name + docker-name: 'o-ran-sc/ric-plt-alarm-go' + # source of docker tag + container-tag-method: yaml-file + container-tag-yaml-dir: adapter + # use host network + docker-build-args: '-f adapter/Dockerfile --network=host' + build-node: ubuntu1804-docker-4c-4g + stream: + - master: + branch: master + jobs: + - '{project-name}-gerrit-docker-jobs' + +- project: + <<: *alarm_go_common + name: ric-plt-alarm-go-sonarqube + # docker-enabled nodes have golang + # build script needs ubuntu + build-node: ubuntu1804-docker-2c-8g + sonar-prescan-script: !include-raw-escape: build-alarm-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=coverage.xml + # Inclusions + sonar.inclusions=**/*.go + # Exclusions + sonar.exclusions=**/*_test.go + jobs: + - gerrit-sonar-prescan-script