From 2c1975f35c0597f87769c139f9500b7321fc20fa Mon Sep 17 00:00:00 2001 From: Andreas Jaeger Date: Sun, 18 Feb 2018 20:17:37 +0100 Subject: [PATCH] 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 --- playbooks/golang/pre.yaml | 3 + playbooks/golang/run.yaml | 11 ++++ playbooks/legacy/golang-fmt/run.yaml | 69 ----------------------- playbooks/legacy/golang-unit/run.yaml | 69 ----------------------- zuul.d/jobs.yaml | 29 ++++++++++ zuul.d/project-templates.yaml | 13 +++++ zuul.d/zuul-legacy-project-templates.yaml | 11 ---- 7 files changed, 56 insertions(+), 149 deletions(-) create mode 100644 playbooks/golang/pre.yaml create mode 100644 playbooks/golang/run.yaml delete mode 100644 playbooks/legacy/golang-fmt/run.yaml delete mode 100644 playbooks/legacy/golang-unit/run.yaml diff --git a/playbooks/golang/pre.yaml b/playbooks/golang/pre.yaml new file mode 100644 index 00000000..64720b8e --- /dev/null +++ b/playbooks/golang/pre.yaml @@ -0,0 +1,3 @@ +- hosts: all + roles: + - revoke-sudo diff --git a/playbooks/golang/run.yaml b/playbooks/golang/run.yaml new file mode 100644 index 00000000..256c35a8 --- /dev/null +++ b/playbooks/golang/run.yaml @@ -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 }} diff --git a/playbooks/legacy/golang-fmt/run.yaml b/playbooks/legacy/golang-fmt/run.yaml deleted file mode 100644 index a95879c1..00000000 --- a/playbooks/legacy/golang-fmt/run.yaml +++ /dev/null @@ -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 }}' diff --git a/playbooks/legacy/golang-unit/run.yaml b/playbooks/legacy/golang-unit/run.yaml deleted file mode 100644 index b5ba64e2..00000000 --- a/playbooks/legacy/golang-unit/run.yaml +++ /dev/null @@ -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 }}' diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 8b2d99d6..b730596b 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -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" diff --git a/zuul.d/project-templates.yaml b/zuul.d/project-templates.yaml index 07e1ed77..3bb316c0 100644 --- a/zuul.d/project-templates.yaml +++ b/zuul.d/project-templates.yaml @@ -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 diff --git a/zuul.d/zuul-legacy-project-templates.yaml b/zuul.d/zuul-legacy-project-templates.yaml index 60c4b334..acbeeb48 100644 --- a/zuul.d/zuul-legacy-project-templates.yaml +++ b/zuul.d/zuul-legacy-project-templates.yaml @@ -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: