441816ac31
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
142 lines
3.9 KiB
YAML
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'
|