Add jobs for golang project ric-plt/alarm-go 74/2774/2
authorLott, Christopher (cl778h) <cl778h@att.com>
Fri, 13 Mar 2020 14:09:01 +0000 (10:09 -0400)
committerLott, Christopher (cl778h) <cl778h@att.com>
Fri, 13 Mar 2020 15:24:20 +0000 (11:24 -0400)
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) <cl778h@att.com>
Change-Id: I987931a8022d17384873348764c165450e7b9ca6

jjb/ric-plt-alarm-go/build-alarm-go-ubuntu.sh [new file with mode: 0755]
jjb/ric-plt-alarm-go/ric-plt-alarm-go.yaml

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 (executable)
index 0000000..cd32d65
--- /dev/null
@@ -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"
index fc4750e..f0c45fd 100644 (file)
@@ -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