# Has:
# golang 1.13.8
# alpine 3.11
-# rmr 1.13.1
+# rmr 3.6.1
# Installing this version of rmr also pulls in nng
# install a well known working rmr
FROM golang:1.13.8-alpine3.11
RUN apk update && apk add autoconf automake build-base cmake libtool ninja pkgconfig git sudo
-RUN git clone --branch 1.13.1 https://gerrit.oran-osc.org/r/ric-plt/lib/rmr \
+RUN git clone --branch 3.6.1 https://gerrit.oran-osc.org/r/ric-plt/lib/rmr \
&& cd rmr \
&& mkdir .build; cd .build \
&& echo "<<<installing rmr devel headers>>>" \
---
-tag: 2-rmr1.13.1
+tag: 3-rmr-si95-nng-3.6.1
# O-RAN-SC
#
-# Copyright (C) 2019 AT&T Intellectual Property and Nokia
+# Copyright (C) 2019-2020 AT&T Intellectual Property and Nokia
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# See the License for the specific language governing permissions and
# limitations under the License.
-# Builder image Alpine 3.9
+# This is an all-things-to-all-ORAN-people build image with:
+# alpine v 3.11
# gcc/g++ v 8
-# golang v 1.12
+# golang v 1.13.4
# python 3.7
-# nng library (libnng.so, libnng.so.X.X.X; see below for pinned version)
-# Includes RIC libraries as a distribution path because
-# PackageCloud does not support Alpine .apk (yet):
+# nng library (rmr.h, libnng.so, libnng.so.X.X.X; version pinned by RMR)
# mdc log library (libmdclog.so, libmdbclog.so.X.X.X; see below for pinned version)
# rmr library (librmr_nng.so, libmdclog.so..X.X.X; see below for pinned version)
-# How to get a library file from this Docker base image:
-# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:1-a3.9 /usr/local/lib64/libnng.so.X.X.X /usr/local/lib
-# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:1-a3.9 /usr/local/lib64/librmr_nng.so.X.X.X /usr/local/lib
-# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:1-a3.9 /usr/local/lib/libmdclog.so.X.X.X /usr/local/lib
+#
# Some packages install to /usr/local/lib, others to /usr/local/lib64
# Alpine by default searches /usr/local/lib but not /usr/local/lib64
+#
+# How to get library files from this Docker base image:
+# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:TAG /usr/local/lib64/libnng.so.X.X.X /usr/local/lib
+# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:TAG /usr/local/lib64/librmr_nng.so.X.X.X /usr/local/lib
+# COPY --from=nexus3.o-ran-sc.org:10004/bldr-alpine3:TAG /usr/local/lib/libmdclog.so.X.X.X /usr/local/lib
FROM python:3.7-alpine
RUN apk update && apk add \
&& cp /tmp/autoconf-archive/m4/* /usr/share/aclocal \
&& rm -rf /tmp/autoconf-archive
-# 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
-RUN cd /tmp \
- && 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 \
- && ninja install
-
# MCDLOG, version is pinned
RUN cd /tmp \
&& git clone --branch v0.0.4 https://gerrit.o-ran-sc.org/r/com/log \
&& make \
&& make install
-# RMR, version is pinned
-RUN cd /tmp \
- && git clone --branch 1.3.0 https://gerrit.o-ran-sc.org/r/ric-plt/lib/rmr \
+# install a well known working rmr including development header files,
+# which uses a submodule to install NNG at a known commit
+RUN apk update && apk add autoconf automake build-base cmake libtool ninja pkgconfig git sudo
+RUN git clone --branch 3.6.1 https://gerrit.oran-osc.org/r/ric-plt/lib/rmr \
&& cd rmr \
- && mkdir build \
- && cd build \
- && cmake .. \
- && make install
+ && mkdir .build; cd .build \
+ && echo "<<<installing rmr devel headers>>>" \
+ && cmake .. -DDEV_PKG=1; make install \
+ && echo "<<< installing rmr .so>>>" \
+ && cmake .. -DPACK_EXTERNALS=1; make install
# Not feasible to show all the software versions
-# here so just use a counter plus the base image
---
-tag: 6-a3.9-nng
+tag: 7-a3.11-nng-rmr3
IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20200317-165726.675
LABELS=ubuntu1804-builder-2c-2g
HARDWARE_ID=v2-highcpu-2
-VOLUME_SIZE=10
+VOLUME_SIZE=20
IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20200317-165726.675
LABELS=ubuntu1804-builder-4c-4g
HARDWARE_ID=v2-highcpu-4
-VOLUME_SIZE=10
+VOLUME_SIZE=20
---
+- project:
+ name: aal-logic-project-view
+ project-name: aal-logic
+ views:
+ - project-view
+
- project:
name: aal-logic-info
project: aal/logic
jobs:
- gerrit-info-yaml-verify
-- it_dev_common: &it_dev_common
- # values apply to all it/dev projects
- name: it-dev-common
+- it_dev_xo_common: &it_dev_xo_common
+ name: it-dev-xo-common
# git repo
project: it/dev
# jenkins job name prefix
- project-name: it-dev
+ project-name: it-dev-xapp-onboarder
# maven settings file has docker credentials
mvn-settings: it-dev-settings
+- it_dev_xo_py_common: &it_dev_xo_py_common
+ name: it-dev-xo-py-common
+ python-version: python3.6
+ tox-dir: xapp_onboarder
+ tox-envs: py36-lf
+
- project:
- <<: *it_dev_common
+ <<: *it_dev_xo_common
name: it-dev-xapp-onboarder-docker
- # jenkins job name prefix
- project-name: '{name}'
# image name
- docker-name: 'o-ran-sc/{name}'
+ docker-name: 'o-ran-sc/xapp-onboarder'
# source of docker tag
container-tag-method: yaml-file
# dockerfile is in subdir
branch: master
- project:
- <<: *it_dev_common
- name: ric-dev-xapp-onboarder-release
+ <<: *it_dev_xo_common
+ name: it-dev-xapp-onboarder-release
+ # one release job for all items in repo
+ project-name: it-dev
# maven release requires sigul which requires centos
# container release requires docker
build-node: centos7-docker-2c-8g
- '{project-name}-gerrit-release-jobs'
- project:
- <<: *it_dev_common
- name: it-dev-xapp-onboarder-py
- project-name: '{name}'
- python-version: python3.6
- tox-dir: xapp_onboarder
+ <<: *it_dev_xo_common
+ <<: *it_dev_xo_py_common
+ name: it-dev-xapp-onboarder-sonarqube
sonar-project-file: ""
sonar-properties: |
sonar.login={sonarcloud_api_token}
- gerrit-tox-sonarqube
- project:
- <<: *it_dev_common
+ <<: *it_dev_xo_common
+ <<: *it_dev_xo_py_common
name: it-dev-xapp-onboarder-pypi
- project-name: it-dev-xapp-onboarder
- tox-dir: xapp_onboarder
- python-version: python3.6
gerrit_trigger_file_paths:
- compare-type: REG_EXP
pattern: 'xapp_onboarder/.*'
<<: *a1_common
name: ric-plt-a1-docker
# image name
- docker-name: 'o-ran-sc/{name}'
+ docker-name: 'o-ran-sc/ric-plt-a1'
# source of docker tag
container-tag-method: yaml-file
# use host network
jobs:
- gerrit-tox-verify
+- project:
+ <<: *a1_common
+ name: ric-plt-a1-nexusiq-clm
+ build-node: centos7-builder-1c-1g
+ nexus-iq-namespace: oran-
+ jobs:
+ - gerrit-python-xc-clm
+
- project:
<<: *a1_common
name: ric-plt-a1-sonarqube
--- /dev/null
+#!/bin/sh
+##############################################################################
+#
+# Copyright (c) 2020 AT&T Intellectual Property.
+#
+# 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 NNG then runs a build script in the repository
+# Assumes ubuntu - uses apt-get
+
+echo "--> prescan-e2mgr-ubuntu.sh"
+
+set -ex
+
+sudo apt-get update && 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)
+
+# build script must start in this subdir
+cd E2Manager
+bash ./build-e2mgr-ubuntu.sh
+
+echo "--> prescan-e2mgr-ubuntu.sh ends"
build-node: centos7-docker-2c-8g
jobs:
- '{project-name}-gerrit-release-jobs'
+
+- project:
+ name: ric-plt-e2mgr-sonar
+ project: ric-plt/e2mgr
+ project-name: ric-plt-e2mgr
+ # prescan script requires ubuntu
+ # golang is only on docker-enabled nodes
+ build-node: ubuntu1804-docker-4c-4g
+ sonar-prescan-script: !include-raw-escape: prescan-e2mgr-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=E2Manager
+ # Unit tests
+ sonar.go.coverage.reportPaths=coverage.xml
+ # Inclusions
+ sonar.inclusions=**/**.go
+ # Exclusions
+ sonar.exclusions=**/mocks/**.go,**/tests/**.go
+ jobs:
+ - gerrit-sonar-prescan-script