From b571a29331737d37e58a16777eed262cde228c1d Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: Feb 19 2020 13:17:11 +0000 Subject: rpm-mock-build: enable additional repos exposure --- diff --git a/playbooks/rpm/mock-build.yaml b/playbooks/rpm/mock-build.yaml index 7c0b8a8..b8c3d5a 100644 --- a/playbooks/rpm/mock-build.yaml +++ b/playbooks/rpm/mock-build.yaml @@ -6,6 +6,19 @@ - "{{ zuul.project }}" srpms: [] + - name: Add additional repositories + become: yes + copy: + dest: "/etc/yum.repos.d/additional-repos.repo" + content: | + {% for repo in repos|default([]) %} + [{{ repo.name }}] + name={{ repo.name }} + enabled=1 + baseurl={{ repo.url }} + gpgcheck={{ repo.gpgcheck|default('0') }} + {% endfor %} + - include_role: name: ensure-mock diff --git a/roles/mock-build/defaults/main.yaml b/roles/mock-build/defaults/main.yaml index fb82235..bcfaf37 100644 --- a/roles/mock-build/defaults/main.yaml +++ b/roles/mock-build/defaults/main.yaml @@ -1 +1,2 @@ mock_config: fedora-rawhide-x86_64 +repos: [] diff --git a/roles/mock-build/tasks/main.yaml b/roles/mock-build/tasks/main.yaml index 46eff73..e916bb8 100644 --- a/roles/mock-build/tasks/main.yaml +++ b/roles/mock-build/tasks/main.yaml @@ -6,6 +6,11 @@ - name: Init the mock chroot command: mock {{ mock_opts }} --init +- name: Create additional repos baseurls for mock + set_fact: + repos_baseurls: > + {% for repo in repos|default([]) %} -a {{ repo.url }}{% endfor %} + - name: Create intermediary repos baseurls for mock set_fact: artifacts_baseurls: > @@ -15,8 +20,8 @@ - name: Build the RPM shell: > - mock {{ mock_opts }} {{ artifacts_baseurls|trim }} --postinstall - --chain {{ srpm }} + mock {{ mock_opts }} {{ artifacts_baseurls|trim }} {{ repos_baseurls|trim }} + --postinstall --chain {{ srpm }} - name: Sync chained repo in {{ ansible_user_dir }}/repo command: > diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index cd53df1..d6f1921 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -24,6 +24,13 @@ Using or not the version detected from the specfile. + .. zuul:jobvar:: repos + : default: [] + + A list of rpm repositories to be exposed on build + node and mock build root. eg. + {name: 'nightly', url: 'scheme://...', gpgcheck: 1} + provides: repo requires: repo run: playbooks/rpm/mock-build.yaml