Convert golang tests to Zuul v3 native jobs

Convert the golang unit and fmt tests to Zuul v3 native jobs; use it in
the project-template.

Remove the legacy jobs, they were only used via the template.

Change-Id: Ib25ded1ef27d0a8e570d30f19e8cf87930e4e300
This commit is contained in:
Andreas Jaeger 2018-02-18 20:17:37 +01:00
parent 4df032a1ee
commit 2c1975f35c
7 changed files with 56 additions and 149 deletions

View File

@ -0,0 +1,3 @@
- hosts: all
roles:
- revoke-sudo

11
playbooks/golang/run.yaml Normal file
View File

@ -0,0 +1,11 @@
- hosts: all
tasks:
- name: Run golang tests
shell:
chdir: '{{ zuul.project.src_dir }}'
executable: /bin/bash
cmd: |
set -e
set -x
make env {{ golang_target }}

View File

@ -1,69 +0,0 @@
- hosts: all
name: Autoconverted job legacy-golang-fmt from old job gate-{name}-golang-fmt-ubuntu-xenial
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
CLONEMAP=`mktemp`
function cleanup {
# In cases where zuul-cloner is aborted during a git
# clone operation, git will remove the git work tree in
# its cleanup. The work tree in these jobs is the
# workspace directory, which means that subsequent
# jenkins post-build actions can not run because the
# workspace has been removed.
# To reduce the likelihood of this having an impact,
# recreate the workspace directory if needed
mkdir -p $WORKSPACE
rm -f $CLONEMAP
}
trap cleanup EXIT
cat > $CLONEMAP << EOF
clonemap:
- name: $ZUUL_PROJECT
dest: .
EOF
/usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
git://git.openstack.org $ZUUL_PROJECT
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
if [ -x tools/test-setup.sh ] ; then
tools/test-setup.sh
fi
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -x
sudo rm -f /etc/sudoers.d/zuul
# Prove that general sudo access is actually revoked
! sudo -n true
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
make env fmt
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -1,69 +0,0 @@
- hosts: all
name: Autoconverted job legacy-golang-unit from old job gate-{name}-golang-unit-ubuntu-xenial
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
set -e
set -x
CLONEMAP=`mktemp`
function cleanup {
# In cases where zuul-cloner is aborted during a git
# clone operation, git will remove the git work tree in
# its cleanup. The work tree in these jobs is the
# workspace directory, which means that subsequent
# jenkins post-build actions can not run because the
# workspace has been removed.
# To reduce the likelihood of this having an impact,
# recreate the workspace directory if needed
mkdir -p $WORKSPACE
rm -f $CLONEMAP
}
trap cleanup EXIT
cat > $CLONEMAP << EOF
clonemap:
- name: $ZUUL_PROJECT
dest: .
EOF
/usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
git://git.openstack.org $ZUUL_PROJECT
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
if [ -x tools/test-setup.sh ] ; then
tools/test-setup.sh
fi
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -x
sudo rm -f /etc/sudoers.d/zuul
# Prove that general sudo access is actually revoked
! sudo -n true
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'
- shell:
cmd: |
set -e
set -x
make env test
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -1027,3 +1027,32 @@
- job:
name: ansible-role-functional-ubuntu-xenial
parent: ansible-role-functional-base
- job:
name: golang-base
parent: unittests
abstract: true
description: |
Base job for golang tests.
pre-run: playbooks/golang/pre.yaml
run: playbooks/golang/run.yaml
- job:
name: golang-fmt
parent: golang-base
description: |
Run golang fmt test.
This uses the make target ``fmt``.
vars:
golang_target: "fmt"
- job:
name: golang-unit
parent: golang-base
description: |
Run golang unit test.
This uses the make target ``test``.
vars:
golang_target: "test"

View File

@ -1021,3 +1021,16 @@
jobs:
- tempest-full-py3:
branches: ^(?!(stable/(newton|ocata|pike)|driverfixes)).*$
- project-template:
name: golang-jobs
description: |
Run golang tests in check and gate.
check:
jobs:
- golang-fmt
- golang-unit
gate:
jobs:
- golang-fmt
- golang-unit

View File

@ -27,17 +27,6 @@
jobs:
- legacy-fuel-ccp-validate
- project-template:
name: golang-jobs
check:
jobs:
- legacy-golang-fmt
- legacy-golang-unit
gate:
jobs:
- legacy-golang-fmt
- legacy-golang-unit
- project-template:
name: infra-logstash-filter-jobs
check: