- 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}-{node}' node: '{node}' builders: - print-template-name: template-name: "{template-name}" - gerrit-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}{job-suffix}' node: '{node}' builders: - print-template-name: template-name: "{template-name}" - link-logs - gerrit-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 - gerrit-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}" - gerrit-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}" - gerrit-git-prep - install-distro-packages - revoke-sudo - puppet-syntax publishers: - console-log - job-template: name: 'gate-{name}-puppet-syntax-{puppet_version}-{node}' node: '{node}' builders: - print-template-name: template-name: "{template-name}" - gerrit-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}{job-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}-{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 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 jobs: - 'gate-{name}-puppet-lint' - 'gate-{name}-puppet-syntax' - 'gate-{name}-puppet-syntax-{puppet_version}-{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 jobs: - 'gate-{name}-puppet-unit-{puppet_version}-{node}' - job-group: name: 'puppet-beaker-jobs-trusty' ostype: trusty node: - ubuntu-trusty jobs: - 'gate-{name}-puppet-beaker-rspec-{node}{job-suffix}' - job-group: name: 'puppet-beaker-jobs-xenial' ostype: xenial node: - ubuntu-xenial jobs: - 'gate-{name}-puppet-beaker-rspec-{node}{job-suffix}' - job-group: name: 'puppet-beaker-jobs-centos7' ostype: centos7 node: - centos-7 jobs: - 'gate-{name}-puppet-beaker-rspec-{node}{job-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}{job-suffix}' - job-group: name: 'puppet-openstack-libraries-jobs' node: - centos-7 puppet_version: - 3 - 4 jobs: - 'gate-puppet-openstack-libraries-puppet-lint-{node}' - 'gate-puppet-openstack-libraries-puppet-syntax-{puppet_version}-{node}' - 'gate-puppet-openstack-libraries-puppet-unit-{node}' - 'gate-puppet-openstack-libraries-puppet-beaker-rspec-{node}'