From 4f543db0b7a08e903a295c150621cd8b18021297 Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: Dec 21 2020 14:39:21 +0000 Subject: [PATCH 1/2] Role + job to check the sources file Goal is to check that the source0 file is part of the sources file. This will tell us if the file has been push to the lookaside cache. --- diff --git a/playbooks/fedora/check-sources.yaml b/playbooks/fedora/check-sources.yaml new file mode 100644 index 0000000..0983142 --- /dev/null +++ b/playbooks/fedora/check-sources.yaml @@ -0,0 +1,3 @@ +- hosts: all + roles: + - fedora-check-sources diff --git a/roles/fedora-check-sources/tasks/main.yaml b/roles/fedora-check-sources/tasks/main.yaml new file mode 100644 index 0000000..f8c7ee9 --- /dev/null +++ b/roles/fedora-check-sources/tasks/main.yaml @@ -0,0 +1,30 @@ +- name: Discover specfile name + command: ls *.spec + args: + chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" + register: get_spec_name + +- set_fact: + spec_name: "{{ get_spec_name.stdout }}" + +- name: Discover Source0 name + shell: "spectool {{ spec_name }} | grep Source0 | sed 's/Source0: //' | xargs basename" + register: get_source0_name + +- set_fact: + source_name: "{{ get_source0_name.stdout }}" + +- name: Ensure source name is in the sources file + command: grep {{ source_name }} sources + args: + chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" + register: grep_source + ignore_errors: true + +- fail: + msg: | + The sources file does not contain the source0 name and hash. + You should run + spectool {{ spec_name }} + fedpkg new-sources {{ source_name }} + when: grep_source.rc == 1 diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 495ab51..9da7cf6 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -145,9 +145,19 @@ - job: name: rpminspect description: | - Job to run rpminspct on rpms from a repo artifact + Job to run rpminspect on rpms from a repo artifact requires: repo pre-run: playbooks/ensure-output-dirs.yaml run: playbooks/rpm/rpminspect.yaml post-run: - playbooks/rpm/rpminspect-json2html.yaml +<<<<<<< HEAD +======= + - playbooks/fetch-output.yaml + +- job: + name: fedora-check-sources + description: | + Job to detect missing sources file update (lookaside cache) + run: playbooks/fedora/check-sources.yaml +>>>>>>> 4865c41... Role + job to check the sources file From d0ee894528ddd5a05c478fb31b424217dddf9f02 Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: Dec 21 2020 14:42:00 +0000 Subject: [PATCH 2/2] fedora-check-sources: make it distro agnostics --- diff --git a/playbooks/fedora/check-sources.yaml b/playbooks/fedora/check-sources.yaml deleted file mode 100644 index 0983142..0000000 --- a/playbooks/fedora/check-sources.yaml +++ /dev/null @@ -1,3 +0,0 @@ -- hosts: all - roles: - - fedora-check-sources diff --git a/roles/check-sources-file/defaults/main.yaml b/roles/check-sources-file/defaults/main.yaml new file mode 100644 index 0000000..5f9272a --- /dev/null +++ b/roles/check-sources-file/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +uploadcmd: fedpkg upload diff --git a/roles/check-sources-file/tasks/check.yaml b/roles/check-sources-file/tasks/check.yaml new file mode 100644 index 0000000..c6e187e --- /dev/null +++ b/roles/check-sources-file/tasks/check.yaml @@ -0,0 +1,15 @@ +--- +- name: Test source item in sources file + command: grep {{ item | basename }} sources + args: + chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" + register: grep_source + ignore_errors: true + +- fail: + msg: | + The sources file does not contain the {{ item | basename }} name and hash. + You should run + spectool -g {{ spec_name }} + {{ uploadcmd }} {{ item | basename }} + when: grep_source.rc == 1 diff --git a/roles/check-sources-file/tasks/main.yaml b/roles/check-sources-file/tasks/main.yaml new file mode 100644 index 0000000..a6ff3ac --- /dev/null +++ b/roles/check-sources-file/tasks/main.yaml @@ -0,0 +1,28 @@ +--- +- name: Install system dependencies + yum: + name: rpmdevtools + state: latest + become: true + +- name: Discover specfile name + shell: ls *.spec + args: + chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" + register: get_spec_name + +- set_fact: + spec_name: "{{ get_spec_name.stdout }}" + +- name: Discover sources + shell: "spectool {{ spec_name }} | grep Source | sed 's/Source.*: //'" + args: + chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" + register: spectool_cmd + +- set_fact: + sources: "{{spectool_cmd.stdout_lines }}" + +- name: Ensure source name is in the sources file + include_tasks: check.yaml + loop: "{{ sources }}" diff --git a/roles/fedora-check-sources/tasks/main.yaml b/roles/fedora-check-sources/tasks/main.yaml deleted file mode 100644 index f8c7ee9..0000000 --- a/roles/fedora-check-sources/tasks/main.yaml +++ /dev/null @@ -1,30 +0,0 @@ -- name: Discover specfile name - command: ls *.spec - args: - chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" - register: get_spec_name - -- set_fact: - spec_name: "{{ get_spec_name.stdout }}" - -- name: Discover Source0 name - shell: "spectool {{ spec_name }} | grep Source0 | sed 's/Source0: //' | xargs basename" - register: get_source0_name - -- set_fact: - source_name: "{{ get_source0_name.stdout }}" - -- name: Ensure source name is in the sources file - command: grep {{ source_name }} sources - args: - chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" - register: grep_source - ignore_errors: true - -- fail: - msg: | - The sources file does not contain the source0 name and hash. - You should run - spectool {{ spec_name }} - fedpkg new-sources {{ source_name }} - when: grep_source.rc == 1 diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 9da7cf6..590bed6 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -151,13 +151,3 @@ run: playbooks/rpm/rpminspect.yaml post-run: - playbooks/rpm/rpminspect-json2html.yaml -<<<<<<< HEAD -======= - - playbooks/fetch-output.yaml - -- job: - name: fedora-check-sources - description: | - Job to detect missing sources file update (lookaside cache) - run: playbooks/fedora/check-sources.yaml ->>>>>>> 4865c41... Role + job to check the sources file