Add CI-based build of rtmgr using multiple stages 66/266/5 v0.1.0
authorLott, Christopher (cl778h) <cl778h@att.com>
Wed, 5 Jun 2019 19:51:17 +0000 (15:51 -0400)
committerLott, Christopher (cl778h) <cl778h@att.com>
Tue, 18 Jun 2019 10:05:08 +0000 (06:05 -0400)
Created single Dockerfile based on existing files.
Added tag-definition file that is read by the Jenkins job
that builds a Docker image.
Upgrade to go version 1.12.
Un-ignore and add .gitreview file.

Signed-off-by: Lott, Christopher (cl778h) <cl778h@att.com>
Change-Id: Ic1c15844a83b36e59bd94f8ea5c424e41177908d

.gitattributes [new file with mode: 0644]
.gitignore
.gitreview [new file with mode: 0644]
Dockerfile [moved from build/binary/Dockerfile with 61% similarity]
build/binary/compile.sh [deleted file]
build/container/Dockerfile [deleted file]
container-tag.yaml [new file with mode: 0644]

diff --git a/.gitattributes b/.gitattributes
new file mode 100644 (file)
index 0000000..d4628c1
--- /dev/null
@@ -0,0 +1,25 @@
+# https://help.github.com/articles/dealing-with-line-endings/
+
+# Set the default behavior, in case people don't have core.autocrlf set.
+*        text=auto
+
+# Explicitly declare text files you want to always be normalized
+# and converted to native line endings on checkout.
+*.c      text diff=cpp
+*.cpp    text diff=cpp
+*.css    text
+*.go     text diff=golang
+*.htm    text diff=html
+*.html   text diff=html
+*.java   text diff=java
+*.js     text
+*.jsp    text
+*.less   text
+*.properties text
+*.py     text diff=python
+*.sql    text
+*.xml    text
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
index 70b84df..e69de29 100644 (file)
@@ -1 +0,0 @@
-.gitreview
diff --git a/.gitreview b/.gitreview
new file mode 100644 (file)
index 0000000..a7f2fae
--- /dev/null
@@ -0,0 +1,5 @@
+[gerrit]
+host=gerrit.o-ran-sc.org
+port=29418
+project=ric-plt/rtmgr
+defaultbranch=master
similarity index 61%
rename from build/binary/Dockerfile
rename to Dockerfile
index 7930f00..10cdd1c 100644 (file)
@@ -1,4 +1,3 @@
-#
 #==================================================================================
 #   Copyright (c) 2019 AT&T Intellectual Property.
 #   Copyright (c) 2019 Nokia
 #   See the License for the specific language governing permissions and
 #   limitations under the License.
 #==================================================================================
-#
-#
-#      Abstract:       Builds a container to compile Routing Manager's code
-#      Date:           29 March 2019
-#
-FROM golang:1.11
 
-ENV GOPATH /opt
+# The CI system creates and publishes the rtmgr Docker image
+# from the last step in this multi-stage build and applies 
+# a Docker tag from the string in file container-tag.yaml
 
+FROM golang:1.12 as rtmgrbuild
+ENV GOPATH /opt
 RUN apt-get update \
     && apt-get install golang-glide
+COPY . /opt
+RUN mkdir -p $GOPATH/bin \
+    && ln -s -f  $GOPATH/pkg $GOPATH/src \
+    && cd $GOPATH/src \
+    && glide install --strip-vendor \
+    && cd $GOPATH/cmd \
+    && go build rtmgr.go \
+    && mv $GOPATH/cmd/rtmgr $GOPATH/bin
 
-COPY compile.sh /
-
-ENTRYPOINT /compile.sh
+FROM ubuntu:16.04
+COPY --from=rtmgrbuild /opt/bin/rtmgr /
+RUN mkdir /db && touch /db/rt.json
+CMD /rtmgr
diff --git a/build/binary/compile.sh b/build/binary/compile.sh
deleted file mode 100755 (executable)
index 35d8640..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh -e
-#
-#==================================================================================
-#   Copyright (c) 2019 AT&T Intellectual Property.
-#   Copyright (c) 2019 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.
-#==================================================================================
-#
-#
-#      Mnemonic:       compile.sh
-#      Abstract:       Compiles the rtmgr source
-#      Date:           19 March 2019
-#
-mkdir -p $GOPATH/bin
-ln -s -f  $GOPATH/pkg $GOPATH/src
-cd $GOPATH/src
-glide install --strip-vendor
-cd $GOPATH/cmd
-go build rtmgr.go
-mv $GOPATH/cmd/rtmgr $GOPATH/bin
diff --git a/build/container/Dockerfile b/build/container/Dockerfile
deleted file mode 100644 (file)
index 98582b9..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-#==================================================================================
-#   Copyright (c) 2019 AT&T Intellectual Property.
-#   Copyright (c) 2019 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.
-#==================================================================================
-#
-#
-#      Abstract:       Builds the Routing Manager's production ready container image
-#      Date:           29 March 2019
-#
-
-FROM ubuntu
-
-COPY rtmgr /
-COPY run_rtmgr.sh /
-RUN mkdir /db \
-  && touch /db/rt.json
diff --git a/container-tag.yaml b/container-tag.yaml
new file mode 100644 (file)
index 0000000..a13d479
--- /dev/null
@@ -0,0 +1,5 @@
+# The Jenkins job requires a tag to build the Docker image.
+# By default this file is in the docker build directory,
+# but the location can configured in the JJB template.
+---
+tag: 0.1.0