Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-AMF
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
1
Issues
1
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-AMF
Commits
afa4c3a9
Commit
afa4c3a9
authored
Mar 17, 2021
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CI: making pipeline faster
Signed-off-by:
Raphael Defosseux
<
raphael.defosseux@eurecom.fr
>
parent
6b9755dc
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
137 additions
and
1 deletion
+137
-1
ci-scripts/Jenkinsfile-GitLab-Docker
ci-scripts/Jenkinsfile-GitLab-Docker
+33
-1
ci-scripts/docker/Dockerfile.ci.ubuntu.18.04
ci-scripts/docker/Dockerfile.ci.ubuntu.18.04
+104
-0
No files found.
ci-scripts/Jenkinsfile-GitLab-Docker
View file @
afa4c3a9
...
...
@@ -37,6 +37,10 @@ def new_host_user = ""
def
amf_tag
=
"develop"
def
amf_branch
=
"develop"
// We are using a base image to speed up CI build.
// This base image is potentially subject to changes over time.
def
AMF_BASE_IMAGE_TAG
=
params
.
AmfBaseImageTag
//-------------------------------------------------------------------------------
// Pipeline start
pipeline
{
...
...
@@ -81,6 +85,16 @@ pipeline {
echo
"Node is ${NODE_NAME}"
}
echo
"Git URL is ${GIT_URL}"
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
try
{
myShCmd
(
'docker image inspect --format=\'Size = {{.Size}} bytes\' oai-amf-base:'
+
AMF_BASE_IMAGE_TAG
,
new_host_flag
,
new_host_user
,
new_host
)
}
catch
(
Exception
e
)
{
currentBuild
.
result
=
'FAILURE'
echo
'\u26D4 \u001B[31mBase Image does not exist\u001B[0m'
error
"Stopping pipeline!"
}
}
}
}
}
...
...
@@ -136,8 +150,22 @@ pipeline {
}
catch
(
Exception
e
)
{
echo
"Maybe a previous build went wrong"
}
// In case of push to `develop` branch we build from scratch
myShCmd
(
'docker build --no-cache --target oai-amf --tag oai-amf:'
+
amf_tag
+
' --file docker/Dockerfile.ubuntu.18.04 --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" . > archives/amf_docker_image_build.log 2>&1'
,
new_host_flag
,
new_host_user
,
new_host
)
}
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
try
{
// Checking if the CI Base image is still there.
// If the inspect command fails, it's not there. If it passes, let remove tag.
myShCmd
(
'docker image inspect oai-amf-base:latest > /dev/null 2>&1'
,
new_host_flag
,
new_host_user
,
new_host
)
myShCmd
(
'docker rmi oai-amf-base:latest'
,
new_host_flag
,
new_host_user
,
new_host
)
}
catch
(
Exception
e
)
{
echo
'No need to remove the CI base image'
}
// "latest" is the tag used in the docker file.
myShCmd
(
'docker image tag oai-amf-base:'
+
AMF_BASE_IMAGE_TAG
+
' oai-amf-base:latest'
,
new_host_flag
,
new_host_user
,
new_host
)
myShCmd
(
'docker build --no-cache --target oai-amf --tag oai-amf:'
+
amf_tag
+
' --file ci-scripts/docker/Dockerfile.ci.ubuntu.18.04 . > archives/amf_docker_image_build.log 2>&1'
,
new_host_flag
,
new_host_user
,
new_host
)
}
myShCmd
(
'docker build --target oai-amf --tag oai-amf:'
+
amf_tag
+
' --file docker/Dockerfile.ubuntu.18.04 --build-arg NEEDED_GIT_PROXY="http://proxy.eurecom.fr:8080" . > archives/amf_docker_image_build.log 2>&1'
,
new_host_flag
,
new_host_user
,
new_host
)
myShCmd
(
'docker image ls >> archives/amf_docker_image_build.log'
,
new_host_flag
,
new_host_user
,
new_host
)
}
}
...
...
@@ -287,6 +315,10 @@ pipeline {
}
cleanup
{
script
{
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
// Remove CI Base image tag
myShCmd
(
'docker rmi oai-amf-base:latest'
,
new_host_flag
,
new_host_user
,
new_host
)
}
// Removing temporary / intermediate images
try
{
if
(
"MERGE"
.
equals
(
env
.
gitlabActionType
))
{
...
...
ci-scripts/docker/Dockerfile.ci.ubuntu.18.04
0 → 100644
View file @
afa4c3a9
#/*
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
# * contributor license agreements. See the NOTICE file distributed with
# * this work for additional information regarding copyright ownership.
# * The OpenAirInterface Software Alliance licenses this file to You under
# * the OAI Public License, Version 1.1 (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.openairinterface.org/?page_id=698
# *
# * 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.
# *-------------------------------------------------------------------------------
# * For more information about the OpenAirInterface (OAI) Software Alliance:
# * contact@openairinterface.org
# */
#---------------------------------------------------------------------
#
# Dockerfile for the Open-Air-Interface AMF service
# Valid for Ubuntu-18.04 (bionic)
#
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# BUILDER IMAGE
#---------------------------------------------------------------------
FROM oai-amf-base:latest as oai-amf-builder
WORKDIR /openair-amf/
COPY . /openair-amf
RUN cp -Rf /openair-amf-ext-ref /openair-amf/build/ext
# Building AMF
WORKDIR /openair-amf/build/scripts
RUN ./build_amf --clean --Verbose --build-type Release --jobs
#---------------------------------------------------------------------
# TARGET IMAGE
#---------------------------------------------------------------------
FROM ubuntu:bionic as oai-amf
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
# We install some debug tools for the moment in addition of mandatory libraries
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get upgrade --yes && \
DEBIAN_FRONTEND=noninteractive apt-get install --yes \
tzdata \
psmisc \
net-tools \
bc \
tshark \
libconfig++9v5 \
libsctp1 \
&& rm -rf /var/lib/apt/lists/*
# Copying executable and generated libraries
WORKDIR /openair-amf/bin
COPY --from=oai-amf-builder /openair-amf/build/amf/build/amf oai_amf
COPY --from=oai-amf-builder /openair-amf/scripts/entrypoint.sh entrypoint.sh
WORKDIR /usr/lib/x86_64-linux-gnu
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libcpprest.so.2.10 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libssl.so.1.1 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/librtmp.so.1 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libpsl.so.5 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libsasl2.so.2 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libgssapi.so.3 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libheimbase.so.1 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libkrb5.so.26 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libasn1.so.8 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libroken.so.18 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libwind.so.0 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libhx509.so.5 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 .
COPY --from=oai-amf-builder /usr/lib/x86_64-linux-gnu/libasan.so.4 .
WORKDIR /usr/local/lib
COPY --from=oai-amf-builder /usr/local/lib/libpistache.so .
RUN ldconfig
# Copying template configuration files
WORKDIR /openair-amf/etc
COPY --from=oai-amf-builder /openair-amf/etc/amf.conf .
WORKDIR /openair-amf
# expose ports
EXPOSE 80/tcp 9090/tcp 38412/sctp
ENTRYPOINT ["/bin/bash","/openair-amf/bin/entrypoint.sh"]
CMD ["/openair-amf/bin/oai_amf", "-c", "/openair-amf/etc/amf.conf", "-o"]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment