Define builders for O-RAN-SC software 04/204/16
authorLott, Christopher (cl778h) <cl778h@att.com>
Wed, 29 May 2019 13:33:29 +0000 (09:33 -0400)
committerJessica Wagantall <jwagantall@linuxfoundation.org>
Fri, 31 May 2019 22:43:41 +0000 (15:43 -0700)
In lieu of installing software to LF Jenkins build minions.

Signed-off-by: Lott, Christopher (cl778h) <cl778h@att.com>
Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
Change-Id: Id066e89694fd9e1d03c5e97608de82bb60622a98

12 files changed:
docker/README.md [new file with mode: 0644]
docker/bldr-ric-alpine-c/Dockerfile [new file with mode: 0644]
docker/bldr-ric-alpine-c/container-tag.yaml [new file with mode: 0644]
docker/bldr-ric-alpine-go/Dockerfile [new file with mode: 0644]
docker/bldr-ric-alpine-go/container-tag.yaml [new file with mode: 0644]
docker/bldr-ric-debian-c/Dockerfile [new file with mode: 0644]
docker/bldr-ric-debian-c/container-tag.yaml [new file with mode: 0644]
docker/bldr-ric-debian-go/Dockerfile [new file with mode: 0644]
docker/bldr-ric-debian-go/container-tag.yaml [new file with mode: 0644]
docker/bldr-ric-debian-python/Dockerfile [new file with mode: 0644]
docker/bldr-ric-debian-python/container-tag.yaml [new file with mode: 0644]
jjb/ci-management/ci-docker.yaml [new file with mode: 0644]

diff --git a/docker/README.md b/docker/README.md
new file mode 100644 (file)
index 0000000..3d7ce0e
--- /dev/null
@@ -0,0 +1,7 @@
+# CI builder images for O-RAN-SC at LF
+
+This area contains Dockerfiles to assemble images that are used to
+compile source and create binary artifacts such as Docker images for
+O-RAN-SC software features.  This approach replaces the common
+practice at LF of installing and maintaining specialty software on
+Jenkins build minions.
diff --git a/docker/bldr-ric-alpine-c/Dockerfile b/docker/bldr-ric-alpine-c/Dockerfile
new file mode 100644 (file)
index 0000000..fc9672b
--- /dev/null
@@ -0,0 +1,38 @@
+# O-RAN-SC
+#
+# Copyright (C) 2019 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.
+# 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.
+
+# Builder image: Alpine 3.9
+# standard packages: C/C++, cmake, etc.
+# RIC libraries: mcdlog (TODO), rmr
+
+FROM alpine:3.9
+RUN apk update && apk add \
+  autoconf \
+  automake \
+  build-base \
+  cmake \
+  libtool \
+  pkgconfig \
+  git
+
+# MCDLOG version 0.0.2, not pinned
+# fails to build in Alpine
+#RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/com/log \
+#  && cd log && ./autogen.sh && ./configure && make && make install
+
+# RMR version 1.0.24
+RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/ric-plt/lib/rmr \
+  && cd rmr && git checkout a012cf63dfdad3656c995cb06c316fd208c63b98 && cmake . && make install
diff --git a/docker/bldr-ric-alpine-c/container-tag.yaml b/docker/bldr-ric-alpine-c/container-tag.yaml
new file mode 100644 (file)
index 0000000..c312245
--- /dev/null
@@ -0,0 +1,2 @@
+---
+tag: a3.9-l0.0.2-r1.0.24
diff --git a/docker/bldr-ric-alpine-go/Dockerfile b/docker/bldr-ric-alpine-go/Dockerfile
new file mode 100644 (file)
index 0000000..426d54c
--- /dev/null
@@ -0,0 +1,39 @@
+# O-RAN-SC
+#
+# Copyright (C) 2019 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.
+# 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.
+
+# Builder image: Alpine 3.9
+# standard packages: Go/C++, cmake, etc.
+# RIC libraries: mcdlog (TODO), rmr
+
+FROM alpine:3.9
+RUN apk update && apk add \
+  autoconf \
+  automake \
+  build-base \
+  cmake \
+  libtool \
+  pkgconfig \
+  git \
+  go
+
+# MCDLOG version 0.0.2, not pinned
+# fails to build in Alpine
+#RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/com/log \
+#  && cd log && ./autogen.sh && ./configure && make && make install
+
+# RMR version 1.0.24
+RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/ric-plt/lib/rmr \
+  && cd rmr && git checkout a012cf63dfdad3656c995cb06c316fd208c63b98 && cmake . && make install
diff --git a/docker/bldr-ric-alpine-go/container-tag.yaml b/docker/bldr-ric-alpine-go/container-tag.yaml
new file mode 100644 (file)
index 0000000..61afe68
--- /dev/null
@@ -0,0 +1,2 @@
+---
+tag: a3.9-g1.11-l0.0.2-r1.0.24
diff --git a/docker/bldr-ric-debian-c/Dockerfile b/docker/bldr-ric-debian-c/Dockerfile
new file mode 100644 (file)
index 0000000..ea3e84f
--- /dev/null
@@ -0,0 +1,38 @@
+# O-RAN-SC
+#
+# Copyright (C) 2019 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.
+# 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.
+
+# Builder image: Debian stretch
+# standard packages: C/C++, cmake, etc.
+# RIC libraries: mcdlog, rmr
+# inherits C and C++ tools from buildpack-deps:stretch
+
+FROM buildpack-deps:stretch
+
+RUN apt-get update && apt-get -q -y install \
+  autoconf \
+  autoconf-archive \
+  automake \
+  cmake \
+  libtool \
+  pkg-config
+
+# version 0.0.2, not pinned
+RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/com/log \
+  && cd log && ./autogen.sh && ./configure && make && make install
+
+# version 1.0.24
+RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/ric-plt/lib/rmr \
+  && cd rmr && git checkout a012cf63dfdad3656c995cb06c316fd208c63b98 && cmake . && make install
diff --git a/docker/bldr-ric-debian-c/container-tag.yaml b/docker/bldr-ric-debian-c/container-tag.yaml
new file mode 100644 (file)
index 0000000..d1ccc1b
--- /dev/null
@@ -0,0 +1,2 @@
+---
+tag: stretch-l0.0.2-r1.0.24
diff --git a/docker/bldr-ric-debian-go/Dockerfile b/docker/bldr-ric-debian-go/Dockerfile
new file mode 100644 (file)
index 0000000..157fd04
--- /dev/null
@@ -0,0 +1,38 @@
+# O-RAN-SC
+#
+# Copyright (C) 2019 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.
+# 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.
+
+# Builder image: Debian stretch
+# standard packages: Go, cmake, etc.
+# RIC libraries: mcdlog, rmr
+# inherits C and C++ tools from buildpack-deps:stretch
+
+FROM golang:1.12
+
+RUN apt-get update && apt-get -q -y install \
+  autoconf \
+  autoconf-archive \
+  automake \
+  cmake \
+  libtool \
+  pkg-config
+
+# version 0.0.2, not pinned
+RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/com/log \
+  && cd log && ./autogen.sh && ./configure && make && make install
+
+# version 1.0.24
+RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/ric-plt/lib/rmr \
+  && cd rmr && git checkout a012cf63dfdad3656c995cb06c316fd208c63b98 && cmake . && make install
diff --git a/docker/bldr-ric-debian-go/container-tag.yaml b/docker/bldr-ric-debian-go/container-tag.yaml
new file mode 100644 (file)
index 0000000..09e9f56
--- /dev/null
@@ -0,0 +1,2 @@
+---
+tag: stretch-g1.12-l0.0.2-r1.0.24
diff --git a/docker/bldr-ric-debian-python/Dockerfile b/docker/bldr-ric-debian-python/Dockerfile
new file mode 100644 (file)
index 0000000..069e363
--- /dev/null
@@ -0,0 +1,38 @@
+# O-RAN-SC
+#
+# Copyright (C) 2019 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.
+# 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.
+
+# Builder image: Debian stretch
+# standard packages: Python, cmake, etc.
+# RIC libraries: mcdlog, rmr
+# inherits C and C++ tools from buildpack-deps:stretch
+
+FROM python:3.7
+
+RUN apt-get update && apt-get -q -y install \
+  autoconf \
+  autoconf-archive \
+  automake \
+  cmake \
+  libtool \
+  pkg-config
+
+# version 0.0.2, not pinned
+RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/com/log \
+  && cd log && ./autogen.sh && ./configure && make && make install
+
+# version 1.0.24
+RUN cd /tmp && git clone https://gerrit.o-ran-sc.org/r/ric-plt/lib/rmr \
+  && cd rmr && git checkout a012cf63dfdad3656c995cb06c316fd208c63b98 && cmake . && make install
diff --git a/docker/bldr-ric-debian-python/container-tag.yaml b/docker/bldr-ric-debian-python/container-tag.yaml
new file mode 100644 (file)
index 0000000..a4245bc
--- /dev/null
@@ -0,0 +1,2 @@
+---
+tag: stretch-p3.7-r1.0.24
diff --git a/jjb/ci-management/ci-docker.yaml b/jjb/ci-management/ci-docker.yaml
new file mode 100644 (file)
index 0000000..1291936
--- /dev/null
@@ -0,0 +1,55 @@
+---
+- ci_docker_common: &ci_docker_common
+    # Defines common ci-docker configuration
+    name: ci-docker-common
+    # git repo
+    project: ci-management
+    build-node: ubuntu1804-docker-4c-4g
+    container-public-registry: nexus3.o-ran-sc.org:10001
+    # use the staging repo bcos all builds are RCs
+    container-push-registry:  nexus3.o-ran-sc.org:10004
+    # use host network to clone from our gerrit
+    docker-build-args: '--network=host'
+    # default to YAML
+    docker-use-params-from: yaml-file-params
+    # maven settings file has docker credentials
+    mvn-settings: ci-management-settings
+    stream:
+      - master:
+          branch: master
+
+- project:
+    <<: *ci_docker_common
+    name: bldr-ric-debian-c
+    project-name: '{project}-{name}'
+    docker-name: '{name}'
+    docker-root: 'docker/{name}'
+    gerrit_trigger_file_paths:
+      - compare-type: REG_EXP
+        pattern: 'docker/{name}/.*'
+    jobs:
+      - '{project-name}-gerrit-docker-jobs'
+
+- project:
+    <<: *ci_docker_common
+    name: bldr-ric-debian-go
+    project-name: '{project}-{name}'
+    docker-name: '{name}'
+    docker-root: 'docker/{name}'
+    gerrit_trigger_file_paths:
+      - compare-type: REG_EXP
+        pattern: 'docker/{name}/.*'
+    jobs:
+      - '{project-name}-gerrit-docker-jobs'
+
+- project:
+    <<: *ci_docker_common
+    name: bldr-ric-debian-python
+    project-name: '{project}-{name}'
+    docker-name: '{name}'
+    docker-root: 'docker/{name}'
+    gerrit_trigger_file_paths:
+      - compare-type: REG_EXP
+        pattern: 'docker/{name}/.*'
+    jobs:
+      - '{project-name}-gerrit-docker-jobs'