From d13fde11532c0d3bf4f9a03598f5ec7db4a38243 Mon Sep 17 00:00:00 2001 From: "Lott, Christopher (cl778h)" Date: Wed, 29 May 2019 09:33:29 -0400 Subject: [PATCH] Define builders for O-RAN-SC software In lieu of installing software to LF Jenkins build minions. Signed-off-by: Lott, Christopher (cl778h) Signed-off-by: Jessica Wagantall Change-Id: Id066e89694fd9e1d03c5e97608de82bb60622a98 --- docker/README.md | 7 +++ docker/bldr-ric-alpine-c/Dockerfile | 38 ++++++++++++++++ docker/bldr-ric-alpine-c/container-tag.yaml | 2 + docker/bldr-ric-alpine-go/Dockerfile | 39 +++++++++++++++++ docker/bldr-ric-alpine-go/container-tag.yaml | 2 + docker/bldr-ric-debian-c/Dockerfile | 38 ++++++++++++++++ docker/bldr-ric-debian-c/container-tag.yaml | 2 + docker/bldr-ric-debian-go/Dockerfile | 38 ++++++++++++++++ docker/bldr-ric-debian-go/container-tag.yaml | 2 + docker/bldr-ric-debian-python/Dockerfile | 38 ++++++++++++++++ docker/bldr-ric-debian-python/container-tag.yaml | 2 + jjb/ci-management/ci-docker.yaml | 55 ++++++++++++++++++++++++ 12 files changed, 263 insertions(+) create mode 100644 docker/README.md create mode 100644 docker/bldr-ric-alpine-c/Dockerfile create mode 100644 docker/bldr-ric-alpine-c/container-tag.yaml create mode 100644 docker/bldr-ric-alpine-go/Dockerfile create mode 100644 docker/bldr-ric-alpine-go/container-tag.yaml create mode 100644 docker/bldr-ric-debian-c/Dockerfile create mode 100644 docker/bldr-ric-debian-c/container-tag.yaml create mode 100644 docker/bldr-ric-debian-go/Dockerfile create mode 100644 docker/bldr-ric-debian-go/container-tag.yaml create mode 100644 docker/bldr-ric-debian-python/Dockerfile create mode 100644 docker/bldr-ric-debian-python/container-tag.yaml create mode 100644 jjb/ci-management/ci-docker.yaml diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 00000000..3d7ce0ec --- /dev/null +++ b/docker/README.md @@ -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 index 00000000..fc9672b9 --- /dev/null +++ b/docker/bldr-ric-alpine-c/Dockerfile @@ -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 index 00000000..c3122450 --- /dev/null +++ b/docker/bldr-ric-alpine-c/container-tag.yaml @@ -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 index 00000000..426d54c1 --- /dev/null +++ b/docker/bldr-ric-alpine-go/Dockerfile @@ -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 index 00000000..61afe685 --- /dev/null +++ b/docker/bldr-ric-alpine-go/container-tag.yaml @@ -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 index 00000000..ea3e84f9 --- /dev/null +++ b/docker/bldr-ric-debian-c/Dockerfile @@ -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 index 00000000..d1ccc1b4 --- /dev/null +++ b/docker/bldr-ric-debian-c/container-tag.yaml @@ -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 index 00000000..157fd043 --- /dev/null +++ b/docker/bldr-ric-debian-go/Dockerfile @@ -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 index 00000000..09e9f56b --- /dev/null +++ b/docker/bldr-ric-debian-go/container-tag.yaml @@ -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 index 00000000..069e3639 --- /dev/null +++ b/docker/bldr-ric-debian-python/Dockerfile @@ -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 index 00000000..a4245bc4 --- /dev/null +++ b/docker/bldr-ric-debian-python/container-tag.yaml @@ -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 index 00000000..12919361 --- /dev/null +++ b/jjb/ci-management/ci-docker.yaml @@ -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' -- 2.16.6