All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Mayhew <smayhew@redhat.com>
To: kdevops@lists.linux.dev
Cc: chuck.lever@oracle.com
Subject: [PATCH] gitr: Make gitr work on RHEL/CentOS
Date: Thu, 15 Aug 2024 17:59:41 -0400	[thread overview]
Message-ID: <20240815215941.602080-1-smayhew@redhat.com> (raw)

RHEL and CentOS do not ship cvsps or perl-TAP-Harness-Archive.  For the
former, we'll have to build it from git.  For the latter, we can install
it from CPAN, but we'll also have to install the perl-App-cpanminus
package to do so.

Also add two other dependencies.  First is 'make', which is currently
only installed if you have KDEVOPS_TRY_INSTALL_KDEV_TOOLS enabled in
your config.  Second is 'tar' which is not installed in the RHEL
virt-builder images by default ('tar' isn't part of the @core dnf
package group).

Signed-off-by: Scott Mayhew <smayhew@redhat.com>
---
 playbooks/roles/gitr/defaults/main.yml |  3 ++
 playbooks/roles/gitr/tasks/main.yml    | 67 ++++++++++++++++++++++++++
 playbooks/roles/gitr/vars/RedHat.yml   |  7 ++-
 3 files changed, 75 insertions(+), 2 deletions(-)

diff --git a/playbooks/roles/gitr/defaults/main.yml b/playbooks/roles/gitr/defaults/main.yml
index bcfbaef..ff737ca 100644
--- a/playbooks/roles/gitr/defaults/main.yml
+++ b/playbooks/roles/gitr/defaults/main.yml
@@ -18,3 +18,6 @@ gitr_thread_single: false
 gitr_thread_fast: false
 gitr_thread_stress: false
 gitr_thread_custom: false
+
+cvsps_git: https://github.com/andreyvit/cvsps.git
+cvsps_data: "{{ data_path }}/cvsps"
diff --git a/playbooks/roles/gitr/tasks/main.yml b/playbooks/roles/gitr/tasks/main.yml
index 330350c..001257a 100644
--- a/playbooks/roles/gitr/tasks/main.yml
+++ b/playbooks/roles/gitr/tasks/main.yml
@@ -11,6 +11,11 @@
   failed_when: false
   tags: vars
 
+- name: Set up the /data mount point
+  tags: ['data_partition']
+  ansible.builtin.include_role:
+    name: create_data_partition
+
 - name: Set the name of the test group
   tags: vars
   ansible.builtin.set_fact:
@@ -42,6 +47,21 @@
       paths:
         - 'vars'
 
+- name: Update gitr depencies for RHEL/Centos
+  tags: gitr
+  ansible.builtin.set_fact:
+    gitr_packages: "{{ gitr_packages + ['perl-App-cpanminus'] }}"
+  when:
+    - ansible_distribution == "RedHat" or
+      ansible_distribution == "CentOS"
+
+- name: Update gitr dependencies for Fedora
+  tags: gitr
+  ansible.builtin.set_fact:
+    gitr_packages: "{{ gitr_packages + ['cvsps', 'perl-TAP-Harness-Archive'] }}"
+  when:
+    - ansible_distribution == "Fedora"
+
 - name: Install dependencies for gitr
   tags: gitr
   become: true
@@ -51,6 +71,53 @@
     name: "{{ gitr_packages }}"
     state: present
 
+- name: Install CPAN modules for gitr
+  tags: gitr
+  become: true
+  become_flags: 'su - -c'
+  become_method: ansible.builtin.sudo
+  community.general.cpanm:
+    name: "{{ item }}"
+  with_items: "{{ gitr_cpan_modules }}"
+  when:
+    - ansible_distribution == "RedHat" or
+      ansible_distribution == "CentOS"
+
+- name: git clone cvsps
+  tags: gitr
+  ansible.builtin.git:
+    repo: "{{ cvsps_git }}"
+    dest: "{{ cvsps_data }}"
+    update: true
+  retries: 3
+  delay: 5
+  register: result
+  until: not result.failed
+  when:
+    - ansible_distribution == "RedHat" or
+      ansible_distribution == "CentOS"
+
+- name: Build cvsps
+  tags: gitr
+  community.general.make:
+    chdir: "{{ cvsps_data }}"
+    jobs: "{{ ansible_processor_nproc }}"
+  when:
+    - ansible_distribution == "RedHat" or
+      ansible_distribution == "CentOS"
+
+- name: Install cvsps
+  tags: gitr
+  become: true
+  become_flags: 'su - -c'
+  become_method: ansible.builtin.sudo
+  community.general.make:
+    target: install
+    chdir: "{{ cvsps_data }}"
+  when:
+    - ansible_distribution == "RedHat" or
+      ansible_distribution == "CentOS"
+
 - name: Set up an iSCSI initiator on the target node
   ansible.builtin.include_role:
     name: iscsi
diff --git a/playbooks/roles/gitr/vars/RedHat.yml b/playbooks/roles/gitr/vars/RedHat.yml
index 57f2f35..caf9840 100644
--- a/playbooks/roles/gitr/vars/RedHat.yml
+++ b/playbooks/roles/gitr/vars/RedHat.yml
@@ -1,7 +1,6 @@
 ---
 gitr_packages:
   - cvs
-  - cvsps
   - expat-devel
   - gcc
   - gettext
@@ -9,11 +8,15 @@ gitr_packages:
   - git-email
   - glibc-utils
   - libcurl-devel
+  - make
   - openssl-devel
   - perl-Memoize
-  - perl-TAP-Harness-Archive
   - perl-Test-Harness
   - perl-Test-Simple
   - subversion
   - subversion-perl
+  - tar
   - zlib-devel
+
+gitr_cpan_modules:
+  - TAP::Harness::Archive
-- 
2.44.0


             reply	other threads:[~2024-08-15 21:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-15 21:59 Scott Mayhew [this message]
2024-08-16 20:45 ` [PATCH] gitr: Make gitr work on RHEL/CentOS Chuck Lever
2024-08-19 12:53   ` Scott Mayhew
2024-08-19 13:12     ` Chuck Lever III
2024-08-19 14:07       ` Scott Mayhew
2024-08-19 21:28         ` Scott Mayhew
2024-08-21 13:54           ` Chuck Lever III

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240815215941.602080-1-smayhew@redhat.com \
    --to=smayhew@redhat.com \
    --cc=chuck.lever@oracle.com \
    --cc=kdevops@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.