project-config/jenkins/jobs/ansible-role-jobs.yaml
Jesse Pretorius 441816ac31 Implement optional scenario setting for Ansible jobs
In order to allow the same ansible role jobs to be used for multiple
scenarios, this patch implements an optional job setting which gets
used to modify the tox environment used.

The intent is that the tox configuration used in the target repository
can be specified in the job in order to implement alternative
scenarios.

Change-Id: I2e9c49b6d8181feb24c963d88b2f08e46e8a18c4
2016-07-12 17:56:56 +01:00

142 lines
3.9 KiB
YAML

- job-template:
name: 'gate-{name}-ansible-lint'
node: 'ubuntu-trusty'
builders:
- gerrit-git-prep
- install-distro-packages
- ansible-prep
- ansible-lint-prep
- revoke-sudo
- ansible-syntax
- ansible-lint
publishers:
- console-log
- job-group:
# TODO(pabelanger): Remove in favor of ansible-role-jobs
name: 'ansible-lint-jobs'
jobs:
- 'gate-{name}-ansible-lint'
- job-template:
name: '{pipeline}-{name}-dsvm-ansible-func-{ostype}{job-suffix}'
node: '{ostype}'
wrappers:
- build-timeout:
timeout: 60
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep
- devstack-checkout
- shell: |
# Allow Jenkins user to ssh into localhost
ssh-keygen -f ~/.ssh/id_rsa -N ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh-keyscan localhost >> ~/.ssh/known_hosts
ssh-keyscan 127.0.0.1 >> ~/.ssh/known_hosts
- shell: |
#!/bin/bash -xe
export PYTHONUNBUFFERED=true
export DEVSTACK_GATE_NEUTRON=1
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
- tox:
envlist: functional
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-{name}-ansible-{scenario}-{ostype}{job-suffix}'
node: '{ostype}'
wrappers:
- build-timeout:
timeout: 60
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep
- install-distro-packages
- shell: |
# Allow Jenkins user to ssh into localhost
ssh-keygen -f ~/.ssh/id_rsa -N ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh-keyscan localhost >> ~/.ssh/known_hosts
ssh-keyscan 127.0.0.1 >> ~/.ssh/known_hosts
- shell: |
# Many of the Ansible roles have a tox environment
# called 'functional', so we implement a mapping
# of the scenario 'func' to 'functional' so reduce
# the need for code churn in those repositories
# immediately.
if [ "{scenario}" == "func" ]; then
/usr/local/jenkins/slave_scripts/run-tox.sh functional
else
/usr/local/jenkins/slave_scripts/run-tox.sh {scenario}
fi
publishers:
- console-log
- job-group:
name: 'ansible-role-jobs'
jobs:
- 'gate-{name}-docs'
- 'gate-{name}-linters'
- '{pipeline}-{name}-ansible-{scenario}-{ostype}{job-suffix}':
job-suffix: '-nv'
ostype:
- centos-7
- ubuntu-trusty
- ubuntu-xenial
pipeline: gate
scenario: func
- '{pipeline}-{name}-ansible-{scenario}-{ostype}{job-suffix}':
job-suffix: ''
ostype:
- centos-7
- ubuntu-trusty
- ubuntu-xenial
pipeline: gate
scenario: func
- '{name}-announce-release'
- job-group:
name: 'ansible-role-dsvm-jobs'
jobs:
- 'gate-{name}-docs'
- 'gate-{name}-linters'
- '{pipeline}-{name}-dsvm-ansible-func-{ostype}{job-suffix}':
job-suffix: '-nv'
branch-override: default
ostype:
- centos-7
- ubuntu-trusty
- ubuntu-xenial
pipeline: gate
- '{pipeline}-{name}-dsvm-ansible-func-{ostype}{job-suffix}':
job-suffix: ''
branch-override: default
ostype:
- centos-7
- ubuntu-trusty
- ubuntu-xenial
pipeline: gate
- '{name}-announce-release'