From ac5148e13f098c65c53b451252b1bd8fe9928ddb Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: May 17 2021 10:44:35 +0000 Subject: [PATCH 1/2] rpminspect role: Some changes to enable usage with CentOS Stream - var to set the rpminspect data package - var to enable the use of an alternate koji command configuration file --- diff --git a/roles/rpminspect/defaults/main.yaml b/roles/rpminspect/defaults/main.yaml index b41f9a3..ce3df06 100644 --- a/roles/rpminspect/defaults/main.yaml +++ b/roles/rpminspect/defaults/main.yaml @@ -2,6 +2,9 @@ target: rawhide koji_cmd: koji rpminspect_cmd: rpminspect +rpminspect_data_pkg: rpminspect-data-fedora +# If set to true a valid koji client config must be stored in {{ ansible_user_dir }}/koji.conf +use_alternate_koji_config: false zuul_output_dir: "{{ ansible_user_dir }}/zuul-output" check_previous_build_enabled: false validate_cert: true diff --git a/roles/rpminspect/tasks/main.yaml b/roles/rpminspect/tasks/main.yaml index ae79180..db22e11 100644 --- a/roles/rpminspect/tasks/main.yaml +++ b/roles/rpminspect/tasks/main.yaml @@ -10,42 +10,47 @@ - name: Install system dependencies yum: - name: "{{ koji_cmd }}, rpminspect, librpminspect, rpminspect-data-fedora, clamav-update" + name: "{{ koji_cmd }}, rpminspect, librpminspect, {{ rpminspect_data_pkg }}, clamav-update" state: latest become: true +- name: Set alternate koji command configuration file + set_fact: + koji_config: "-c {{ ansible_user_dir }}/koji.conf" + when: use_alternate_koji_config + - name: Update ClamAV virus database command: "freshclam" become: true ignore_errors: yes - block: - - name: Discover package name from specfile name - shell: ls *.spec | sed 's/\.spec$//' - args: - chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" - register: get_package_name - - - set_fact: - package_name: "{{ get_package_name.stdout }}" - - - name: Get package last build on Koji - shell: "{{ koji_cmd }} latest-pkg --quiet {{ target }} {{ package_name }} | cut -d' ' -f1" - register: check_previous_build - - - set_fact: - previous_build: "{{ check_previous_build.stdout }}" - when: check_previous_build.stdout - - - name: Download latest build from Koji with rpminspect - command: "{{ rpminspect_cmd }} -v -w . -f {{ previous_build }}" - args: - chdir: "{{ workdir }}" - when: check_previous_build.stdout - - - set_fact: - previous_build_path: "{{ workdir }}/{{ previous_build }}" - when: check_previous_build.stdout + - name: Discover package name from specfile name + shell: ls *.spec | sed 's/\.spec$//' + args: + chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" + register: get_package_name + + - set_fact: + package_name: "{{ get_package_name.stdout }}" + + - name: Get package last build on Koji + shell: "{{ koji_cmd }} {{ koji_config|default('') }} latest-pkg --quiet {{ target }} {{ package_name }} | cut -d' ' -f1" + register: check_previous_build + + - set_fact: + previous_build: "{{ check_previous_build.stdout }}" + when: check_previous_build.stdout + + - name: Download latest build from Koji with rpminspect + command: "{{ rpminspect_cmd }} -v -w . -f {{ previous_build }}" + args: + chdir: "{{ workdir }}" + when: check_previous_build.stdout + + - set_fact: + previous_build_path: "{{ workdir }}/{{ previous_build }}" + when: check_previous_build.stdout when: check_previous_build_enabled - name: Download built rpms artifacts and prepare rpminspect cache From 3b178c4ce5a4ed164538f806c9df72ea27eb8ab6 Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: May 18 2021 08:08:51 +0000 Subject: [PATCH 2/2] mock-build: re-create repodata via createrepo command The repodata provided as an output of mock does not contain the src.rpm entry. This makes the rpm-artifact-url role unable to fetch the srpm url. Using createrepo to reprocess the repodata directory seems to be enough for the fix. --- diff --git a/roles/mock-build/tasks/main.yaml b/roles/mock-build/tasks/main.yaml index 6579477..f7ac512 100644 --- a/roles/mock-build/tasks/main.yaml +++ b/roles/mock-build/tasks/main.yaml @@ -1,4 +1,10 @@ --- +- name: Install system dependencies + yum: + name: createrepo + state: latest + become: true + - name: Set output_repo_dir to be compatible with simple-repo-fetch role set_fact: output_repo_dir: "{{ zuul_output_dir }}/logs/repo" @@ -30,5 +36,13 @@ - name: Sync chained repo in {{ ansible_user_dir }}/repo command: > - rsync -av {{ ansible_user_dir }}/chainrepo/results/{{ mock_config }}/ + rsync -av --exclude repodata {{ ansible_user_dir }}/chainrepo/results/{{ mock_config }}/ {{ output_repo_dir }}/ + +- name: Remove eventual superfluous srpm from simple-srpm-build role + shell: rm -f {{ output_repo_dir }}/*.src.rpm + +- name: Create repository + command: createrepo . + args: + chdir: "{{ output_repo_dir }}"