project-config/jenkins/jobs/ansible-role-jobs.yaml

174 lines
4.8 KiB
YAML

- job-template:
name: 'gate-{name}-ansible-lint'
node: ubuntu-trusty
builders:
- zuul-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}{suffix}'
node: '{ostype}'
wrappers:
- build-timeout:
timeout: 100
- 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 PROJECTS="$ZUUL_PROJECT $PROJECTS"
export BRANCH_OVERRIDE={branch-override}
if [ "$BRANCH_OVERRIDE" != "default" ] ; then
export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
fi
function post_test_hook {{
$BASE/new/{name}/tests/hooks/post_test_hook.sh
}}
export -f post_test_hook
cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
./safe-devstack-vm-gate-wrap.sh
publishers:
- devstack-logs
- console-log
- job-template:
name: '{pipeline}-{name}-ansible-{scenario}-{ostype}{suffix}'
node: '{ostype}'
wrappers:
- build-timeout:
timeout: 60
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep-upper-constraints
- shell: |
if [[ "{name}" == *"openstack-ansible"* ]]; then
# EPEL must be enabled because some deps from bindep.txt are
# otherwise not available
if [[ -e /usr/bin/yum ]]; then
sudo yum-config-manager --enable epel
fi
fi
- install-distro-packages
- shell: |
if [[ "{name}" == *"openstack-ansible"* ]]; then
if [[ -e /usr/bin/yum ]]; then
sudo yum-config-manager --disable epel
fi
fi
- 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:
# Although these aren't devstack jobs, we want to capture logs
# similar in nature to devstack (Ansible logs, system logs, etc.)
- devstack-logs
- console-log
- job-group:
name: 'ansible-role-jobs'
node:
- ubuntu-trusty
- ubuntu-xenial
jobs:
- 'gate-{name}-docs-{node}'
- 'gate-{name}-linters-{node}'
- '{pipeline}-{name}-ansible-{scenario}-{ostype}{suffix}':
ostype:
- centos-7
- debian-jessie
- fedora-25
- ubuntu-trusty
- ubuntu-xenial
pipeline: gate
scenario: func
suffix:
- '-nv'
- ''
- '{name}-announce-release'
- job-group:
name: 'ansible-role-dsvm-jobs'
node:
- ubuntu-trusty
- ubuntu-xenial
jobs:
- 'gate-{name}-docs-{node}'
- 'gate-{name}-linters-{node}'
- '{pipeline}-{name}-dsvm-ansible-func-{ostype}{suffix}':
branch-override: default
ostype:
- centos-7
- ubuntu-trusty
- ubuntu-xenial
pipeline: gate
suffix:
- '-nv'
- ''
- '{name}-announce-release'
- job:
name: propose-openstack-ansible-update-osa-test-scripts
node: proposal
builders:
- proposal-slave-cleanup
- revoke-sudo
- link-logs
- net-info
- zuul-git-prep
- shell: /usr/local/jenkins/slave_scripts/propose_update.sh openstack-ansible-tests
publishers:
- console-log