From 9625385fe9e36177f2936d8c02cde2a2cc56f69c Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Tue, 26 Sep 2017 08:36:15 -0500 Subject: [PATCH] Add local file copying steps These are the things one does after running the script. Update the job to run the actual script we're running to generate the data the way we're running it. Change-Id: I62d75d561efbb290d2fccbabf4fabfbf705e6288 --- .zuul.yaml | 14 +++++++----- playbooks/zuul-migrate.yaml | 26 --------------------- playbooks/zuul-migrate/post.yaml | 26 +++++++++++++++++++++ playbooks/zuul-migrate/run.yaml | 10 ++++++++ tools/run-migration.sh | 39 +++++++++++++++++++++++++++++++- 5 files changed, 82 insertions(+), 33 deletions(-) delete mode 100644 playbooks/zuul-migrate.yaml create mode 100644 playbooks/zuul-migrate/post.yaml create mode 100644 playbooks/zuul-migrate/run.yaml diff --git a/.zuul.yaml b/.zuul.yaml index 2b4c49a5aa..1962611ae1 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -31,10 +31,12 @@ - job: name: zuul-migrate parent: unittests - run: playbooks/zuul-migrate + run: playbooks/zuul-migrate/run + post-run: playbooks/zuul-migrate/post # We're adding zuul to the required-projects so that we can also trigger # this from project-config changes required-projects: + - openstack-infra/openstack-zuul-jobs - openstack-infra/project-config - name: openstack-infra/zuul override-branch: feature/zuulv3 @@ -47,22 +49,22 @@ success-url: 'html/feature/zuulv3/' irrelevant-files: - zuul/cmd/migrate.py - - playbooks/zuul-migrate.yaml + - playbooks/zuul-migrate/.* - tox-cover: irrelevant-files: - zuul/cmd/migrate.py - - playbooks/zuul-migrate.yaml + - playbooks/zuul-migrate/.* voting: false - tox-pep8 - tox-py35: irrelevant-files: - zuul/cmd/migrate.py - - playbooks/zuul-migrate.yaml + - playbooks/zuul-migrate/.* - zuul-stream-functional - zuul-migrate: files: - zuul/cmd/migrate.py - - playbooks/zuul-migrate.yaml + - playbooks/zuul-migrate/.* gate: jobs: - build-openstack-infra-sphinx-docs: @@ -71,7 +73,7 @@ - tox-py35: irrelevant-files: - zuul/cmd/migrate.py - - playbooks/zuul-migrate.yaml + - playbooks/zuul-migrate/.* - zuul-stream-functional post: jobs: diff --git a/playbooks/zuul-migrate.yaml b/playbooks/zuul-migrate.yaml deleted file mode 100644 index 2001982f57..0000000000 --- a/playbooks/zuul-migrate.yaml +++ /dev/null @@ -1,26 +0,0 @@ -- hosts: all - tasks: - - - name: Install migration dependencies - command: "python3 -m pip install --user src/git.openstack.org/openstack-infra/zuul[migrate]" - - - name: Migrate the data - command: "python3 ../zuul/zuul/cmd/migrate.py zuul/layout.yaml jenkins/jobs nodepool/nodepool.yaml . --mapping=zuul/mapping.yaml -v" - args: - chdir: src/git.openstack.org/openstack-infra/project-config - - - name: Collect generated job config - synchronize: - dest: "{{ zuul.executor.log_root }}" - mode: pull - src: "src/git.openstack.org/openstack-infra/project-config/zuul.d" - verify_host: true - no_log: true - - - name: Collect generated playbooks - synchronize: - dest: "{{ zuul.executor.log_root }}/playbooks" - mode: pull - src: "src/git.openstack.org/openstack-infra/project-config/playbooks/legacy" - verify_host: true - no_log: true diff --git a/playbooks/zuul-migrate/post.yaml b/playbooks/zuul-migrate/post.yaml new file mode 100644 index 0000000000..2647b7d18d --- /dev/null +++ b/playbooks/zuul-migrate/post.yaml @@ -0,0 +1,26 @@ +- hosts: all + tasks: + + - name: Collect openstack-zuul-jobs generated job config + synchronize: + dest: "{{ zuul.executor.log_root }}/openstack-zuul-jobs" + mode: pull + src: "src/git.openstack.org/openstack-infra/openstack-zuul-jobs/zuul.d" + verify_host: true + no_log: true + + - name: Collect project generated job config + synchronize: + dest: "{{ zuul.executor.log_root }}/openstack-zuul-jobs" + mode: pull + src: "src/git.openstack.org/openstack-infra/project-config/zuul.d" + verify_host: true + no_log: true + + - name: Collect generated playbooks + synchronize: + dest: "{{ zuul.executor.log_root }}/playbooks" + mode: pull + src: "src/git.openstack.org/openstack-infra/openstack-zuul-jobs/playbooks/legacy" + verify_host: true + no_log: true diff --git a/playbooks/zuul-migrate/run.yaml b/playbooks/zuul-migrate/run.yaml new file mode 100644 index 0000000000..2ba81d039e --- /dev/null +++ b/playbooks/zuul-migrate/run.yaml @@ -0,0 +1,10 @@ +- hosts: all + tasks: + + - name: Install migration dependencies + command: "python3 -m pip install --user src/git.openstack.org/openstack-infra/zuul[migrate]" + + - name: Migrate the data + command: tools/run-migration.sh -v --final + args: + chdir: src/git.openstack.org/openstack-infra/zuul diff --git a/tools/run-migration.sh b/tools/run-migration.sh index 6c7e250006..be297f44f1 100755 --- a/tools/run-migration.sh +++ b/tools/run-migration.sh @@ -17,7 +17,44 @@ # Stupid script I'm using to test migration script locally # Assumes project-config is adjacent to zuul and has the mapping file +OPTS=$(getopt -o v --long final -n $0 -- "$@") +if [ $? != 0 ] ; then + echo "Failed parsing options." >&2 + exit 1 +fi +eval set -- "$OPTS" +set -ex + +FINAL=0 +VERBOSE="" + +while true; do + case "$1" in + --final) + FINAL=1 + shift + ;; + -v) + VERBOSE=-v + shift + ;; + --) + shift + break + ;; + esac +done + BASE_DIR=$(cd $(dirname $0)/../..; pwd) cd $BASE_DIR/project-config +if [[ $FINAL ]] ; then + git reset --hard +fi python3 $BASE_DIR/zuul/zuul/cmd/migrate.py --mapping=zuul/mapping.yaml \ - zuul/layout.yaml jenkins/jobs nodepool/nodepool.yaml . + zuul/layout.yaml jenkins/jobs nodepool/nodepool.yaml . $VERBOSE +if [[ $FINAL ]] ; then + find ../openstack-zuul-jobs/playbooks/legacy -maxdepth 1 -mindepth 1 \ + -type d | xargs rm -rf + mv zuul.d/zuul-legacy-* ../openstack-zuul-jobs/zuul.d/ + mv playbooks/legacy/* ../openstack-zuul-jobs/playbooks/legacy/ +fi