project-config/jenkins/jobs/puppet-module-jobs.yaml

449 lines
11 KiB
YAML

- builder:
name: puppet-openstack-integration-checkout
builders:
- shell: |
#!/bin/bash -xe
ZUUL_BRANCH_REAL=${ZUUL_BRANCH:-master}
# Workaround for puppet-ceph, where we need to checkout
# puppet-openstack-integration from stable/mitaka when working on stable/hammer.
# Ceph Hammer works with Mitaka and before.
# Ceph Jewel works with Newton and beyond.
if [[ "$ZUUL_BRANCH" == "stable/hammer" ]]; then
ZUUL_BRANCH_REAL='stable/mitaka'
fi
export ZUUL_REF=${ZUUL_REF:-None}
CLONEMAP=`mktemp`
function cleanup {
rm -f $CLONEMAP
}
trap cleanup EXIT
cat > $CLONEMAP << EOF
clonemap:
- name: openstack/puppet-openstack-integration
dest: puppet-openstack-integration
EOF
/usr/zuul-env/bin/zuul-cloner -m $CLONEMAP \
--cache-dir /opt/git \
--zuul-branch $ZUUL_BRANCH_REAL \
git://git.openstack.org openstack/puppet-openstack-integration
- job-template:
name: 'gate-{name}-puppet-unit-{puppet_version}-{legacy}{node}'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep
- install-distro-packages
- puppet-prepare-node
- revoke-sudo
- shell: |
if [ "{puppet_version}" != "latest" ]; then
export PUPPET_GEM_VERSION='~> {puppet_version}.0'
fi
mkdir .bundled_gems
export GEM_HOME=`pwd`/.bundled_gems
gem install bundler --no-rdoc --no-ri --verbose
$GEM_HOME/bin/bundle install --retry 3
$GEM_HOME/bin/bundle exec rake spec SPEC_OPTS='--format documentation'
wrappers:
- build-timeout:
timeout: 60
- timestamps
publishers:
- console-log
- job-template:
name: 'gate-{name}-puppet-beaker-rspec-{node}{suffix}'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- zuul-git-prep
- puppet-openstack-integration-checkout
- install-distro-packages
- puppet-prepare-node
- allow-local-ssh-root
- shell: |
trap "puppet-openstack-integration/copy_logs.sh" EXIT
mkdir .bundled_gems
export GEM_HOME=`pwd`/.bundled_gems
gem install bundler --no-rdoc --no-ri --verbose
$GEM_HOME/bin/bundle install --retry 3
export BEAKER_set=nodepool-{ostype}
export BEAKER_debug=yes
export BEAKER_color=no
# deploy puppet4 on experimental beaker jobs
# https://tickets.puppetlabs.com/browse/BKR-821
if [ "{node}" == "ubuntu-xenial" ]; then
export PUPPET_INSTALL_TYPE=agent
export PUPPET_MAJ_VERSION=4
fi
$GEM_HOME/bin/bundle exec rspec spec/acceptance
wrappers:
- build-timeout:
timeout: 60
- timestamps
publishers:
- devstack-logs
- console-log
- job-template:
name: '{name}-forge-upload'
node: release
builders:
- print-template-name:
template-name: "{template-name}"
- revoke-sudo
- zuul-git-prep
- shell: |
#!/bin/bash
cat > Rakefile << EOF
require 'puppet_blacksmith/rake_tasks'
EOF
TAG=${{ZUUL_REF:10}}
sed -i -e 's/ "version":.*/ "version": "'$TAG'",/' metadata.json
mkdir .bundled_gems
export GEM_HOME=`pwd`/.bundled_gems
gem install --no-ri --no-rdoc puppetlabs_spec_helper puppet-blacksmith
rake module:push
publishers:
- console-log
- job-template:
name: 'gate-{name}-puppet-lint'
node: ubuntu-xenial
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep
- install-distro-packages
- puppet-prepare-node
- revoke-sudo
- puppet-lint
publishers:
- console-log
- job-template:
name: 'gate-{name}-puppet-syntax'
node: ubuntu-xenial
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep
- install-distro-packages
- revoke-sudo
- puppet-syntax
publishers:
- console-log
- job-template:
name: 'gate-{name}-puppet-syntax-{puppet_version}-{legacy}{node}'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep
- install-distro-packages
- puppet-prepare-node
- revoke-sudo
- shell: |
export PUPPET_GEM_VERSION='~> {puppet_version}'
mkdir .bundled_gems
export GEM_HOME=`pwd`/.bundled_gems
gem install bundler --no-rdoc --no-ri --verbose
$GEM_HOME/bin/bundle install --retry 3
# FUTURE_PARSER=yes is only supported by Puppet 3.x
if [ "{puppet_version}" -lt "4" ]; then
export FUTURE_PARSER=yes
fi
$GEM_HOME/bin/bundle exec rake syntax
publishers:
- console-log
- job-template:
name: 'gate-puppet-openstack-integration-{puppet_version}-{scenario}-tempest-{node}{suffix}'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- puppet-openstack-integration-checkout
- shell: |
#!/bin/bash -xe
cd puppet-openstack-integration
/usr/local/jenkins/slave_scripts/install-distro-packages.sh
- puppet-prepare-node
- shell: |
#!/bin/bash -xe
cd puppet-openstack-integration
trap "./copy_logs.sh" EXIT
export PUPPET_MAJ_VERSION={puppet_version}
export SCENARIO={scenario}
mkdir .bundled_gems
export GEM_HOME=`pwd`/.bundled_gems
gem install bundler --no-rdoc --no-ri --verbose
./run_tests.sh
wrappers:
- build-timeout:
timeout: 60
- timestamps
publishers:
- devstack-logs
- console-log
- job-template:
name: 'gate-puppet-openstack-libraries-puppet-lint-{node}'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- zuul-clone:
project: $ZUUL_PROJECT
- install-distro-packages
- puppet-prepare-node
- shell: |
#!/bin/bash -xe
cd $ZUUL_PROJECT
./run_lint_tests.sh
wrappers:
- build-timeout:
timeout: 60
- timestamps
publishers:
- console-log
- job-template:
name: 'gate-puppet-openstack-libraries-puppet-syntax-{puppet_version}-{legacy}{node}'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- zuul-clone:
project: $ZUUL_PROJECT
- install-distro-packages
- puppet-prepare-node
- shell: |
#!/bin/bash -xe
cd $ZUUL_PROJECT
export PUPPET_VERSION="{puppet_version}"
./run_syntax_tests.sh
wrappers:
- build-timeout:
timeout: 60
- timestamps
publishers:
- console-log
- job-template:
name: 'gate-puppet-openstack-libraries-puppet-unit-{node}'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- zuul-clone:
project: $ZUUL_PROJECT
- install-distro-packages
- puppet-prepare-node
- shell: |
#!/bin/bash -xe
cd $ZUUL_PROJECT
./run_unit_tests.sh
wrappers:
- build-timeout:
timeout: 60
- timestamps
publishers:
- console-log
- job-template:
name: 'gate-puppet-openstack-libraries-puppet-beaker-rspec-{node}'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- puppet-openstack-integration-checkout
- zuul-clone:
project: $ZUUL_PROJECT
- install-distro-packages
- puppet-prepare-node
- allow-local-ssh-root
- shell: |
#!/bin/bash -xe
cd $ZUUL_PROJECT
trap "../../puppet-openstack-integration/copy_logs.sh" EXIT
./run_beaker_tests.sh
wrappers:
- build-timeout:
timeout: 60
- timestamps
publishers:
- devstack-logs
- console-log
- job-template:
name: 'gate-{name}-puppet-module-build'
node: '{node}'
builders:
- print-template-name:
template-name: "{template-name}"
- link-logs
- zuul-clone:
project: $ZUUL_PROJECT
- install-distro-packages
- shell: |
#!/bin/bash -xe
cd $ZUUL_PROJECT
puppet module build .
wrappers:
- build-timeout:
timeout: 60
- timestamps
publishers:
- console-log
- job:
name: propose-puppet-openstack-constraints
node: proposal
builders:
- proposal-slave-cleanup
- revoke-sudo
- link-logs
- branch-git-prep:
branch: master
- net-info
- shell: |
export ZUUL_REFNAME=master
/usr/local/jenkins/slave_scripts/propose_update.sh \
puppet-openstack-constraints
publishers:
- console-log
- job-group:
name: 'puppet-check-jobs'
puppet_version:
- 3
- 4
node: centos-7
legacy:
- ''
- 'legacy-'
jobs:
- 'gate-{name}-puppet-lint'
- 'gate-{name}-puppet-syntax'
- 'gate-{name}-puppet-module-build'
- 'gate-{name}-puppet-syntax-{puppet_version}-{legacy}{node}'
- job-group:
name: 'puppet-module-unit'
puppet_version:
- 3.3
- 3.4
- 3.6
- 3.7
- 3.8
- 4.0
- 4.5
- 'latest'
puppet_unit_version: '3.3 3.4 3.6 3.7 3.8 4.0 4.5 latest'
node: centos-7
legacy:
- ''
- 'legacy-'
jobs:
- 'gate-{name}-puppet-unit-{puppet_version}-{legacy}{node}'
- job-group:
name: 'puppet-beaker-jobs-trusty'
ostype: trusty
node: ubuntu-trusty
jobs:
- 'gate-{name}-puppet-beaker-rspec-{node}{suffix}'
- job-group:
name: 'puppet-beaker-jobs-xenial'
ostype: xenial
node: ubuntu-xenial
jobs:
- 'gate-{name}-puppet-beaker-rspec-{node}{suffix}'
- job-group:
name: 'puppet-beaker-jobs-centos7'
ostype: centos7
node: centos-7
jobs:
- 'gate-{name}-puppet-beaker-rspec-{node}{suffix}'
- job-group:
name: 'puppet-openstack-integration-jobs'
puppet_version:
- 3
- 4
node:
- ubuntu-trusty
- ubuntu-xenial
- centos-7
scenario:
- scenario001
- scenario002
- scenario003
- scenario004
jobs:
- 'gate-puppet-openstack-integration-{puppet_version}-{scenario}-tempest-{node}{suffix}'
- job-group:
name: 'puppet-openstack-libraries-jobs'
node: centos-7
puppet_version:
- 3
- 4
legacy:
- ''
- 'legacy-'
jobs:
- 'gate-puppet-openstack-libraries-puppet-lint-{node}'
- 'gate-puppet-openstack-libraries-puppet-syntax-{puppet_version}-{legacy}{node}'
- 'gate-puppet-openstack-libraries-puppet-unit-{node}'
- 'gate-puppet-openstack-libraries-puppet-beaker-rspec-{node}'