Blame tests/configure-gerrit.yml

8e01783
- name: Install the gerritforge repo
8e01783
  dnf:
8e01783
    name: 'https://gerritforge.com/gerritforge-repo-1-2.noarch.rpm'
8e01783
    state: present
8e01783
    disable_gpg_check: yes
8e01783
  become: true
8e01783
8e01783
- name: Install gerrit and git review
8e01783
  package:
8e01783
    name:
8e01783
      - initscripts
8e01783
      - gerrit-3.3.2-1
8e01783
      - git-review
8e01783
    state: present
8e01783
  become: true
8e01783
8e01783
- name: Initialize Gerrit
8e01783
  block:
8e01783
    - command: java -jar /var/gerrit/bin/gerrit.war init --batch --install-all-plugins -d /var/gerrit
8e01783
      become: true
8e01783
    - command: java -jar /var/gerrit/bin/gerrit.war reindex -d /var/gerrit
8e01783
      become: true
8e01783
    - command: git config -f /var/gerrit/etc/gerrit.config gerrit.canonicalWebUrl "http://localhost:8081"
8e01783
      become: true
8e01783
    - command: git config -f /var/gerrit/etc/gerrit.config httpd.listenUrl "http://*:8081"
8e01783
      become: true
8e01783
    - shell: /var/gerrit/bin/gerrit.sh run
8e01783
      become: true
8e01783
      async: 86400
8e01783
      poll: 0
8e01783
8e01783
- name: Generate admin SSH key for Gerrit
8e01783
  command: ssh-keygen -f /tmp/admin -N ''
8e01783
  args:
8e01783
    creates: /tmp/admin.pub
8e01783
8e01783
- name: Generate Zuul SSH key for Gerrit
8e01783
  command: ssh-keygen -f /tmp/zuul -N '' -t rsa -m PEM
8e01783
  args:
8e01783
    creates: /tmp/zuul.pub
8e01783
8e01783
- name: Wait for Gerrit first login screen
8e01783
  uri:
8e01783
    url: http://localhost:8081/a/accounts/self/sshkeys
8e01783
    method: GET
8e01783
    user: admin
8e01783
    password: secret
8e01783
  register: first_login
8e01783
  until: first_login.status == 200
8e01783
  retries: 60
8e01783
  delay: 1
8e01783
  ignore_errors: true
8e01783
8e01783
- name: Add admin SSH key to Gerrit
8e01783
  uri:
8e01783
    url: http://localhost:8081/a/accounts/self/sshkeys
8e01783
    method: POST
8e01783
    user: admin
8e01783
    password: secret
8e01783
    body: "{{ lookup('file', '/tmp/admin.pub') }}"
8e01783
    status_code: 201
8e01783
    headers:
8e01783
      Content-Type: text/plain
8e01783
8e01783
- name: Create temp dir for Gerrit config update
8e01783
  shell: mktemp -d
8e01783
  register: gerrit_tmp
8e01783
8e01783
- name: Check out All-Projects config
8e01783
  git:
8e01783
    repo: ssh://localhost:29418/All-Projects/
8e01783
    ssh_opts: "-o StrictHostKeyChecking=no -i /tmp/admin -l admin"
8e01783
    dest: "{{ gerrit_tmp.stdout }}/All-Projects"
8e01783
    refspec: '+refs/meta/config:refs/meta/config'
8e01783
    version: refs/meta/config
8e01783
8e01783
- name: Copy new All-Projects config into place
8e01783
  copy:
8e01783
    src: "gerrit-project.config"
8e01783
    dest: "{{ gerrit_tmp.stdout }}/All-Projects/project.config"
8e01783
- name: Update All-Projects config in Gerrit
8e01783
  shell: |
8e01783
    git config user.email 'admin@example.com'
8e01783
    git commit -a -m 'update config'
8e01783
    git push http://admin:secret@localhost:8081/All-Projects +HEAD:refs/meta/config
8e01783
  args:
8e01783
    chdir: "{{ gerrit_tmp.stdout }}/All-Projects"
8e01783
    warn: false
8e01783
8e01783
- name: Check if zuul user exists
8e01783
  uri:
8e01783
    url: http://localhost:8081/accounts/zuul
8e01783
    status_code: 200, 404
8e01783
  register: zuul_user_check
8e01783
- name: Create zuul Gerrit account
8e01783
  when: zuul_user_check.status==404
8e01783
  uri:
8e01783
    url: http://localhost:8081/a/accounts/zuul
8e01783
    method: PUT
8e01783
    user: admin
8e01783
    password: secret
8e01783
    status_code: 201
8e01783
    body_format: json
8e01783
    body:
8e01783
      name: Zuul
8e01783
      ssh_key: "{{ lookup('file', '/tmp/zuul.pub') }}"
8e01783
      http_password: secret
8e01783
      groups:
8e01783
        - "Service Users"