diff --git a/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py b/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py index 119dcfb314..7385c78c2d 100755 --- a/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py +++ b/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py @@ -197,6 +197,9 @@ class Gitea(object): # https://github.com/go-gitea/gitea/pull/7493 self.make_gitea_project(project) if create or self.always_update: + if isinstance(self.always_update, list + ) and project not in self.always_update: + continue futures.append(settings_thread_pool.submit( self.update_gitea_project_settings, project)) @@ -272,7 +275,7 @@ def ansible_main(): url=dict(required=True), password=dict(required=True, no_log=True), projects=dict(required=True, type='list'), - always_update=dict(type='bool', default=True), + always_update=dict(default=True), ) ) diff --git a/playbooks/sync-gitea-projects.yaml b/playbooks/sync-gitea-projects.yaml index bf2e00c703..30c65ee089 100644 --- a/playbooks/sync-gitea-projects.yaml +++ b/playbooks/sync-gitea-projects.yaml @@ -1,16 +1,9 @@ -- hosts: "localhost:!disabled" - name: "sync-gitea-projects: Collect the project-config ref" - strategy: free - connection: local - tasks: - - name: Clone project-config repo - git: - repo: https://opendev.org/openstack/project-config - dest: /opt/project-config - force: yes - +# Note: Override the gitea_always_update rolevar to either true (update all) or +# a list of specific projects if you want metadata applied for these, otherwise +# the default (false) does not set any project metadata. We intentionally leave +# it unset here so that we can test it in the system-config-run-gitea job after +# renaming a project, or to be able to set it from the command line. - hosts: "gitea:!disabled" name: "Create repos on gitea servers" roles: - role: gitea-git-repos - gitea_always_update: true diff --git a/playbooks/test-gitea.yaml b/playbooks/test-gitea.yaml index 990794d16d..d47b9fe534 100644 --- a/playbooks/test-gitea.yaml +++ b/playbooks/test-gitea.yaml @@ -31,6 +31,33 @@ vars: repolist: /home/zuul/src/opendev.org/opendev/system-config/playbooks/zuul/test_gitea_renames.yaml +- hosts: "bridge.openstack.org:!disabled" + tasks: + - name: Update DIB project name in projects.yaml and switch to SB + lineinfile: + path: "{{ project_config_src }}/gerrit/projects.yaml" + regexp: "^- project: openstack/diskimage-builder" + line: "- project: opendev/disk-image-builder\n use-storyboard: true" + +- name: Run filtered sync playbook + import_playbook: sync-gitea-projects.yaml + vars: + gitea_always_update: ["opendev/disk-image-builder"] + +- hosts: "gitea" + tasks: + - name: Test opendev/disk-image-builder exists in gitea + uri: + url: "https://localhost:3000/opendev/disk-image-builder" + validate_certs: false + status_code: 200 + return_content: yes + register: dib_content + - name: Assert DIB issues URL was updated + fail: + msg: DIB issues URL was not updated + when: '"https://storyboard.openstack.org/#!/project/opendev/disk-image-builder" not in dib_content.content' + # This is conveniently left here so that it can be uncommented in order to # autohold the system-config-run-gitea job in zuul. #- hosts: bridge.openstack.org