
It would be useful to test our rename playbook against gitea and gerrit when we make changes to these related playbooks, roles, and docker images. To do this we need to converge our test and production setups for gerrit a bit more. We create an openstack-project-creator account in the test gerrit to match prod and we have rename_repos.yaml talk to localhost for gerrit ssh commands. With that done we can run the rename_repos.yaml playbook from test-gitea.yaml and test-gerrit.yaml to help ensure the playbook functions as expected against these services. Co-Authored-By: Ian Wienand <iwienand@redhat.com> Change-Id: I49ffaf86828e87705da303f40ad4a86be030c709
295 lines
10 KiB
YAML
295 lines
10 KiB
YAML
- hosts: "review"
|
|
tasks:
|
|
|
|
- name: Wait for Gerrit to be up
|
|
uri:
|
|
url: http://localhost:8081/a/accounts/admin/sshkeys
|
|
method: GET
|
|
user: admin
|
|
password: secret
|
|
register: result
|
|
until: result.status == 200 and not result.redirected
|
|
delay: 1
|
|
retries: 120
|
|
|
|
- name: Create openstack-project-creator user
|
|
uri:
|
|
url: http://localhost:8081/a/accounts/openstack-project-creator
|
|
method: PUT
|
|
user: admin
|
|
password: secret
|
|
body_format: json
|
|
body:
|
|
username: 'openstack-project-creator'
|
|
name: 'Project Creator'
|
|
email: 'project.creator@example.com'
|
|
http_password: 'secret'
|
|
groups:
|
|
- Administrators
|
|
status_code: 201
|
|
|
|
- name: Create CI group
|
|
uri:
|
|
url: 'http://localhost:8081/a/groups/CI-tools'
|
|
method: PUT
|
|
user: admin
|
|
password: secret
|
|
body_format: json
|
|
body:
|
|
description: 'Continuous Integration Tools'
|
|
status_code: 201
|
|
|
|
- name: Create Zuul user
|
|
uri:
|
|
url: http://localhost:8081/a/accounts/zuul
|
|
method: PUT
|
|
user: admin
|
|
password: secret
|
|
body_format: json
|
|
body:
|
|
name: 'Zuul'
|
|
email: 'zuul@example.com'
|
|
http_password: 'secret'
|
|
status_code: 201
|
|
|
|
- name: Add Zuul to group
|
|
uri:
|
|
url: 'http://localhost:8081/a/groups/CI-tools/members/zuul'
|
|
method: PUT
|
|
user: admin
|
|
password: secret
|
|
status_code: 201
|
|
|
|
- name: Get group UUID
|
|
uri:
|
|
url: 'http://localhost:8081/a/groups/CI-tools'
|
|
method: GET
|
|
user: admin
|
|
password: secret
|
|
status_code: 200
|
|
return_content: yes
|
|
register: group_raw
|
|
|
|
- name: Debug serialized json
|
|
debug:
|
|
var: group_raw
|
|
|
|
- name: Deserialize returned data to internal variable.
|
|
set_fact:
|
|
# The first 4 bytes of the returned data are )]}' which is
|
|
# invalid json.
|
|
group_json: '{{ group_raw.content | regex_replace("^....", "") | from_json }}'
|
|
|
|
- name: Debug deserialized json
|
|
debug:
|
|
var: group_json
|
|
|
|
- name: Setup key and initial gerrit config
|
|
shell:
|
|
executable: /bin/bash
|
|
cmd: |
|
|
set -xe
|
|
|
|
ssh-keygen -t ed25519 -f /root/.ssh/id_25519 -P ""
|
|
curl -X POST --user "admin:secret" -H "Content-Type: text/plain" -d@/root/.ssh/id_25519.pub http://localhost:8081/a/accounts/admin/sshkeys
|
|
ssh-keyscan -p 29418 localhost >> /root/.ssh/known_hosts
|
|
|
|
git config --global user.name "Admin"
|
|
git config --global user.email "admin@example.com"
|
|
|
|
git clone http://admin:secret@localhost:8081/a/All-Projects
|
|
|
|
pushd All-Projects
|
|
|
|
echo "{{ group_json.id }} CI-tools" >> groups # noqa 203
|
|
git commit -a -m "Add CI-tools group"
|
|
git push origin HEAD:refs/meta/config
|
|
|
|
cat >> project.config << EOF
|
|
[label "Verified"]
|
|
function = MaxWithBlock
|
|
value = -2 Fails
|
|
value = -1 Doesn't seem to work
|
|
value = 0 No score
|
|
value = +1 Works for me
|
|
value = +2 Verified
|
|
[access "refs/heads/*"]
|
|
label-Verified = -2..+2 group CI-tools
|
|
EOF
|
|
git commit -a -m 'Update All-Project configuration'
|
|
git push origin HEAD:refs/meta/config
|
|
|
|
popd
|
|
|
|
# openstack-project-creator bootstrapping
|
|
curl -X POST --user "openstack-project-creator:secret" -H "Content-Type: text/plain" -d@/home/gerrit2/review_site/etc/ssh_project_rsa_key.pub http://localhost:8081/a/accounts/openstack-project-creator/sshkeys
|
|
ssh-keyscan -p 29418 localhost >> /home/gerrit2/.ssh/known_hosts
|
|
|
|
# This is helpful on a held node when you're trying to fix/enhance
|
|
# the Zuul summary plugin. You can build it locally, scp the new
|
|
# .jar to /tmp and run this to deploy your changes.
|
|
- name: Create summary plugin helper script
|
|
shell:
|
|
executable: /bin/bash
|
|
cmd: |
|
|
set -xe
|
|
|
|
cat > /root/deploy-zuul-results-summary.sh << EOF
|
|
#!/bin/bash
|
|
echo "Copying plugin"
|
|
docker cp /tmp/zuul-results-summary.jar \
|
|
gerrit-compose_gerrit_1:/var/gerrit/plugins/
|
|
echo "Reloading"
|
|
ssh -i /root/.ssh/id_25519 -p 29418 admin@localhost \
|
|
gerrit plugin reload zuul-results-summary
|
|
echo "Done"
|
|
EOF
|
|
|
|
chmod a+x /root/deploy-zuul-results-summary.sh
|
|
|
|
- name: Create temp dir for project creation
|
|
shell: mktemp -d
|
|
register: project_tmp
|
|
|
|
- name: Create project project in Gerrit
|
|
uri:
|
|
url: http://localhost:8081/a/projects/y%2Ftest-project
|
|
method: PUT
|
|
user: admin
|
|
password: secret
|
|
status_code: 201
|
|
|
|
- name: Create initial commit and change in test-project
|
|
shell:
|
|
executable: /bin/sh
|
|
chdir: "{{ project_tmp.stdout }}"
|
|
cmd: |
|
|
set -x
|
|
|
|
git init .
|
|
cat >.gitreview <<EOF
|
|
[gerrit]
|
|
host=localhost
|
|
port=29418
|
|
project=y/test-project
|
|
EOF
|
|
git add .gitreview
|
|
git commit -m "Initial commit"
|
|
git remote add gerrit http://admin:secret@localhost:8081/y/test-project
|
|
git push -f --set-upstream gerrit +HEAD:master
|
|
|
|
curl -Lo .git/hooks/commit-msg http://localhost:8081/tools/hooks/commit-msg
|
|
chmod u+x .git/hooks/commit-msg
|
|
|
|
cat >file-1.txt <<EOF
|
|
Hello, this is a file
|
|
EOF
|
|
git add file-1.txt
|
|
git commit -m "Sample review 1"
|
|
git push gerrit HEAD:refs/for/master
|
|
|
|
cat >file-2.txt <<EOF
|
|
Hello, this is a file
|
|
EOF
|
|
git add file-2.txt
|
|
git commit -m "Sample review 2"
|
|
git push gerrit HEAD:refs/for/master
|
|
|
|
cat >file-3.txt <<EOF
|
|
Hello, this is a file
|
|
EOF
|
|
git add file-3.txt
|
|
git commit -m "Sample review 3"
|
|
git push gerrit HEAD:refs/for/master
|
|
|
|
- name: Post a sample failure review
|
|
uri:
|
|
url: 'http://localhost:8081/a/changes/{{ item }}/revisions/1/review'
|
|
method: POST
|
|
user: zuul
|
|
password: secret
|
|
body_format: json
|
|
body:
|
|
tag: 'autogenerated:zuul:check'
|
|
labels:
|
|
'Verified': -2
|
|
message: |
|
|
Build failed (check pipeline). For information on how to proceed, see
|
|
https://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing
|
|
|
|
|
|
- test-success https://zuul.opendev.org/t/openstack/build/00b1ce7d5d994339a54dd8142a6813a6 : SUCCESS in {{ range(1, 59) | random }}m 22s
|
|
- test-failure https://zuul.opendev.org/t/openstack/build/00b1ce7d5d994339a54dd8142a6813a6 : FAILURE in {{ range(1, 59) | random }}m 22s
|
|
- test-retry-limit https://zuul.opendev.org/t/openstack/build/20efbb1b6983453884103e9628a70942 : RETRY_LIMIT in {{ range(1, 59) | random }}m 24s
|
|
- test-skipped https://zuul.opendev.org/t/openstack/build/None : SKIPPED
|
|
- test-aborted https://zuul.opendev.org/t/openstack/build/bc4a4559645b4088a9f8586c043c4764 : ABORTED in {{ range(1, 59) | random }}m 19s
|
|
- test-merger-failure https://zuul.opendev.org/t/openstack/build/cb469750b250430b95a02697931d6030 : MERGER_FAILURE in {{ range(1, 59) | random }}m 14s
|
|
- test-node-failure https://zuul.opendev.org/t/openstack/build/0897fafc9652480794652fc49e3c9baf : NODE_FAILURE in {{ range(1, 59) | random }}m 48s
|
|
- test-timed-out https://zuul.opendev.org/t/openstack/build/57c4eb5174554cbfbb06fd9118eb1ae4 : TIMED_OUT in {{ range(1, 59) | random }}m 37s (non-voting)
|
|
- test-post-failure https://zuul.opendev.org/t/openstack/build/30afb96669fe4f19b6215e79615ecd90 : POST_FAILURE in {{ range(1, 59) | random }}m 58s
|
|
- test-config-error https://zuul.opendev.org/t/openstack/build/76c69b8062284d959a85b55bc460f822 : CONFIG_ERROR in {{ range(1, 59) | random }}m 27s
|
|
- test-disk-full https://zuul.opendev.org/t/openstack/build/0897fafc9743580794652fc49e3c9baf : DISK_FULL in {{ range(1, 59) | random }}m 48s
|
|
- test-error https://zuul.opendev.org/t/openstack/build/0897bedc9743580794652fc49e3c1234 : ERROR This is an error message in {{ range(1, 59) | random }}m 32s
|
|
loop:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
|
|
- name: Post a sample good review in another pipeline
|
|
uri:
|
|
url: 'http://localhost:8081/a/changes/{{ item }}/revisions/1/review'
|
|
method: POST
|
|
user: zuul
|
|
password: secret
|
|
body_format: json
|
|
body:
|
|
tag: 'autogenerated:zuul:check-secondary'
|
|
message: |
|
|
Build succeeded (Secondary pipeline).
|
|
|
|
|
|
- test-second-ci https://zuul.opendev.org/t/openstack/build/f9c14856bf4e485089ca8fc8f00f324b : SUCCESS in {{ range(1, 59) | random}}m 11s
|
|
loop:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
|
|
- name: Run selenium container
|
|
include_role:
|
|
name: run-selenium
|
|
|
|
- name: Run rename playbook
|
|
import_playbook: rename_repos.yaml
|
|
vars:
|
|
repolist: /home/zuul/src/opendev.org/opendev/system-config/playbooks/zuul/test_gerrit_renames.yaml
|
|
|
|
- hosts: "review"
|
|
tasks:
|
|
- name: Get group UUID of renamed group
|
|
uri:
|
|
url: 'http://localhost:8081/a/groups/CI-tools-updated'
|
|
method: GET
|
|
user: admin
|
|
password: secret
|
|
status_code: 200
|
|
return_content: yes
|
|
register: group_renamed_raw
|
|
|
|
- name: Debug serialized json
|
|
debug:
|
|
var: group_renamed_raw
|
|
|
|
- name: Deserialize returned data to internal variable.
|
|
set_fact:
|
|
# The first 4 bytes of the returned data are )]}' which is
|
|
# invalid json.
|
|
group_renamed_json: '{{ group_renamed_raw.content | regex_replace("^....", "") | from_json }}'
|
|
|
|
- name: Debug deserialized json
|
|
debug:
|
|
var: group_renamed_json
|
|
|
|
- name: Check renamed UUID is consistent
|
|
assert:
|
|
that: group_renamed_json['id'] == group_json['id']
|