################################################################################
#   Copyright (c) 2019 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.                                             #
################################################################################

FROM buildpack-deps:stretch
RUN apt-get update && apt-get -q -y install debhelper dpkg-dev build-essential rsync curl
RUN mkdir /tmp/it-dep
COPY . /tmp/it-dep
WORKDIR /tmp/it-dep


# Verify that the it/dep and the corresponding submodules are synced up
ARG GH=get_helm.sh
RUN curl --silent --show-error --connect-timeout 10 --retry 6 -L https://raw.githubusercontent.com/helm/helm/master/scripts/get -o ${GH}
RUN bash ${GH}
RUN helm init -c
RUN ./bin/verify-ric-charts

# building RIC deployment artifacts into a package
RUN ./bin/package-ric-deployment-tools $(grep tag ./ci/package-tag.yaml | cut -f2 -d':')

# Executing the container "as a binary" will cause the CI publish
# script to execute.  This will take the simple package list generated
# by the ci_build script and copy the list of packages to the target
# directory.  The target directory is /export by default, but can be
# overridden from the docker run command line. In either case, the
# assumption is that the target directory is mounted as a volume.
#
ENTRYPOINT [ "ci/publish.sh" ]
