From: Eby, Robert (re2429) Date: Wed, 25 Jul 2018 02:33:14 +0000 (-0400) Subject: New JJB files for Docker container builds X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F14%2F114%2F4;p=ci-management.git New JJB files for Docker container builds Revised to include only the necessary template files, not the files which use the template. These will be added later. Change-Id: Ia259dde49a0c9f2234f4c5e25e1d5b2ac0913d81 Signed-off-by: Eby, Robert (re2429) --- diff --git a/jjb/akraino-templates/akraino-jjb-docker.yaml b/jjb/akraino-templates/akraino-jjb-docker.yaml new file mode 100644 index 0000000..da5eb11 --- /dev/null +++ b/jjb/akraino-templates/akraino-jjb-docker.yaml @@ -0,0 +1,52 @@ +--- +# +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. +# +- job-template: + id: 'akraino-project-stream-docker' + name: '{project}-{stream}-docker' + project-type: freestyle + node: '{build-node}' + + parameters: + - lf-infra-parameters: + project: '{project}' + branch: '{branch}' + stream: '{stream}' + lftools-version: '{lftools-version}' + + scm: + - lf-infra-gerrit-scm: + jenkins-ssh-credential: '{jenkins-ssh-credential}' + git-url: '{git-url}/{project}.git' + refspec: '' + branch: '{branch}' + submodule-recursive: '{submodule-recursive}' + choosing-strategy: default + + builders: + - lf-update-java-alternatives: + java-version: '{java-version}' + - lf-infra-docker-login: + global-settings-file: '{global-settings-file}' + settings-file: '{mvn-settings}' + - inject: + properties-content: | + PROJECT={project} + - shell: !include-raw-escape: + - ../shell/build-docker.sh + + triggers: + - timed: '@daily' diff --git a/jjb/shell/build-docker.sh b/jjb/shell/build-docker.sh new file mode 100644 index 0000000..5bada0a --- /dev/null +++ b/jjb/shell/build-docker.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +DOCKER_REPO='nexus3.akraino.org:10003' + +set -e -u -x -o pipefail + +echo '---> Starting build-docker' + +case "$PROJECT" in +portal_user_interface) + CON_NAME='akraino-portal' + VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" AECPortalMgmt/pom.xml` + WARFILE="https://nexus.akraino.org/repository/maven-snapshots/org/akraino/portal/portal/${VERSION}/portal-${VERSION}.war" + curl -O ${WARFILE} + ln $(basename ${WARFILE}) AECPortalMgmt.war + + ( + echo 'FROM tomcat:8.5.31' + echo 'COPY AECPortalMgmt.war /usr/local/tomcat/webapps' + ) > Dockerfile + ;; + +camunda_workflow) + CON_NAME='akraino-camunda-workflow-engine' + VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" akraino/pom.xml` + JARFILE="https://nexus.akraino.org/repository/maven-snapshots/org/akraino/camunda_workflow/${VERSION}/camunda_workflow-${VERSION}.jar" + curl -O ${JARFILE} + ;; + +postgres_db_schema) + CON_NAME='akraino_schema_db' + source $WORKSPACE/version.properties + TARFILE="https://nexus.akraino.org/repository/maven-snapshots/org/akraino/camunda_workflow/${VERSION}/camunda_workflow-${VERSION}.tgz" + curl -O ${TARFILE} + (mkdir yaml_builds; cd yaml_builds; tar xfv ../$(basename ${TARFILE})) + mv yaml_builds/templates akraino-j2templates + ;; + +*) + echo unknown project "$PROJECT" + exit 1 + ;; +esac + +# Build and push the Docker container +docker build -f Dockerfile -t ${CON_NAME}:${VERSION} . +docker tag ${CON_NAME}:${VERSION} ${DOCKER_REPO}/${CON_NAME}:${VERSION} +docker push ${DOCKER_REPO}/${CON_NAME}:${VERSION} + +set +u +x