- 'master':
branch: 'master'
project-git-repo: '{project}'
- project-build-macro: 'eiffel-build-periodic-macro'
+ project-build-macro: 'eiffel-global-container-build-macro'
image-dockerfile: 'Dockerfile'
image-name: '{project}'
image-tag: 'dev'
distro: ubuntu2004
jobs:
- - '{project-name}-build-periodic-{distro}-{stream}'
+ - '{project-name}-build-merge-{distro}-{stream}'
# vim: set ts=2 sw=2 expandtab:
--- /dev/null
+---
+# ============LICENSE_START=======================================================
+# Copyright (C) 2020 Nordix Foundation.
+# ================================================================================
+# 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+- job-template:
+ name: '{project-name}-build-merge-{distro}-{stream}'
+
+ node: 'eiffel-build-{distro}'
+
+ disabled: false
+
+ concurrent: false
+
+ properties:
+ - logrotate
+ - github:
+ url: '$GIT_BASE_HTTPS/{project-git-repo}'
+
+ parameters:
+ - project-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ - string:
+ name: GIT_BASE_HTTPS
+ default: https://github.com/eiffel-community
+ description: HTTPS URL of Project Repo on GitHub to clone repo.
+ - string:
+ name: GIT_BASE_SSH
+ default: git@github.com:eiffel-community
+ description: SSH URL of Project Repo on GitHub to clone repo.
+ - string:
+ name: IMAGE_DOCKERFILE
+ default: '{image-dockerfile}'
+ description: Dockerfile to use for building the container image
+ - string:
+ name: IMAGE_NAME
+ default: '{image-name}'
+ description: Name of the container image
+ - string:
+ name: IMAGE_TAG
+ default: '{image-tag}'
+ description: Tag to apply to the container image
+ - choice:
+ name: HARBOR_EIFFEL_PROJECT
+ choices:
+ - eiffel
+ - eiffel-playground
+ description: Project to push container images to. Default is eiffel. eiffel-playground is for development purposes.
+ - choice:
+ name: PODMAN_LOG_LEVEL
+ choices:
+ - error
+ - debug
+ - info
+ - warn
+ - fatal
+ - panic
+ description: Podman log level to use. Default is error.
+ - string:
+ name: NORDIX_REGISTRY
+ default: 'registry.nordix.org'
+ description: Nordix container image registry.
+
+ scm:
+ - git:
+ url: '$GIT_BASE_HTTPS/{project-git-repo}.git'
+ branches:
+ - '*/{branch}'
+ refspec: ''
+ timeout: 15
+ per-build-tag: false
+ skip-tag: true
+ shallow-clone: false
+ use-author: false
+ ignore-notify: false
+ wipe-workspace: true
+ prune: false
+ clean:
+ after: false
+ before: false
+ choosing-strategy: 'default'
+ basedir: '$WORKSPACE'
+
+ triggers:
+ - github
+
+ wrappers:
+ - build-timeout:
+ timeout: 10
+ - nordixinfra-harbor-creds-wrapper
+ - mask-passwords
+ - openstack:
+ single-use: True
+
+ builders:
+ - '{project-build-macro}'
+
+# vim: set ts=2 sw=2 expandtab:
---
+- builder:
+ name: 'eiffel-global-container-build-macro'
+ builders:
+ - shell:
+ !include-raw: ../scripts/eiffel-global-container-build.sh
+
+# NOTE (fdegir): below macros will potentially be removed or renamed
+# once the above macro is taken into use
- builder:
name: 'eiffel-build-periodic-macro'
builders:
--- /dev/null
+#!/bin/bash
+
+# ============LICENSE_START=======================================================
+# Copyright (C) 2020 The Nordix Foundation. 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+set -o errexit
+set -o pipefail
+set -o nounset
+
+# navigate to root of the git clone
+cd "$WORKSPACE"
+
+# the Dockerfile to use for building the container image
+IMAGE_DOCKERFILE="${IMAGE_DOCKERFILE:?IMAGE_DOCKERFILE is unset!}"
+
+# the name of the container image
+IMAGE_NAME="${IMAGE_NAME:?IMAGE_NAME is unset!}"
+
+# the tag to apply to the container image
+IMAGE_TAG="${IMAGE_TAG:-latest}"
+
+# set image name
+IMAGE_NAME_TAG="$NORDIX_REGISTRY/$HARBOR_EIFFEL_PROJECT/$IMAGE_NAME:$IMAGE_TAG"
+
+# set the build command so we can log it to console
+PODMAN_BUILD_CMD="podman build --file $IMAGE_DOCKERFILE --log-level $PODMAN_LOG_LEVEL --tag $IMAGE_NAME_TAG ."
+
+echo "Info : Building the container image with the command"
+echo " $PODMAN_BUILD_CMD"
+echo "----------------------------------------------------------------"
+$PODMAN_BUILD_CMD
+echo "----------------------------------------------------------------"
+echo "Info : Build successful! List of container images is"
+echo "----------------------------------------------------------------"
+podman images --log-level $PODMAN_LOG_LEVEL
+echo "----------------------------------------------------------------"
+echo "Info : Logging in to registry.nordix.org and pushing the image"
+echo "----------------------------------------------------------------"
+podman login --log-level "$PODMAN_LOG_LEVEL" "$NORDIX_REGISTRY" --username "$HARBOR_USERNAME" --password "$HARBOR_PASSWORD"
+podman push --log-level "$PODMAN_LOG_LEVEL" "$IMAGE_NAME_TAG"
+podman logout --log-level "$PODMAN_LOG_LEVEL" "$NORDIX_REGISTRY"
+echo "----------------------------------------------------------------"
+echo "Info : Done!"
+
+# vim: set ts=2 sw=2 expandtab: