From 2694dd2bb22f994d04a89d40dc67b7c6b7cc2f0d Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 24 Sep 2024 14:18:12 +0100 Subject: [PATCH] zuul: Move legacy jobs to project These jobs need to be rewritten for zuulv3, but for now get them out of the openstack-zuul-jobs repo. Change-Id: I3381b146c9e5ea3fe66883508a854617b4578286 Signed-off-by: Stephen Finucane --- .zuul.yaml | 19 +++++- .../monasca-thresh-localrepo-upload/post.yaml | 21 +++++++ .../monasca-thresh-localrepo-upload/run.yaml | 61 +++++++++++++++++++ .../monasca-thresh-maven-build/run.yaml | 61 +++++++++++++++++++ 4 files changed, 159 insertions(+), 3 deletions(-) create mode 100644 playbooks/legacy/monasca-thresh-localrepo-upload/post.yaml create mode 100644 playbooks/legacy/monasca-thresh-localrepo-upload/run.yaml create mode 100644 playbooks/legacy/monasca-thresh-maven-build/run.yaml diff --git a/.zuul.yaml b/.zuul.yaml index e19ebbb..f2e4d2c 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,3 +1,16 @@ +- job: + name: monasca-thresh-localrepo-upload + parent: legacy-publish-openstack-artifacts + run: playbooks/legacy/monasca-thresh-localrepo-upload/run.yaml + post-run: playbooks/legacy/monasca-thresh-localrepo-upload/post.yaml + timeout: 1800 + +- job: + name: monasca-thresh-maven-build + parent: legacy-base + run: playbooks/legacy/monasca-thresh-maven-build/run.yaml + timeout: 1800 + - project: check: jobs: @@ -7,14 +20,14 @@ voting: false - monasca-tempest-java-influxdb: voting: false - - legacy-monasca-thresh-maven-build + - monasca-thresh-maven-build # - build-monasca-docker-image gate: jobs: - - legacy-monasca-thresh-maven-build + - monasca-thresh-maven-build post: jobs: - - legacy-monasca-thresh-localrepo-upload + - monasca-thresh-localrepo-upload # - publish-monasca-thresh-docker-image # periodic: # jobs: diff --git a/playbooks/legacy/monasca-thresh-localrepo-upload/post.yaml b/playbooks/legacy/monasca-thresh-localrepo-upload/post.yaml new file mode 100644 index 0000000..e4888f2 --- /dev/null +++ b/playbooks/legacy/monasca-thresh-localrepo-upload/post.yaml @@ -0,0 +1,21 @@ +- hosts: primary + tasks: + + - name: Ensure artifacts directory exists + file: + path: '{{ zuul.executor.work_root }}/artifacts' + state: directory + delegate_to: localhost + + - name: Copy files from {{ ansible_user_dir }}/workspace/ on node + synchronize: + src: '{{ ansible_user_dir }}/workspace/' + dest: '{{ zuul.executor.work_root }}/artifacts/$ZUUL_SHORT_PROJECT_NAME' + mode: pull + copy_links: true + verify_host: true + rsync_opts: + - --include=/target/$ZUUL_SHORT_PROJECT_NAME-*.jar + - --include=*/ + - --exclude=* + - --prune-empty-dirs diff --git a/playbooks/legacy/monasca-thresh-localrepo-upload/run.yaml b/playbooks/legacy/monasca-thresh-localrepo-upload/run.yaml new file mode 100644 index 0000000..855b853 --- /dev/null +++ b/playbooks/legacy/monasca-thresh-localrepo-upload/run.yaml @@ -0,0 +1,61 @@ +- hosts: all + name: Autoconverted job legacy-monasca-thresh-localrepo-upload from old job monasca-thresh-localrepo-upload-ubuntu-xenial + roles: + - bindep + + 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 \ + https://opendev.org $ZUUL_PROJECT + executable: /bin/bash + 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 + /usr/local/jenkins/slave_scripts/version-properties.sh + source version.properties + mvn clean package -Dproject-version=$PROJECT_VER + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}' diff --git a/playbooks/legacy/monasca-thresh-maven-build/run.yaml b/playbooks/legacy/monasca-thresh-maven-build/run.yaml new file mode 100644 index 0000000..6ef3cbb --- /dev/null +++ b/playbooks/legacy/monasca-thresh-maven-build/run.yaml @@ -0,0 +1,61 @@ +- hosts: all + name: Autoconverted job legacy-monasca-thresh-maven-build from old job gate-monasca-thresh-maven-build-ubuntu-xenial + roles: + - bindep + + 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 \ + https://opendev.org $ZUUL_PROJECT + executable: /bin/bash + 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 + /usr/local/jenkins/slave_scripts/version-properties.sh + source version.properties + mvn clean package -B -Dproject-version=$PROJECT_VER + executable: /bin/bash + chdir: '{{ ansible_user_dir }}/workspace' + environment: '{{ zuul | zuul_legacy_vars }}'