--- /dev/null
+#!/bin/bash
+
+# the following two methods exist in scripts/build_utils.sh
+pkgs=( "tox" )
+TEMPVENV=$(create_venv_dir)
+VENV=${TEMPVENV}/bin
+install_python_packages $TEMPVENV "pkgs[@]"
+
+cd "$WORKSPACE/ceph-iscsi-cli"
+
+$VENV/tox -rv -e flake8
--- /dev/null
+- scm:
+ name: ceph-iscsi-cli
+ scm:
+ - git:
+ url: https://github.com/ceph/ceph-iscsi-cli.git
+ branches:
+ - ${{sha1}}
+ refspec: +refs/pull/*:refs/remotes/origin/pr/*
+ browser: auto
+ timeout: 20
+ skip-tag: true
+ wipe-workspace: true
+ basedir: "ceph-iscsi-cli"
+
+- job:
+ name: ceph-iscsi-cli-flake8
+ description: Runs Flake8 tests for ceph-iscsi-cli on each GitHub PR
+ project-type: freestyle
+ node: python3
+ block-downstream: false
+ block-upstream: false
+ defaults: global
+ display-name: 'ceph-iscsi-cli: Flake8'
+ quiet-period: 5
+ retry-count: 3
+
+ properties:
+ - build-discarder:
+ days-to-keep: 15
+ num-to-keep: 30
+ artifact-days-to-keep: 15
+ artifact-num-to-keep: 15
+ - github:
+ url: https://github.com/ceph/ceph-iscsi-cli/
+
+ parameters:
+ - string:
+ name: sha1
+ description: "A pull request ID, like 'origin/pr/72/head'"
+
+ triggers:
+ - github-pull-request:
+ admin-list:
+ - dillaman
+ org-list:
+ - ceph
+ trigger-phrase: 'jenkins flake8'
+ only-trigger-phrase: false
+ github-hooks: true
+ permit-all: false
+ auto-close-on-fail: false
+ status-context: "Flake8"
+
+ scm:
+ - ceph-iscsi-cli
+
+ builders:
+ - shell:
+ !include-raw-verbatim:
+ - ../../../scripts/build_utils.sh
+ - ../../build/build
--- /dev/null
+- job:
+ name: ceph-iscsi-cli-trigger
+ node: built-in
+ project-type: freestyle
+ defaults: global
+ quiet-period: 5
+ block-downstream: false
+ block-upstream: false
+ properties:
+ - build-discarder:
+ days-to-keep: 1
+ num-to-keep: 10
+ artifact-days-to-keep: -1
+ artifact-num-to-keep: -1
+ - github:
+ url: https://github.com/ceph/ceph-iscsi-cli
+ discard-old-builds: true
+
+ triggers:
+ - github
+
+ scm:
+ - git:
+ url: https://github.com/ceph/ceph-iscsi-cli.git
+ branches:
+ - 'origin/main*'
+ - 'origin/wip*'
+ skip-tag: true
+ timeout: 20
+ wipe-workspace: true
+
+ builders:
+ - trigger-builds:
+ - project: 'ceph-iscsi-cli'
+ predefined-parameters: |
+ BRANCH=${{GIT_BRANCH}}
+ FORCE=True
--- /dev/null
+#! /usr/bin/bash
+set -ex
+
+# Only do actual work when we are a DEB distro
+if test "$DISTRO" != "debian" -a "$DISTRO" != "ubuntu"; then
+ exit 0
+fi
+
+exit 1
--- /dev/null
+#! /usr/bin/bash
+set -ex
+
+PROJECT=ceph-iscsi-cli
+BRANCH=`branch_slash_filter $BRANCH`
+
+# Only do actual work when we are an RPM distro
+if test "$DISTRO" != "fedora" -a "$DISTRO" != "centos" -a "$DISTRO" != "rhel"; then
+ exit 0
+fi
+
+# Install the dependencies
+sudo yum install -y mock
+
+## Get some basic information about the system and the repository
+# Get version
+get_rpm_dist
+VERSION="$(git describe --abbrev=0 --tags HEAD)"
+REVISION="$(git describe --tags HEAD | cut -d - -f 2- | sed 's/-/./')"
+if [ "$VERSION" = "$REVISION" ]; then
+ REVISION="1"
+fi
+
+# Create dummy dist tar
+tar cf dist/${PROJECT}-${VERSION}.tar.gz \
+ --exclude .git --exclude dist \
+ --transform "s,^,${PROJECT}-${VERSION}/," *
+tar tfv dist/${PROJECT}-${VERSION}.tar.gz
+
+# Update spec version
+sed -i "s/^Version:.*$/Version:\t${VERSION}/g" $WORKSPACE/${PROJECT}.spec
+sed -i "s/^Release:.*$/Release:\t${REVISION}%{?dist}/g" $WORKSPACE/${PROJECT}.spec
+# for debugging
+cat $WORKSPACE/${PROJECT}.spec
+
+# Update setup.py version
+sed -i "s/version=\"[^\"]*\"/version=\"${VERSION}\"/g" $WORKSPACE/setup.py
+# for debugging
+cat $WORKSPACE/setup.py
+
+## Create the source rpm
+echo "Building SRPM"
+rpmbuild \
+ --define "_sourcedir $WORKSPACE/dist" \
+ --define "_specdir $WORKSPACE/dist" \
+ --define "_builddir $WORKSPACE/dist" \
+ --define "_srcrpmdir $WORKSPACE/dist/SRPMS" \
+ --define "_rpmdir $WORKSPACE/dist/RPMS" \
+ --nodeps -bs $WORKSPACE/${PROJECT}.spec
+SRPM=$(readlink -f $WORKSPACE/dist/SRPMS/*.src.rpm)
+
+## Build the binaries with mock
+echo "Building RPMs"
+sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --scrub=all
+sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --resultdir=$WORKSPACE/dist/RPMS/ ${SRPM} || ( tail -n +1 $WORKSPACE/dist/RPMS/{root,build}.log && exit 1 )
+
+## Upload the created RPMs to chacra
+chacra_endpoint="${PROJECT}/${BRANCH}/${GIT_COMMIT}/${DISTRO}/${RELEASE}"
+
+[ "$FORCE" = true ] && chacra_flags="--force" || chacra_flags=""
+
+# push binaries to chacra
+find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | $VENV/chacractl binary ${chacra_flags} create ${chacra_endpoint}/noarch/
+PACKAGE_MANAGER_VERSION=$(rpm --queryformat '%{VERSION}-%{RELEASE}\n' -qp $(find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | head -1))
+
+# write json file with build info
+cat > $WORKSPACE/repo-extra.json << EOF
+{
+ "version":"$VERSION",
+ "package_manager_version":"$PACKAGE_MANAGER_VERSION",
+ "build_url":"$BUILD_URL",
+ "root_build_cause":"$ROOT_BUILD_CAUSE",
+ "node_name":"$NODE_NAME",
+ "job_name":"$JOB_NAME"
+}
+EOF
+# post the json to repo-extra json to chacra
+curl -X POST -H "Content-Type:application/json" --data "@$WORKSPACE/repo-extra.json" -u $CHACRACTL_USER:$CHACRACTL_KEY ${chacra_url}repos/${chacra_endpoint}/extra/
+
+# start repo creation
+$VENV/chacractl repo update ${chacra_endpoint}
+
+echo Check the status of the repo at: https://shaman.ceph.com/api/repos/${chacra_endpoint}
--- /dev/null
+#! /usr/bin/bash
+#
+# Ceph distributed storage system
+#
+# Copyright (C) 2016 Red Hat <contact@redhat.com>
+#
+# Author: Boris Ranto <branto@redhat.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+set -ex
+
+# Make sure we execute at the top level directory before we do anything
+cd $WORKSPACE
+
+# This will set the DISTRO and MOCK_TARGET variables
+get_distro_and_target
+
+# Perform a clean-up
+git clean -fxd
+
+# Make sure the dist directory is clean
+rm -rf dist
+mkdir -p dist
+
+# Print some basic system info
+HOST=$(hostname --short)
+echo "Building on $(hostname) with the following env"
+echo "*****"
+env
+echo "*****"
+
+export LC_ALL=C # the following is vulnerable to i18n
+
+pkgs=( "chacractl>=0.0.21" )
+TEMPVENV=$(create_venv_dir)
+VENV=${TEMPVENV}/bin
+install_python_packages $TEMPVENV "pkgs[@]"
+
+# ask shaman which chacra instance to use
+chacra_url=`curl -f -u $SHAMAN_API_USER:$SHAMAN_API_KEY https://shaman.ceph.com/api/nodes/next/`
+# create the .chacractl config file using global variables
+make_chacractl_config $chacra_url
--- /dev/null
+#!/bin/bash
+set -ex
+
+# Only do actual work when we are a DEB distro
+if test -f /etc/redhat-release ; then
+ exit 0
+fi
--- /dev/null
+#!/bin/bash
+set -ex
+
+# only do work if we are a RPM distro
+if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then
+ exit 0
+fi
--- /dev/null
+- job:
+ name: ceph-iscsi-cli
+ project-type: matrix
+ defaults: global
+ display-name: 'ceph-iscsi-cli'
+ block-downstream: false
+ block-upstream: false
+ concurrent: true
+ parameters:
+ - string:
+ name: BRANCH
+ description: "The git branch (or tag) to build"
+ default: "main"
+
+ - string:
+ name: DISTROS
+ description: "A list of distros to build for. Available options are: centos7, centos6, bionic, xenial, trusty-pbuilder, precise, wheezy, and jessie"
+ default: "centos7 xenial bionic"
+
+ - string:
+ name: ARCHS
+ description: "A list of architectures to build for. Available options are: x86_64"
+ default: "x86_64"
+
+ - bool:
+ name: FORCE
+ description: "
+If this is unchecked, then nothing is built or pushed if they already exist in chacra. This is the default.
+
+If this is checked, then the binaries will be built and pushed to chacra even if they already exist in chacra."
+
+ - string:
+ name: BUILD_VIRTUALENV
+ description: "Base parent path for virtualenv locations, set to avoid issues with extremely long paths that are incompatible with tools like pip. Defaults to '/tmp/' (note the trailing slash, which is required)."
+ default: "/tmp/"
+
+ execution-strategy:
+ combination-filter: DIST==AVAILABLE_DIST && ARCH==AVAILABLE_ARCH && (ARCH=="x86_64" || (ARCH == "arm64" && (DIST == "xenial" || DIST == "centos7")))
+ axes:
+ - axis:
+ type: label-expression
+ name: MACHINE_SIZE
+ values:
+ - small
+ - axis:
+ type: label-expression
+ name: AVAILABLE_ARCH
+ values:
+ - x86_64
+ - axis:
+ type: label-expression
+ name: AVAILABLE_DIST
+ values:
+ - centos7
+ - xenial
+ - bionic
+ - axis:
+ type: dynamic
+ name: DIST
+ - axis:
+ type: dynamic
+ name: DIST
+ values:
+ - DISTROS
+ - axis:
+ type: dynamic
+ name: ARCH
+ values:
+ - ARCHS
+
+ scm:
+ - git:
+ url: git@github.com:ceph/ceph-iscsi-cli.git
+ # Use the SSH key attached to the ceph-jenkins GitHub account.
+ credentials-id: 'jenkins-build'
+ branches:
+ - $BRANCH
+ skip-tag: true
+ wipe-workspace: true
+
+ builders:
+ - shell: |
+ echo "Cleaning up top-level workarea (shared among workspaces)"
+ rm -rf dist
+ rm -rf venv
+ rm -rf release
+ # debian build scripts
+ - shell:
+ !include-raw-verbatim:
+ - ../../build/validate_deb
+ - ../../../scripts/build_utils.sh
+ - ../../build/setup
+ - ../../build/build_deb
+ # rpm build scripts
+ - shell:
+ !include-raw-verbatim:
+ - ../../build/validate_rpm
+ - ../../../scripts/build_utils.sh
+ - ../../build/setup
+ - ../../build/build_rpm
+
+ wrappers:
+ - inject-passwords:
+ global: true
+ mask-password-params: true
+ - credentials-binding:
+ - text:
+ credential-id: chacractl-key
+ variable: CHACRACTL_KEY
+ - credentials-binding:
+ - text:
+ credential-id: shaman-api-key
+ variable: SHAMAN_API_KEY
--- /dev/null
+#!/bin/bash
+
+# the following two methods exist in scripts/build_utils.sh
+pkgs=( "tox" )
+TEMPVENV=$(create_venv_dir)
+VENV=${TEMPVENV}/bin
+install_python_packages $TEMPVENV "pkgs[@]"
+
+cd "$WORKSPACE/ceph-iscsi-config"
+
+$VENV/tox -rv -e flake8
--- /dev/null
+- scm:
+ name: ceph-iscsi-config
+ scm:
+ - git:
+ url: https://github.com/ceph/ceph-iscsi-config.git
+ branches:
+ - ${{sha1}}
+ refspec: +refs/pull/*:refs/remotes/origin/pr/*
+ browser: auto
+ timeout: 20
+ skip-tag: true
+ wipe-workspace: true
+ basedir: "ceph-iscsi-config"
+
+- job:
+ name: ceph-iscsi-config-flake8
+ description: Runs Flake8 tests for ceph-iscsi-config on each GitHub PR
+ project-type: freestyle
+ node: python3
+ block-downstream: false
+ block-upstream: false
+ defaults: global
+ display-name: 'ceph-iscsi-config: Flake8'
+ quiet-period: 5
+ retry-count: 3
+
+ properties:
+ - build-discarder:
+ days-to-keep: 15
+ num-to-keep: 30
+ artifact-days-to-keep: 15
+ artifact-num-to-keep: 15
+ - github:
+ url: https://github.com/ceph/ceph-iscsi-config/
+
+ parameters:
+ - string:
+ name: sha1
+ description: "A pull request ID, like 'origin/pr/72/head'"
+
+ triggers:
+ - github-pull-request:
+ admin-list:
+ - dillaman
+ org-list:
+ - ceph
+ trigger-phrase: 'jenkins flake8'
+ only-trigger-phrase: false
+ github-hooks: true
+ permit-all: false
+ auto-close-on-fail: false
+ status-context: "Flake8"
+
+ scm:
+ - ceph-iscsi-config
+
+ builders:
+ - shell:
+ !include-raw-verbatim:
+ - ../../../scripts/build_utils.sh
+ - ../../build/build
--- /dev/null
+- job:
+ name: ceph-iscsi-config-trigger
+ node: built-in
+ project-type: freestyle
+ defaults: global
+ quiet-period: 5
+ block-downstream: false
+ block-upstream: false
+ properties:
+ - build-discarder:
+ days-to-keep: 1
+ num-to-keep: 10
+ artifact-days-to-keep: -1
+ artifact-num-to-keep: -1
+ - github:
+ url: https://github.com/ceph/ceph-iscsi-config
+ discard-old-builds: true
+
+ triggers:
+ - github
+
+ scm:
+ - git:
+ url: https://github.com/ceph/ceph-iscsi-config.git
+ branches:
+ - 'origin/main*'
+ - 'origin/wip*'
+ skip-tag: true
+ timeout: 20
+ wipe-workspace: true
+
+ builders:
+ - trigger-builds:
+ - project: 'ceph-iscsi-config'
+ predefined-parameters: |
+ BRANCH=${{GIT_BRANCH}}
+ FORCE=True
--- /dev/null
+#! /usr/bin/bash
+set -ex
+
+# Only do actual work when we are a DEB distro
+if test "$DISTRO" != "debian" -a "$DISTRO" != "ubuntu"; then
+ exit 0
+fi
+
+exit 1
--- /dev/null
+#! /usr/bin/bash
+set -ex
+
+PROJECT=ceph-iscsi-config
+BRANCH=`branch_slash_filter $BRANCH`
+
+# Only do actual work when we are an RPM distro
+if test "$DISTRO" != "fedora" -a "$DISTRO" != "centos" -a "$DISTRO" != "rhel"; then
+ exit 0
+fi
+
+# Install the dependencies
+sudo yum install -y mock
+
+## Get some basic information about the system and the repository
+# Get version
+get_rpm_dist
+VERSION="$(git describe --abbrev=0 --tags HEAD)"
+REVISION="$(git describe --tags HEAD | cut -d - -f 2- | sed 's/-/./')"
+if [ "$VERSION" = "$REVISION" ]; then
+ REVISION="1"
+fi
+
+# Create dummy dist tar
+tar cf dist/${PROJECT}-${VERSION}.tar.gz \
+ --exclude .git --exclude dist \
+ --transform "s,^,${PROJECT}-${VERSION}/," *
+tar tfv dist/${PROJECT}-${VERSION}.tar.gz
+
+# Update spec version
+sed -i "s/^Version:.*$/Version:\t${VERSION}/g" $WORKSPACE/${PROJECT}.spec
+sed -i "s/^Release:.*$/Release:\t${REVISION}%{?dist}/g" $WORKSPACE/${PROJECT}.spec
+# for debugging
+cat $WORKSPACE/${PROJECT}.spec
+
+# Update setup.py version
+sed -i "s/version=\"[^\"]*\"/version=\"${VERSION}\"/g" $WORKSPACE/setup.py
+# for debugging
+cat $WORKSPACE/setup.py
+
+## Create the source rpm
+echo "Building SRPM"
+rpmbuild \
+ --define "_sourcedir $WORKSPACE/dist" \
+ --define "_specdir $WORKSPACE/dist" \
+ --define "_builddir $WORKSPACE/dist" \
+ --define "_srcrpmdir $WORKSPACE/dist/SRPMS" \
+ --define "_rpmdir $WORKSPACE/dist/RPMS" \
+ --nodeps -bs $WORKSPACE/${PROJECT}.spec
+SRPM=$(readlink -f $WORKSPACE/dist/SRPMS/*.src.rpm)
+
+## Build the binaries with mock
+echo "Building RPMs"
+sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --scrub=all
+sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --resultdir=$WORKSPACE/dist/RPMS/ ${SRPM} || ( tail -n +1 $WORKSPACE/dist/RPMS/{root,build}.log && exit 1 )
+
+## Upload the created RPMs to chacra
+chacra_endpoint="${PROJECT}/${BRANCH}/${GIT_COMMIT}/${DISTRO}/${RELEASE}"
+
+[ "$FORCE" = true ] && chacra_flags="--force" || chacra_flags=""
+
+# push binaries to chacra
+find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | $VENV/chacractl binary ${chacra_flags} create ${chacra_endpoint}/noarch/
+PACKAGE_MANAGER_VERSION=$(rpm --queryformat '%{VERSION}-%{RELEASE}\n' -qp $(find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | head -1))
+
+# write json file with build info
+cat > $WORKSPACE/repo-extra.json << EOF
+{
+ "version":"$VERSION",
+ "package_manager_version":"$PACKAGE_MANAGER_VERSION",
+ "build_url":"$BUILD_URL",
+ "root_build_cause":"$ROOT_BUILD_CAUSE",
+ "node_name":"$NODE_NAME",
+ "job_name":"$JOB_NAME"
+}
+EOF
+# post the json to repo-extra json to chacra
+curl -X POST -H "Content-Type:application/json" --data "@$WORKSPACE/repo-extra.json" -u $CHACRACTL_USER:$CHACRACTL_KEY ${chacra_url}repos/${chacra_endpoint}/extra/
+
+# start repo creation
+$VENV/chacractl repo update ${chacra_endpoint}
+
+echo Check the status of the repo at: https://shaman.ceph.com/api/repos/${chacra_endpoint}
--- /dev/null
+#! /usr/bin/bash
+#
+# Ceph distributed storage system
+#
+# Copyright (C) 2016 Red Hat <contact@redhat.com>
+#
+# Author: Boris Ranto <branto@redhat.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+set -ex
+
+# Make sure we execute at the top level directory before we do anything
+cd $WORKSPACE
+
+# This will set the DISTRO and MOCK_TARGET variables
+get_distro_and_target
+
+# Perform a clean-up
+git clean -fxd
+
+# Make sure the dist directory is clean
+rm -rf dist
+mkdir -p dist
+
+# Print some basic system info
+HOST=$(hostname --short)
+echo "Building on $(hostname) with the following env"
+echo "*****"
+env
+echo "*****"
+
+export LC_ALL=C # the following is vulnerable to i18n
+
+pkgs=( "chacractl>=0.0.21" )
+TEMPVENV=$(create_venv_dir)
+VENV=${TEMPVENV}/bin
+install_python_packages $TEMPVENV "pkgs[@]"
+
+# ask shaman which chacra instance to use
+chacra_url=`curl -f -u $SHAMAN_API_USER:$SHAMAN_API_KEY https://shaman.ceph.com/api/nodes/next/`
+# create the .chacractl config file using global variables
+make_chacractl_config $chacra_url
--- /dev/null
+#!/bin/bash
+set -ex
+
+# Only do actual work when we are a DEB distro
+if test -f /etc/redhat-release ; then
+ exit 0
+fi
--- /dev/null
+#!/bin/bash
+set -ex
+
+# only do work if we are a RPM distro
+if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then
+ exit 0
+fi
--- /dev/null
+- job:
+ name: ceph-iscsi-config
+ project-type: matrix
+ defaults: global
+ display-name: 'ceph-iscsi-config'
+ block-downstream: false
+ block-upstream: false
+ concurrent: true
+ parameters:
+ - string:
+ name: BRANCH
+ description: "The git branch (or tag) to build"
+ default: "main"
+
+ - string:
+ name: DISTROS
+ description: "A list of distros to build for. Available options are: centos7, centos6, bionic, xenial, trusty-pbuilder, precise, wheezy, and jessie"
+ default: "centos7 xenial bionic"
+
+ - string:
+ name: ARCHS
+ description: "A list of architectures to build for. Available options are: x86_64"
+ default: "x86_64"
+
+ - bool:
+ name: FORCE
+ description: "
+If this is unchecked, then nothing is built or pushed if they already exist in chacra. This is the default.
+
+If this is checked, then the binaries will be built and pushed to chacra even if they already exist in chacra."
+
+ - string:
+ name: BUILD_VIRTUALENV
+ description: "Base parent path for virtualenv locations, set to avoid issues with extremely long paths that are incompatible with tools like pip. Defaults to '/tmp/' (note the trailing slash, which is required)."
+ default: "/tmp/"
+
+ execution-strategy:
+ combination-filter: DIST==AVAILABLE_DIST && ARCH==AVAILABLE_ARCH && (ARCH=="x86_64" || (ARCH == "arm64" && (DIST == "xenial" || DIST == "centos7")))
+ axes:
+ - axis:
+ type: label-expression
+ name: MACHINE_SIZE
+ values:
+ - small
+ - axis:
+ type: label-expression
+ name: AVAILABLE_ARCH
+ values:
+ - x86_64
+ - axis:
+ type: label-expression
+ name: AVAILABLE_DIST
+ values:
+ - centos7
+ - xenial
+ - bionic
+ - axis:
+ type: dynamic
+ name: DIST
+ - axis:
+ type: dynamic
+ name: DIST
+ values:
+ - DISTROS
+ - axis:
+ type: dynamic
+ name: ARCH
+ values:
+ - ARCHS
+
+ scm:
+ - git:
+ url: git@github.com:ceph/ceph-iscsi-config.git
+ # Use the SSH key attached to the ceph-jenkins GitHub account.
+ credentials-id: 'jenkins-build'
+ branches:
+ - $BRANCH
+ skip-tag: true
+ wipe-workspace: true
+
+ builders:
+ - shell: |
+ echo "Cleaning up top-level workarea (shared among workspaces)"
+ rm -rf dist
+ rm -rf venv
+ rm -rf release
+ # debian build scripts
+ - shell:
+ !include-raw-verbatim:
+ - ../../build/validate_deb
+ - ../../../scripts/build_utils.sh
+ - ../../build/setup
+ - ../../build/build_deb
+ # rpm build scripts
+ - shell:
+ !include-raw-verbatim:
+ - ../../build/validate_rpm
+ - ../../../scripts/build_utils.sh
+ - ../../build/setup
+ - ../../build/build_rpm
+
+ wrappers:
+ - inject-passwords:
+ global: true
+ mask-password-params: true
+ - credentials-binding:
+ - text:
+ credential-id: chacractl-key
+ variable: CHACRACTL_KEY
+ - credentials-binding:
+ - text:
+ credential-id: shaman-api-key
+ variable: SHAMAN_API_KEY
--- /dev/null
+- job:
+ name: ceph-iscsi-tools-trigger
+ node: built-in
+ project-type: freestyle
+ defaults: global
+ quiet-period: 5
+ block-downstream: false
+ block-upstream: false
+ properties:
+ - build-discarder:
+ days-to-keep: 1
+ num-to-keep: 10
+ artifact-days-to-keep: -1
+ artifact-num-to-keep: -1
+ - github:
+ url: https://github.com/ceph/ceph-iscsi-tools
+ discard-old-builds: true
+
+ triggers:
+ - github
+
+ scm:
+ - git:
+ url: https://github.com/ceph/ceph-iscsi-tools.git
+ branches:
+ - 'origin/main*'
+ - 'origin/wip*'
+ skip-tag: true
+ timeout: 20
+ wipe-workspace: true
+
+ builders:
+ - trigger-builds:
+ - project: 'ceph-iscsi-tools'
+ predefined-parameters: |
+ BRANCH=${{GIT_BRANCH}}
+ FORCE=True
--- /dev/null
+#! /usr/bin/bash
+set -ex
+
+# Only do actual work when we are a DEB distro
+if test "$DISTRO" != "debian" -a "$DISTRO" != "ubuntu"; then
+ exit 0
+fi
+
+exit 1
--- /dev/null
+#! /usr/bin/bash
+set -ex
+
+PROJECT=ceph-iscsi-tools
+BRANCH=`branch_slash_filter $BRANCH`
+
+# Only do actual work when we are an RPM distro
+if test "$DISTRO" != "fedora" -a "$DISTRO" != "centos" -a "$DISTRO" != "rhel"; then
+ exit 0
+fi
+
+# Install the dependencies
+sudo yum install -y mock
+
+## Get some basic information about the system and the repository
+# Get version
+get_rpm_dist
+VERSION="$(git describe --abbrev=0 --tags HEAD)"
+REVISION="$(git describe --tags HEAD | cut -d - -f 2- | sed 's/-/./')"
+if [ "$VERSION" = "$REVISION" ]; then
+ REVISION="1"
+fi
+
+# Create dummy dist tar
+tar cf dist/${PROJECT}-${VERSION}.tar.gz \
+ --exclude .git --exclude dist \
+ --transform "s,^,${PROJECT}-${VERSION}/," *
+tar tfv dist/${PROJECT}-${VERSION}.tar.gz
+
+# Update spec version
+sed -i "s/^Version:.*$/Version:\t${VERSION}/g" $WORKSPACE/${PROJECT}.spec
+sed -i "s/^Release:.*$/Release:\t${REVISION}%{?dist}/g" $WORKSPACE/${PROJECT}.spec
+# for debugging
+cat $WORKSPACE/${PROJECT}.spec
+
+# Update setup.py version
+sed -i "s/version=\"[^\"]*\"/version=\"${VERSION}\"/g" $WORKSPACE/setup.py
+# for debugging
+cat $WORKSPACE/setup.py
+
+## Create the source rpm
+echo "Building SRPM"
+rpmbuild \
+ --define "_sourcedir $WORKSPACE/dist" \
+ --define "_specdir $WORKSPACE/dist" \
+ --define "_builddir $WORKSPACE/dist" \
+ --define "_srcrpmdir $WORKSPACE/dist/SRPMS" \
+ --define "_rpmdir $WORKSPACE/dist/RPMS" \
+ --nodeps -bs $WORKSPACE/${PROJECT}.spec
+SRPM=$(readlink -f $WORKSPACE/dist/SRPMS/*.src.rpm)
+
+## Build the binaries with mock
+echo "Building RPMs"
+sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --scrub=all
+sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --resultdir=$WORKSPACE/dist/RPMS/ ${SRPM} || ( tail -n +1 $WORKSPACE/dist/RPMS/{root,build}.log && exit 1 )
+
+## Upload the created RPMs to chacra
+chacra_endpoint="${PROJECT}/${BRANCH}/${GIT_COMMIT}/${DISTRO}/${RELEASE}"
+
+[ "$FORCE" = true ] && chacra_flags="--force" || chacra_flags=""
+
+# push binaries to chacra
+find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | $VENV/chacractl binary ${chacra_flags} create ${chacra_endpoint}/noarch/
+PACKAGE_MANAGER_VERSION=$(rpm --queryformat '%{VERSION}-%{RELEASE}\n' -qp $(find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | head -1))
+
+# write json file with build info
+cat > $WORKSPACE/repo-extra.json << EOF
+{
+ "version":"$VERSION",
+ "package_manager_version":"$PACKAGE_MANAGER_VERSION",
+ "build_url":"$BUILD_URL",
+ "root_build_cause":"$ROOT_BUILD_CAUSE",
+ "node_name":"$NODE_NAME",
+ "job_name":"$JOB_NAME"
+}
+EOF
+# post the json to repo-extra json to chacra
+curl -X POST -H "Content-Type:application/json" --data "@$WORKSPACE/repo-extra.json" -u $CHACRACTL_USER:$CHACRACTL_KEY ${chacra_url}repos/${chacra_endpoint}/extra/
+
+# start repo creation
+$VENV/chacractl repo update ${chacra_endpoint}
+
+echo Check the status of the repo at: https://shaman.ceph.com/api/repos/${chacra_endpoint}
--- /dev/null
+#! /usr/bin/bash
+#
+# Ceph distributed storage system
+#
+# Copyright (C) 2016 Red Hat <contact@redhat.com>
+#
+# Author: Boris Ranto <branto@redhat.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+set -ex
+
+# Make sure we execute at the top level directory before we do anything
+cd $WORKSPACE
+
+# This will set the DISTRO and MOCK_TARGET variables
+get_distro_and_target
+
+# Perform a clean-up
+git clean -fxd
+
+# Make sure the dist directory is clean
+rm -rf dist
+mkdir -p dist
+
+# Print some basic system info
+HOST=$(hostname --short)
+echo "Building on $(hostname) with the following env"
+echo "*****"
+env
+echo "*****"
+
+export LC_ALL=C # the following is vulnerable to i18n
+
+pkgs=( "chacractl>=0.0.21" )
+TEMPVENV=$(create_venv_dir)
+VENV=${TEMPVENV}/bin
+install_python_packages $TEMPVENV "pkgs[@]"
+
+# ask shaman which chacra instance to use
+chacra_url=`curl -f -u $SHAMAN_API_USER:$SHAMAN_API_KEY https://shaman.ceph.com/api/nodes/next/`
+# create the .chacractl config file using global variables
+make_chacractl_config $chacra_url
--- /dev/null
+#!/bin/bash
+set -ex
+
+# Only do actual work when we are a DEB distro
+if test -f /etc/redhat-release ; then
+ exit 0
+fi
--- /dev/null
+#!/bin/bash
+set -ex
+
+# only do work if we are a RPM distro
+if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then
+ exit 0
+fi
--- /dev/null
+- job:
+ name: ceph-iscsi-tools
+ project-type: matrix
+ defaults: global
+ display-name: 'ceph-iscsi-tools'
+ block-downstream: false
+ block-upstream: false
+ concurrent: true
+ parameters:
+ - string:
+ name: BRANCH
+ description: "The git branch (or tag) to build"
+ default: "main"
+
+ - string:
+ name: DISTROS
+ description: "A list of distros to build for. Available options are: xenial, centos7, centos8"
+ default: "centos7 centos8"
+
+ - string:
+ name: ARCHS
+ description: "A list of architectures to build for. Available options are: x86_64"
+ default: "x86_64"
+
+ - bool:
+ name: FORCE
+ description: "
+If this is unchecked, then nothing is built or pushed if they already exist in chacra. This is the default.
+
+If this is checked, then the binaries will be built and pushed to chacra even if they already exist in chacra."
+
+ - string:
+ name: BUILD_VIRTUALENV
+ description: "Base parent path for virtualenv locations, set to avoid issues with extremely long paths that are incompatible with tools like pip. Defaults to '/tmp/' (note the trailing slash, which is required)."
+ default: "/tmp/"
+
+ execution-strategy:
+ combination-filter: DIST==AVAILABLE_DIST && ARCH==AVAILABLE_ARCH && (ARCH=="x86_64" || (ARCH == "arm64" && (DIST == "xenial" || DIST == "centos7")))
+ axes:
+ - axis:
+ type: label-expression
+ name: MACHINE_SIZE
+ values:
+ - small
+ - axis:
+ type: label-expression
+ name: AVAILABLE_ARCH
+ values:
+ - x86_64
+ - axis:
+ type: label-expression
+ name: AVAILABLE_DIST
+ values:
+ - centos7
+ - centos8
+ - xenial
+ - axis:
+ type: dynamic
+ name: DIST
+ - axis:
+ type: dynamic
+ name: DIST
+ values:
+ - DISTROS
+ - axis:
+ type: dynamic
+ name: ARCH
+ values:
+ - ARCHS
+
+ scm:
+ - git:
+ url: git@github.com:ceph/ceph-iscsi-tools.git
+ # Use the SSH key attached to the ceph-jenkins GitHub account.
+ credentials-id: 'jenkins-build'
+ branches:
+ - $BRANCH
+ skip-tag: true
+ wipe-workspace: true
+
+ builders:
+ - shell: |
+ echo "Cleaning up top-level workarea (shared among workspaces)"
+ rm -rf dist
+ rm -rf venv
+ rm -rf release
+ # debian build scripts
+ - shell:
+ !include-raw-verbatim:
+ - ../../build/validate_deb
+ - ../../../scripts/build_utils.sh
+ - ../../build/setup
+ - ../../build/build_deb
+ # rpm build scripts
+ - shell:
+ !include-raw-verbatim:
+ - ../../build/validate_rpm
+ - ../../../scripts/build_utils.sh
+ - ../../build/setup
+ - ../../build/build_rpm
+
+ wrappers:
+ - inject-passwords:
+ global: true
+ mask-password-params: true
+ - credentials-binding:
+ - text:
+ credential-id: chacractl-key
+ variable: CHACRACTL_KEY
+ - credentials-binding:
+ - text:
+ credential-id: shaman-api-key
+ variable: SHAMAN_API_KEY
+++ /dev/null
-#!/bin/bash
-
-# the following two methods exist in scripts/build_utils.sh
-pkgs=( "tox" )
-TEMPVENV=$(create_venv_dir)
-VENV=${TEMPVENV}/bin
-install_python_packages $TEMPVENV "pkgs[@]"
-
-cd "$WORKSPACE/ceph-iscsi-cli"
-
-$VENV/tox -rv -e flake8
+++ /dev/null
-- scm:
- name: ceph-iscsi-cli
- scm:
- - git:
- url: https://github.com/ceph/ceph-iscsi-cli.git
- branches:
- - ${{sha1}}
- refspec: +refs/pull/*:refs/remotes/origin/pr/*
- browser: auto
- timeout: 20
- skip-tag: true
- wipe-workspace: true
- basedir: "ceph-iscsi-cli"
-
-- job:
- name: ceph-iscsi-cli-flake8
- description: Runs Flake8 tests for ceph-iscsi-cli on each GitHub PR
- project-type: freestyle
- node: python3
- block-downstream: false
- block-upstream: false
- defaults: global
- display-name: 'ceph-iscsi-cli: Flake8'
- quiet-period: 5
- retry-count: 3
-
- properties:
- - build-discarder:
- days-to-keep: 15
- num-to-keep: 30
- artifact-days-to-keep: 15
- artifact-num-to-keep: 15
- - github:
- url: https://github.com/ceph/ceph-iscsi-cli/
-
- parameters:
- - string:
- name: sha1
- description: "A pull request ID, like 'origin/pr/72/head'"
-
- triggers:
- - github-pull-request:
- admin-list:
- - dillaman
- org-list:
- - ceph
- trigger-phrase: 'jenkins flake8'
- only-trigger-phrase: false
- github-hooks: true
- permit-all: false
- auto-close-on-fail: false
- status-context: "Flake8"
-
- scm:
- - ceph-iscsi-cli
-
- builders:
- - shell:
- !include-raw-verbatim:
- - ../../../scripts/build_utils.sh
- - ../../build/build
+++ /dev/null
-- job:
- name: ceph-iscsi-cli-trigger
- node: built-in
- project-type: freestyle
- defaults: global
- quiet-period: 5
- block-downstream: false
- block-upstream: false
- properties:
- - build-discarder:
- days-to-keep: 1
- num-to-keep: 10
- artifact-days-to-keep: -1
- artifact-num-to-keep: -1
- - github:
- url: https://github.com/ceph/ceph-iscsi-cli
- discard-old-builds: true
-
- triggers:
- - github
-
- scm:
- - git:
- url: https://github.com/ceph/ceph-iscsi-cli.git
- branches:
- - 'origin/main*'
- - 'origin/wip*'
- skip-tag: true
- timeout: 20
- wipe-workspace: true
-
- builders:
- - trigger-builds:
- - project: 'ceph-iscsi-cli'
- predefined-parameters: |
- BRANCH=${{GIT_BRANCH}}
- FORCE=True
+++ /dev/null
-#! /usr/bin/bash
-set -ex
-
-# Only do actual work when we are a DEB distro
-if test "$DISTRO" != "debian" -a "$DISTRO" != "ubuntu"; then
- exit 0
-fi
-
-exit 1
+++ /dev/null
-#! /usr/bin/bash
-set -ex
-
-PROJECT=ceph-iscsi-cli
-BRANCH=`branch_slash_filter $BRANCH`
-
-# Only do actual work when we are an RPM distro
-if test "$DISTRO" != "fedora" -a "$DISTRO" != "centos" -a "$DISTRO" != "rhel"; then
- exit 0
-fi
-
-# Install the dependencies
-sudo yum install -y mock
-
-## Get some basic information about the system and the repository
-# Get version
-get_rpm_dist
-VERSION="$(git describe --abbrev=0 --tags HEAD)"
-REVISION="$(git describe --tags HEAD | cut -d - -f 2- | sed 's/-/./')"
-if [ "$VERSION" = "$REVISION" ]; then
- REVISION="1"
-fi
-
-# Create dummy dist tar
-tar cf dist/${PROJECT}-${VERSION}.tar.gz \
- --exclude .git --exclude dist \
- --transform "s,^,${PROJECT}-${VERSION}/," *
-tar tfv dist/${PROJECT}-${VERSION}.tar.gz
-
-# Update spec version
-sed -i "s/^Version:.*$/Version:\t${VERSION}/g" $WORKSPACE/${PROJECT}.spec
-sed -i "s/^Release:.*$/Release:\t${REVISION}%{?dist}/g" $WORKSPACE/${PROJECT}.spec
-# for debugging
-cat $WORKSPACE/${PROJECT}.spec
-
-# Update setup.py version
-sed -i "s/version=\"[^\"]*\"/version=\"${VERSION}\"/g" $WORKSPACE/setup.py
-# for debugging
-cat $WORKSPACE/setup.py
-
-## Create the source rpm
-echo "Building SRPM"
-rpmbuild \
- --define "_sourcedir $WORKSPACE/dist" \
- --define "_specdir $WORKSPACE/dist" \
- --define "_builddir $WORKSPACE/dist" \
- --define "_srcrpmdir $WORKSPACE/dist/SRPMS" \
- --define "_rpmdir $WORKSPACE/dist/RPMS" \
- --nodeps -bs $WORKSPACE/${PROJECT}.spec
-SRPM=$(readlink -f $WORKSPACE/dist/SRPMS/*.src.rpm)
-
-## Build the binaries with mock
-echo "Building RPMs"
-sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --scrub=all
-sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --resultdir=$WORKSPACE/dist/RPMS/ ${SRPM} || ( tail -n +1 $WORKSPACE/dist/RPMS/{root,build}.log && exit 1 )
-
-## Upload the created RPMs to chacra
-chacra_endpoint="${PROJECT}/${BRANCH}/${GIT_COMMIT}/${DISTRO}/${RELEASE}"
-
-[ "$FORCE" = true ] && chacra_flags="--force" || chacra_flags=""
-
-# push binaries to chacra
-find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | $VENV/chacractl binary ${chacra_flags} create ${chacra_endpoint}/noarch/
-PACKAGE_MANAGER_VERSION=$(rpm --queryformat '%{VERSION}-%{RELEASE}\n' -qp $(find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | head -1))
-
-# write json file with build info
-cat > $WORKSPACE/repo-extra.json << EOF
-{
- "version":"$VERSION",
- "package_manager_version":"$PACKAGE_MANAGER_VERSION",
- "build_url":"$BUILD_URL",
- "root_build_cause":"$ROOT_BUILD_CAUSE",
- "node_name":"$NODE_NAME",
- "job_name":"$JOB_NAME"
-}
-EOF
-# post the json to repo-extra json to chacra
-curl -X POST -H "Content-Type:application/json" --data "@$WORKSPACE/repo-extra.json" -u $CHACRACTL_USER:$CHACRACTL_KEY ${chacra_url}repos/${chacra_endpoint}/extra/
-
-# start repo creation
-$VENV/chacractl repo update ${chacra_endpoint}
-
-echo Check the status of the repo at: https://shaman.ceph.com/api/repos/${chacra_endpoint}
+++ /dev/null
-#! /usr/bin/bash
-#
-# Ceph distributed storage system
-#
-# Copyright (C) 2016 Red Hat <contact@redhat.com>
-#
-# Author: Boris Ranto <branto@redhat.com>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-set -ex
-
-# Make sure we execute at the top level directory before we do anything
-cd $WORKSPACE
-
-# This will set the DISTRO and MOCK_TARGET variables
-get_distro_and_target
-
-# Perform a clean-up
-git clean -fxd
-
-# Make sure the dist directory is clean
-rm -rf dist
-mkdir -p dist
-
-# Print some basic system info
-HOST=$(hostname --short)
-echo "Building on $(hostname) with the following env"
-echo "*****"
-env
-echo "*****"
-
-export LC_ALL=C # the following is vulnerable to i18n
-
-pkgs=( "chacractl>=0.0.21" )
-TEMPVENV=$(create_venv_dir)
-VENV=${TEMPVENV}/bin
-install_python_packages $TEMPVENV "pkgs[@]"
-
-# ask shaman which chacra instance to use
-chacra_url=`curl -f -u $SHAMAN_API_USER:$SHAMAN_API_KEY https://shaman.ceph.com/api/nodes/next/`
-# create the .chacractl config file using global variables
-make_chacractl_config $chacra_url
+++ /dev/null
-#!/bin/bash
-set -ex
-
-# Only do actual work when we are a DEB distro
-if test -f /etc/redhat-release ; then
- exit 0
-fi
+++ /dev/null
-#!/bin/bash
-set -ex
-
-# only do work if we are a RPM distro
-if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then
- exit 0
-fi
+++ /dev/null
-- job:
- name: ceph-iscsi-cli
- project-type: matrix
- defaults: global
- display-name: 'ceph-iscsi-cli'
- block-downstream: false
- block-upstream: false
- concurrent: true
- parameters:
- - string:
- name: BRANCH
- description: "The git branch (or tag) to build"
- default: "main"
-
- - string:
- name: DISTROS
- description: "A list of distros to build for. Available options are: centos7, centos6, bionic, xenial, trusty-pbuilder, precise, wheezy, and jessie"
- default: "centos7 xenial bionic"
-
- - string:
- name: ARCHS
- description: "A list of architectures to build for. Available options are: x86_64"
- default: "x86_64"
-
- - bool:
- name: FORCE
- description: "
-If this is unchecked, then nothing is built or pushed if they already exist in chacra. This is the default.
-
-If this is checked, then the binaries will be built and pushed to chacra even if they already exist in chacra."
-
- - string:
- name: BUILD_VIRTUALENV
- description: "Base parent path for virtualenv locations, set to avoid issues with extremely long paths that are incompatible with tools like pip. Defaults to '/tmp/' (note the trailing slash, which is required)."
- default: "/tmp/"
-
- execution-strategy:
- combination-filter: DIST==AVAILABLE_DIST && ARCH==AVAILABLE_ARCH && (ARCH=="x86_64" || (ARCH == "arm64" && (DIST == "xenial" || DIST == "centos7")))
- axes:
- - axis:
- type: label-expression
- name: MACHINE_SIZE
- values:
- - small
- - axis:
- type: label-expression
- name: AVAILABLE_ARCH
- values:
- - x86_64
- - axis:
- type: label-expression
- name: AVAILABLE_DIST
- values:
- - centos7
- - xenial
- - bionic
- - axis:
- type: dynamic
- name: DIST
- - axis:
- type: dynamic
- name: DIST
- values:
- - DISTROS
- - axis:
- type: dynamic
- name: ARCH
- values:
- - ARCHS
-
- scm:
- - git:
- url: git@github.com:ceph/ceph-iscsi-cli.git
- # Use the SSH key attached to the ceph-jenkins GitHub account.
- credentials-id: 'jenkins-build'
- branches:
- - $BRANCH
- skip-tag: true
- wipe-workspace: true
-
- builders:
- - shell: |
- echo "Cleaning up top-level workarea (shared among workspaces)"
- rm -rf dist
- rm -rf venv
- rm -rf release
- # debian build scripts
- - shell:
- !include-raw-verbatim:
- - ../../build/validate_deb
- - ../../../scripts/build_utils.sh
- - ../../build/setup
- - ../../build/build_deb
- # rpm build scripts
- - shell:
- !include-raw-verbatim:
- - ../../build/validate_rpm
- - ../../../scripts/build_utils.sh
- - ../../build/setup
- - ../../build/build_rpm
-
- wrappers:
- - inject-passwords:
- global: true
- mask-password-params: true
- - credentials-binding:
- - text:
- credential-id: chacractl-key
- variable: CHACRACTL_KEY
- - credentials-binding:
- - text:
- credential-id: shaman-api-key
- variable: SHAMAN_API_KEY
+++ /dev/null
-#!/bin/bash
-
-# the following two methods exist in scripts/build_utils.sh
-pkgs=( "tox" )
-TEMPVENV=$(create_venv_dir)
-VENV=${TEMPVENV}/bin
-install_python_packages $TEMPVENV "pkgs[@]"
-
-cd "$WORKSPACE/ceph-iscsi-config"
-
-$VENV/tox -rv -e flake8
+++ /dev/null
-- scm:
- name: ceph-iscsi-config
- scm:
- - git:
- url: https://github.com/ceph/ceph-iscsi-config.git
- branches:
- - ${{sha1}}
- refspec: +refs/pull/*:refs/remotes/origin/pr/*
- browser: auto
- timeout: 20
- skip-tag: true
- wipe-workspace: true
- basedir: "ceph-iscsi-config"
-
-- job:
- name: ceph-iscsi-config-flake8
- description: Runs Flake8 tests for ceph-iscsi-config on each GitHub PR
- project-type: freestyle
- node: python3
- block-downstream: false
- block-upstream: false
- defaults: global
- display-name: 'ceph-iscsi-config: Flake8'
- quiet-period: 5
- retry-count: 3
-
- properties:
- - build-discarder:
- days-to-keep: 15
- num-to-keep: 30
- artifact-days-to-keep: 15
- artifact-num-to-keep: 15
- - github:
- url: https://github.com/ceph/ceph-iscsi-config/
-
- parameters:
- - string:
- name: sha1
- description: "A pull request ID, like 'origin/pr/72/head'"
-
- triggers:
- - github-pull-request:
- admin-list:
- - dillaman
- org-list:
- - ceph
- trigger-phrase: 'jenkins flake8'
- only-trigger-phrase: false
- github-hooks: true
- permit-all: false
- auto-close-on-fail: false
- status-context: "Flake8"
-
- scm:
- - ceph-iscsi-config
-
- builders:
- - shell:
- !include-raw-verbatim:
- - ../../../scripts/build_utils.sh
- - ../../build/build
+++ /dev/null
-- job:
- name: ceph-iscsi-config-trigger
- node: built-in
- project-type: freestyle
- defaults: global
- quiet-period: 5
- block-downstream: false
- block-upstream: false
- properties:
- - build-discarder:
- days-to-keep: 1
- num-to-keep: 10
- artifact-days-to-keep: -1
- artifact-num-to-keep: -1
- - github:
- url: https://github.com/ceph/ceph-iscsi-config
- discard-old-builds: true
-
- triggers:
- - github
-
- scm:
- - git:
- url: https://github.com/ceph/ceph-iscsi-config.git
- branches:
- - 'origin/main*'
- - 'origin/wip*'
- skip-tag: true
- timeout: 20
- wipe-workspace: true
-
- builders:
- - trigger-builds:
- - project: 'ceph-iscsi-config'
- predefined-parameters: |
- BRANCH=${{GIT_BRANCH}}
- FORCE=True
+++ /dev/null
-#! /usr/bin/bash
-set -ex
-
-# Only do actual work when we are a DEB distro
-if test "$DISTRO" != "debian" -a "$DISTRO" != "ubuntu"; then
- exit 0
-fi
-
-exit 1
+++ /dev/null
-#! /usr/bin/bash
-set -ex
-
-PROJECT=ceph-iscsi-config
-BRANCH=`branch_slash_filter $BRANCH`
-
-# Only do actual work when we are an RPM distro
-if test "$DISTRO" != "fedora" -a "$DISTRO" != "centos" -a "$DISTRO" != "rhel"; then
- exit 0
-fi
-
-# Install the dependencies
-sudo yum install -y mock
-
-## Get some basic information about the system and the repository
-# Get version
-get_rpm_dist
-VERSION="$(git describe --abbrev=0 --tags HEAD)"
-REVISION="$(git describe --tags HEAD | cut -d - -f 2- | sed 's/-/./')"
-if [ "$VERSION" = "$REVISION" ]; then
- REVISION="1"
-fi
-
-# Create dummy dist tar
-tar cf dist/${PROJECT}-${VERSION}.tar.gz \
- --exclude .git --exclude dist \
- --transform "s,^,${PROJECT}-${VERSION}/," *
-tar tfv dist/${PROJECT}-${VERSION}.tar.gz
-
-# Update spec version
-sed -i "s/^Version:.*$/Version:\t${VERSION}/g" $WORKSPACE/${PROJECT}.spec
-sed -i "s/^Release:.*$/Release:\t${REVISION}%{?dist}/g" $WORKSPACE/${PROJECT}.spec
-# for debugging
-cat $WORKSPACE/${PROJECT}.spec
-
-# Update setup.py version
-sed -i "s/version=\"[^\"]*\"/version=\"${VERSION}\"/g" $WORKSPACE/setup.py
-# for debugging
-cat $WORKSPACE/setup.py
-
-## Create the source rpm
-echo "Building SRPM"
-rpmbuild \
- --define "_sourcedir $WORKSPACE/dist" \
- --define "_specdir $WORKSPACE/dist" \
- --define "_builddir $WORKSPACE/dist" \
- --define "_srcrpmdir $WORKSPACE/dist/SRPMS" \
- --define "_rpmdir $WORKSPACE/dist/RPMS" \
- --nodeps -bs $WORKSPACE/${PROJECT}.spec
-SRPM=$(readlink -f $WORKSPACE/dist/SRPMS/*.src.rpm)
-
-## Build the binaries with mock
-echo "Building RPMs"
-sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --scrub=all
-sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --resultdir=$WORKSPACE/dist/RPMS/ ${SRPM} || ( tail -n +1 $WORKSPACE/dist/RPMS/{root,build}.log && exit 1 )
-
-## Upload the created RPMs to chacra
-chacra_endpoint="${PROJECT}/${BRANCH}/${GIT_COMMIT}/${DISTRO}/${RELEASE}"
-
-[ "$FORCE" = true ] && chacra_flags="--force" || chacra_flags=""
-
-# push binaries to chacra
-find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | $VENV/chacractl binary ${chacra_flags} create ${chacra_endpoint}/noarch/
-PACKAGE_MANAGER_VERSION=$(rpm --queryformat '%{VERSION}-%{RELEASE}\n' -qp $(find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | head -1))
-
-# write json file with build info
-cat > $WORKSPACE/repo-extra.json << EOF
-{
- "version":"$VERSION",
- "package_manager_version":"$PACKAGE_MANAGER_VERSION",
- "build_url":"$BUILD_URL",
- "root_build_cause":"$ROOT_BUILD_CAUSE",
- "node_name":"$NODE_NAME",
- "job_name":"$JOB_NAME"
-}
-EOF
-# post the json to repo-extra json to chacra
-curl -X POST -H "Content-Type:application/json" --data "@$WORKSPACE/repo-extra.json" -u $CHACRACTL_USER:$CHACRACTL_KEY ${chacra_url}repos/${chacra_endpoint}/extra/
-
-# start repo creation
-$VENV/chacractl repo update ${chacra_endpoint}
-
-echo Check the status of the repo at: https://shaman.ceph.com/api/repos/${chacra_endpoint}
+++ /dev/null
-#! /usr/bin/bash
-#
-# Ceph distributed storage system
-#
-# Copyright (C) 2016 Red Hat <contact@redhat.com>
-#
-# Author: Boris Ranto <branto@redhat.com>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-set -ex
-
-# Make sure we execute at the top level directory before we do anything
-cd $WORKSPACE
-
-# This will set the DISTRO and MOCK_TARGET variables
-get_distro_and_target
-
-# Perform a clean-up
-git clean -fxd
-
-# Make sure the dist directory is clean
-rm -rf dist
-mkdir -p dist
-
-# Print some basic system info
-HOST=$(hostname --short)
-echo "Building on $(hostname) with the following env"
-echo "*****"
-env
-echo "*****"
-
-export LC_ALL=C # the following is vulnerable to i18n
-
-pkgs=( "chacractl>=0.0.21" )
-TEMPVENV=$(create_venv_dir)
-VENV=${TEMPVENV}/bin
-install_python_packages $TEMPVENV "pkgs[@]"
-
-# ask shaman which chacra instance to use
-chacra_url=`curl -f -u $SHAMAN_API_USER:$SHAMAN_API_KEY https://shaman.ceph.com/api/nodes/next/`
-# create the .chacractl config file using global variables
-make_chacractl_config $chacra_url
+++ /dev/null
-#!/bin/bash
-set -ex
-
-# Only do actual work when we are a DEB distro
-if test -f /etc/redhat-release ; then
- exit 0
-fi
+++ /dev/null
-#!/bin/bash
-set -ex
-
-# only do work if we are a RPM distro
-if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then
- exit 0
-fi
+++ /dev/null
-- job:
- name: ceph-iscsi-config
- project-type: matrix
- defaults: global
- display-name: 'ceph-iscsi-config'
- block-downstream: false
- block-upstream: false
- concurrent: true
- parameters:
- - string:
- name: BRANCH
- description: "The git branch (or tag) to build"
- default: "main"
-
- - string:
- name: DISTROS
- description: "A list of distros to build for. Available options are: centos7, centos6, bionic, xenial, trusty-pbuilder, precise, wheezy, and jessie"
- default: "centos7 xenial bionic"
-
- - string:
- name: ARCHS
- description: "A list of architectures to build for. Available options are: x86_64"
- default: "x86_64"
-
- - bool:
- name: FORCE
- description: "
-If this is unchecked, then nothing is built or pushed if they already exist in chacra. This is the default.
-
-If this is checked, then the binaries will be built and pushed to chacra even if they already exist in chacra."
-
- - string:
- name: BUILD_VIRTUALENV
- description: "Base parent path for virtualenv locations, set to avoid issues with extremely long paths that are incompatible with tools like pip. Defaults to '/tmp/' (note the trailing slash, which is required)."
- default: "/tmp/"
-
- execution-strategy:
- combination-filter: DIST==AVAILABLE_DIST && ARCH==AVAILABLE_ARCH && (ARCH=="x86_64" || (ARCH == "arm64" && (DIST == "xenial" || DIST == "centos7")))
- axes:
- - axis:
- type: label-expression
- name: MACHINE_SIZE
- values:
- - small
- - axis:
- type: label-expression
- name: AVAILABLE_ARCH
- values:
- - x86_64
- - axis:
- type: label-expression
- name: AVAILABLE_DIST
- values:
- - centos7
- - xenial
- - bionic
- - axis:
- type: dynamic
- name: DIST
- - axis:
- type: dynamic
- name: DIST
- values:
- - DISTROS
- - axis:
- type: dynamic
- name: ARCH
- values:
- - ARCHS
-
- scm:
- - git:
- url: git@github.com:ceph/ceph-iscsi-config.git
- # Use the SSH key attached to the ceph-jenkins GitHub account.
- credentials-id: 'jenkins-build'
- branches:
- - $BRANCH
- skip-tag: true
- wipe-workspace: true
-
- builders:
- - shell: |
- echo "Cleaning up top-level workarea (shared among workspaces)"
- rm -rf dist
- rm -rf venv
- rm -rf release
- # debian build scripts
- - shell:
- !include-raw-verbatim:
- - ../../build/validate_deb
- - ../../../scripts/build_utils.sh
- - ../../build/setup
- - ../../build/build_deb
- # rpm build scripts
- - shell:
- !include-raw-verbatim:
- - ../../build/validate_rpm
- - ../../../scripts/build_utils.sh
- - ../../build/setup
- - ../../build/build_rpm
-
- wrappers:
- - inject-passwords:
- global: true
- mask-password-params: true
- - credentials-binding:
- - text:
- credential-id: chacractl-key
- variable: CHACRACTL_KEY
- - credentials-binding:
- - text:
- credential-id: shaman-api-key
- variable: SHAMAN_API_KEY
+++ /dev/null
-- job:
- name: ceph-iscsi-tools-trigger
- node: built-in
- project-type: freestyle
- defaults: global
- quiet-period: 5
- block-downstream: false
- block-upstream: false
- properties:
- - build-discarder:
- days-to-keep: 1
- num-to-keep: 10
- artifact-days-to-keep: -1
- artifact-num-to-keep: -1
- - github:
- url: https://github.com/ceph/ceph-iscsi-tools
- discard-old-builds: true
-
- triggers:
- - github
-
- scm:
- - git:
- url: https://github.com/ceph/ceph-iscsi-tools.git
- branches:
- - 'origin/main*'
- - 'origin/wip*'
- skip-tag: true
- timeout: 20
- wipe-workspace: true
-
- builders:
- - trigger-builds:
- - project: 'ceph-iscsi-tools'
- predefined-parameters: |
- BRANCH=${{GIT_BRANCH}}
- FORCE=True
+++ /dev/null
-#! /usr/bin/bash
-set -ex
-
-# Only do actual work when we are a DEB distro
-if test "$DISTRO" != "debian" -a "$DISTRO" != "ubuntu"; then
- exit 0
-fi
-
-exit 1
+++ /dev/null
-#! /usr/bin/bash
-set -ex
-
-PROJECT=ceph-iscsi-tools
-BRANCH=`branch_slash_filter $BRANCH`
-
-# Only do actual work when we are an RPM distro
-if test "$DISTRO" != "fedora" -a "$DISTRO" != "centos" -a "$DISTRO" != "rhel"; then
- exit 0
-fi
-
-# Install the dependencies
-sudo yum install -y mock
-
-## Get some basic information about the system and the repository
-# Get version
-get_rpm_dist
-VERSION="$(git describe --abbrev=0 --tags HEAD)"
-REVISION="$(git describe --tags HEAD | cut -d - -f 2- | sed 's/-/./')"
-if [ "$VERSION" = "$REVISION" ]; then
- REVISION="1"
-fi
-
-# Create dummy dist tar
-tar cf dist/${PROJECT}-${VERSION}.tar.gz \
- --exclude .git --exclude dist \
- --transform "s,^,${PROJECT}-${VERSION}/," *
-tar tfv dist/${PROJECT}-${VERSION}.tar.gz
-
-# Update spec version
-sed -i "s/^Version:.*$/Version:\t${VERSION}/g" $WORKSPACE/${PROJECT}.spec
-sed -i "s/^Release:.*$/Release:\t${REVISION}%{?dist}/g" $WORKSPACE/${PROJECT}.spec
-# for debugging
-cat $WORKSPACE/${PROJECT}.spec
-
-# Update setup.py version
-sed -i "s/version=\"[^\"]*\"/version=\"${VERSION}\"/g" $WORKSPACE/setup.py
-# for debugging
-cat $WORKSPACE/setup.py
-
-## Create the source rpm
-echo "Building SRPM"
-rpmbuild \
- --define "_sourcedir $WORKSPACE/dist" \
- --define "_specdir $WORKSPACE/dist" \
- --define "_builddir $WORKSPACE/dist" \
- --define "_srcrpmdir $WORKSPACE/dist/SRPMS" \
- --define "_rpmdir $WORKSPACE/dist/RPMS" \
- --nodeps -bs $WORKSPACE/${PROJECT}.spec
-SRPM=$(readlink -f $WORKSPACE/dist/SRPMS/*.src.rpm)
-
-## Build the binaries with mock
-echo "Building RPMs"
-sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --scrub=all
-sudo mock --verbose -r ${MOCK_TARGET}-${RELEASE}-${ARCH} --resultdir=$WORKSPACE/dist/RPMS/ ${SRPM} || ( tail -n +1 $WORKSPACE/dist/RPMS/{root,build}.log && exit 1 )
-
-## Upload the created RPMs to chacra
-chacra_endpoint="${PROJECT}/${BRANCH}/${GIT_COMMIT}/${DISTRO}/${RELEASE}"
-
-[ "$FORCE" = true ] && chacra_flags="--force" || chacra_flags=""
-
-# push binaries to chacra
-find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | $VENV/chacractl binary ${chacra_flags} create ${chacra_endpoint}/noarch/
-PACKAGE_MANAGER_VERSION=$(rpm --queryformat '%{VERSION}-%{RELEASE}\n' -qp $(find $WORKSPACE/dist/RPMS/ | egrep "\.noarch\.rpm" | head -1))
-
-# write json file with build info
-cat > $WORKSPACE/repo-extra.json << EOF
-{
- "version":"$VERSION",
- "package_manager_version":"$PACKAGE_MANAGER_VERSION",
- "build_url":"$BUILD_URL",
- "root_build_cause":"$ROOT_BUILD_CAUSE",
- "node_name":"$NODE_NAME",
- "job_name":"$JOB_NAME"
-}
-EOF
-# post the json to repo-extra json to chacra
-curl -X POST -H "Content-Type:application/json" --data "@$WORKSPACE/repo-extra.json" -u $CHACRACTL_USER:$CHACRACTL_KEY ${chacra_url}repos/${chacra_endpoint}/extra/
-
-# start repo creation
-$VENV/chacractl repo update ${chacra_endpoint}
-
-echo Check the status of the repo at: https://shaman.ceph.com/api/repos/${chacra_endpoint}
+++ /dev/null
-#! /usr/bin/bash
-#
-# Ceph distributed storage system
-#
-# Copyright (C) 2016 Red Hat <contact@redhat.com>
-#
-# Author: Boris Ranto <branto@redhat.com>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-set -ex
-
-# Make sure we execute at the top level directory before we do anything
-cd $WORKSPACE
-
-# This will set the DISTRO and MOCK_TARGET variables
-get_distro_and_target
-
-# Perform a clean-up
-git clean -fxd
-
-# Make sure the dist directory is clean
-rm -rf dist
-mkdir -p dist
-
-# Print some basic system info
-HOST=$(hostname --short)
-echo "Building on $(hostname) with the following env"
-echo "*****"
-env
-echo "*****"
-
-export LC_ALL=C # the following is vulnerable to i18n
-
-pkgs=( "chacractl>=0.0.21" )
-TEMPVENV=$(create_venv_dir)
-VENV=${TEMPVENV}/bin
-install_python_packages $TEMPVENV "pkgs[@]"
-
-# ask shaman which chacra instance to use
-chacra_url=`curl -f -u $SHAMAN_API_USER:$SHAMAN_API_KEY https://shaman.ceph.com/api/nodes/next/`
-# create the .chacractl config file using global variables
-make_chacractl_config $chacra_url
+++ /dev/null
-#!/bin/bash
-set -ex
-
-# Only do actual work when we are a DEB distro
-if test -f /etc/redhat-release ; then
- exit 0
-fi
+++ /dev/null
-#!/bin/bash
-set -ex
-
-# only do work if we are a RPM distro
-if [[ ! -f /etc/redhat-release && ! -f /usr/bin/zypper ]] ; then
- exit 0
-fi
+++ /dev/null
-- job:
- name: ceph-iscsi-tools
- project-type: matrix
- defaults: global
- display-name: 'ceph-iscsi-tools'
- block-downstream: false
- block-upstream: false
- concurrent: true
- parameters:
- - string:
- name: BRANCH
- description: "The git branch (or tag) to build"
- default: "main"
-
- - string:
- name: DISTROS
- description: "A list of distros to build for. Available options are: xenial, centos7, centos8"
- default: "centos7 centos8"
-
- - string:
- name: ARCHS
- description: "A list of architectures to build for. Available options are: x86_64"
- default: "x86_64"
-
- - bool:
- name: FORCE
- description: "
-If this is unchecked, then nothing is built or pushed if they already exist in chacra. This is the default.
-
-If this is checked, then the binaries will be built and pushed to chacra even if they already exist in chacra."
-
- - string:
- name: BUILD_VIRTUALENV
- description: "Base parent path for virtualenv locations, set to avoid issues with extremely long paths that are incompatible with tools like pip. Defaults to '/tmp/' (note the trailing slash, which is required)."
- default: "/tmp/"
-
- execution-strategy:
- combination-filter: DIST==AVAILABLE_DIST && ARCH==AVAILABLE_ARCH && (ARCH=="x86_64" || (ARCH == "arm64" && (DIST == "xenial" || DIST == "centos7")))
- axes:
- - axis:
- type: label-expression
- name: MACHINE_SIZE
- values:
- - small
- - axis:
- type: label-expression
- name: AVAILABLE_ARCH
- values:
- - x86_64
- - axis:
- type: label-expression
- name: AVAILABLE_DIST
- values:
- - centos7
- - centos8
- - xenial
- - axis:
- type: dynamic
- name: DIST
- - axis:
- type: dynamic
- name: DIST
- values:
- - DISTROS
- - axis:
- type: dynamic
- name: ARCH
- values:
- - ARCHS
-
- scm:
- - git:
- url: git@github.com:ceph/ceph-iscsi-tools.git
- # Use the SSH key attached to the ceph-jenkins GitHub account.
- credentials-id: 'jenkins-build'
- branches:
- - $BRANCH
- skip-tag: true
- wipe-workspace: true
-
- builders:
- - shell: |
- echo "Cleaning up top-level workarea (shared among workspaces)"
- rm -rf dist
- rm -rf venv
- rm -rf release
- # debian build scripts
- - shell:
- !include-raw-verbatim:
- - ../../build/validate_deb
- - ../../../scripts/build_utils.sh
- - ../../build/setup
- - ../../build/build_deb
- # rpm build scripts
- - shell:
- !include-raw-verbatim:
- - ../../build/validate_rpm
- - ../../../scripts/build_utils.sh
- - ../../build/setup
- - ../../build/build_rpm
-
- wrappers:
- - inject-passwords:
- global: true
- mask-password-params: true
- - credentials-binding:
- - text:
- credential-id: chacractl-key
- variable: CHACRACTL_KEY
- - credentials-binding:
- - text:
- credential-id: shaman-api-key
- variable: SHAMAN_API_KEY