From: Luis Chamberlain <mcgrof@kernel.org>
To: Chuck Lever <cel@kernel.org>, Daniel Gomez <da.gomez@kruces.com>,
kdevops@lists.linux.dev
Cc: Chuck Lever <chuck.lever@oracle.com>
Subject: [PATCH v2 20/33] bootlinux: Move tasks for building on target nodes to a subrole
Date: Sun, 27 Jul 2025 18:14:20 -0700 [thread overview]
Message-ID: <20250728011434.3197091-21-mcgrof@kernel.org> (raw)
In-Reply-To: <20250728011434.3197091-1-mcgrof@kernel.org>
From: Chuck Lever <chuck.lever@oracle.com>
Most everything that is marked with "when: not bootlinux_9p|bool" is
moved to a separate .yml file and then dynamically included when
bootlinux_targets is true. This makes it easy to identify tasks that
are specific to building on the target nodes and ensures those tasks
are completely disabled and skipped when other build modes are in
use.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
.../roles/bootlinux/tasks/build/targets.yml | 125 +++++++++++++++++
playbooks/roles/bootlinux/tasks/main.yml | 132 +-----------------
2 files changed, 129 insertions(+), 128 deletions(-)
create mode 100644 playbooks/roles/bootlinux/tasks/build/targets.yml
diff --git a/playbooks/roles/bootlinux/tasks/build/targets.yml b/playbooks/roles/bootlinux/tasks/build/targets.yml
new file mode 100644
index 00000000..36339876
--- /dev/null
+++ b/playbooks/roles/bootlinux/tasks/build/targets.yml
@@ -0,0 +1,125 @@
+---
+- name: Install b4
+ become: yes
+ become_method: sudo
+ pip:
+ name:
+ - b4
+ when:
+ - target_linux_install_b4 is defined
+ - target_linux_install_b4
+ - ansible_facts['os_family']|lower != 'debian'
+
+- name: git clone {{ target_linux_tree }} on the target nodes
+ git:
+ repo: "{{ target_linux_git }}"
+ dest: "{{ target_linux_dir_path }}"
+ update: yes
+ depth: "{{ target_linux_shallow_depth }}"
+ version: "{{ target_linux_ref }}"
+ retries: 3
+ delay: 5
+ register: result
+ until: not result.failed
+ tags: [ 'clone']
+
+- name: Copy kernel delta if requested on the target nodes
+ template:
+ src: "{{ target_linux_extra_patch }}"
+ dest: "{{ target_linux_dir_path }}/{{ target_linux_extra_patch }}"
+ owner: "{{ data_user }}"
+ group: "{{ data_group }}"
+ mode: 0644
+ when:
+ - target_linux_extra_patch is defined
+
+- name: Apply kernel delta if requested on the target nodes
+ command: "git am {{ target_linux_extra_patch }}"
+ args:
+ chdir: "{{ target_linux_dir_path }}"
+ when:
+ - target_linux_extra_patch is defined
+
+- name: Set git user name and email if needed
+ shell: |
+ if ! $(git config --get user.email) ; then
+ git config --global user.email user@example.com
+ fi
+ if ! $(git config --get user.name) ; then
+ git config --global user.name user
+ fi
+ when:
+ - target_linux_apply_patch_message_id is defined
+ - target_linux_apply_patch_message_id | length > 0
+ - bootlinux_b4_am_this_host|bool
+
+- name: Variable values
+ debug:
+ msg: "{{ target_linux_apply_patch_message_id }}"
+ when:
+ - target_linux_apply_patch_message_id is defined
+
+- name: Apply message patch set if requested on the target nodes
+ shell: b4 am -o - {{target_linux_apply_patch_message_id}} | git am
+ args:
+ chdir: "{{ target_linux_dir_path }}"
+ when:
+ - target_linux_apply_patch_message_id is defined
+ - target_linux_apply_patch_message_id | length > 0
+ - bootlinux_b4_am_this_host|bool
+
+- name: Copy configuration for Linux {{ target_linux_tree }} to the target nodes
+ template:
+ src: "{{ linux_config }}"
+ dest: "{{ target_linux_dir_path }}/.config"
+ owner: "{{ data_user }}"
+ group: "{{ data_group }}"
+ mode: 0644
+
+- name: Set kernel localversion if requested on the target nodes
+ shell: "echo {{ target_linux_localversion }} > {{ target_linux_dir_path }}/localversion"
+ when:
+ - target_linux_localversion is defined and target_linux_localversion != ""
+
+- name: Configure Linux {{ target_linux_tree }} on the target nodes
+ shell: |
+ set -o pipefail
+ yes "" | make oldconfig
+ register: configure_done
+ changed_when: configure_done.rc == 0 or configure_done.rc == 141
+ failed_when: configure_done.rc != 0 and configure_done.rc != 141
+ args:
+ chdir: "{{ target_linux_dir_path }}"
+ executable: /bin/bash
+
+- name: Build {{ target_linux_tree }} on the target nodes
+ command: "{{ target_linux_make_cmd }}"
+ register: build
+ changed_when: "build.rc == 0"
+ args:
+ chdir: "{{ target_linux_dir_path }}"
+ tags: [ 'build-linux' ]
+
+- name: Build {{ target_linux_tree }} cxl_test on the target nodes
+ command: "{{ target_linux_make_cmd }} M=tools/testing/cxl"
+ register: build_cxl_test
+ changed_when: "build_cxl_test.rc == 0"
+ args:
+ chdir: "{{ target_linux_dir_path }}"
+ tags: [ 'build-linux', 'cxl-build' ]
+ when:
+ - bootlinux_cxl_test|bool
+
+- name: See if snake-oil cert file is present on client
+ stat:
+ path: "{{ target_linux_dir_path }}/certs/signing_key.pem"
+ register: snaik_oil_file
+ tags: [ 'build-linux' ]
+
+- name: Ensure we allow world to read the snake oil in case of NFS or 9p read only usage
+ file:
+ path: "{{ target_linux_dir_path }}/certs/signing_key.pem"
+ mode: "0755"
+ tags: [ 'build-linux' ]
+ when:
+ - snaik_oil_file.stat.exists
diff --git a/playbooks/roles/bootlinux/tasks/main.yml b/playbooks/roles/bootlinux/tasks/main.yml
index e908f313..62a081a9 100644
--- a/playbooks/roles/bootlinux/tasks/main.yml
+++ b/playbooks/roles/bootlinux/tasks/main.yml
@@ -74,135 +74,11 @@
when:
- bootlinux_9p|bool
-- name: git clone {{ target_linux_tree }} on the target nodes
- git:
- repo: "{{ target_linux_git }}"
- dest: "{{ target_linux_dir_path }}"
- update: yes
- depth: "{{ target_linux_shallow_depth }}"
- version: "{{ target_linux_ref }}"
- retries: 3
- delay: 5
- register: result
- until: not result.failed
- tags: [ 'clone']
- when:
- - not bootlinux_9p|bool
-
-- name: Copy kernel delta if requested on the target nodes
- template:
- src: "{{ target_linux_extra_patch }}"
- dest: "{{ target_linux_dir_path }}/{{ target_linux_extra_patch }}"
- owner: "{{ data_user }}"
- group: "{{ data_group }}"
- mode: 0644
- when:
- - not bootlinux_9p|bool
- - target_linux_extra_patch is defined
-
-- name: Apply kernel delta if requested on the target nodes
- command: "git am {{ target_linux_extra_patch }}"
- args:
- chdir: "{{ target_linux_dir_path }}"
- when:
- - not bootlinux_9p|bool
- - target_linux_extra_patch is defined
-
-- name: Set git user name and email if needed
- shell: |
- if ! $(git config --get user.email) ; then
- git config --global user.email user@example.com
- fi
- if ! $(git config --get user.name) ; then
- git config --global user.name user
- fi
- when:
- - target_linux_apply_patch_message_id is defined
- - target_linux_apply_patch_message_id | length > 0
- - bootlinux_b4_am_this_host|bool
-
-- name: Variable values
- debug:
- msg: "{{ target_linux_apply_patch_message_id }}"
- when:
- - target_linux_apply_patch_message_id is defined
-
-- name: Apply message patch set if requested on the target nodes
- shell: b4 am -o - {{target_linux_apply_patch_message_id}} | git am
- args:
- chdir: "{{ target_linux_dir_path }}"
- when:
- - not bootlinux_9p|bool
- - target_linux_apply_patch_message_id is defined
- - target_linux_apply_patch_message_id | length > 0
- - bootlinux_b4_am_this_host|bool
-
-- name: Copy configuration for Linux {{ target_linux_tree }} to the target nodes
- template:
- src: "{{ linux_config }}"
- dest: "{{ target_linux_dir_path }}/.config"
- owner: "{{ data_user }}"
- group: "{{ data_group }}"
- mode: 0644
- when:
- - not bootlinux_9p|bool
-
-- name: Set kernel localversion if requested on the target nodes
- shell: "echo {{ target_linux_localversion }} > {{ target_linux_dir_path }}/localversion"
- when:
- - not bootlinux_9p|bool
- - target_linux_localversion is defined and target_linux_localversion != ""
-
-- name: Configure Linux {{ target_linux_tree }} on the target nodes
- shell: |
- set -o pipefail
- yes "" | make oldconfig
- register: configure_done
- changed_when: configure_done.rc == 0 or configure_done.rc == 141
- failed_when: configure_done.rc != 0 and configure_done.rc != 141
- args:
- chdir: "{{ target_linux_dir_path }}"
- executable: /bin/bash
- when:
- - not bootlinux_9p|bool
-
-- name: Build {{ target_linux_tree }} on the target nodes
- command: "{{ target_linux_make_cmd }}"
- register: build
- changed_when: "build.rc == 0"
- args:
- chdir: "{{ target_linux_dir_path }}"
- tags: [ 'build-linux' ]
- when:
- - not bootlinux_9p|bool
-
-- name: Build {{ target_linux_tree }} cxl_test on the target nodes
- command: "{{ target_linux_make_cmd }} M=tools/testing/cxl"
- register: build_cxl_test
- changed_when: "build_cxl_test.rc == 0"
- args:
- chdir: "{{ target_linux_dir_path }}"
- tags: [ 'build-linux', 'cxl-build' ]
- when:
- - not bootlinux_9p|bool
- - bootlinux_cxl_test|bool
-
-- name: See if snake-oil cert file is present on client
- stat:
- path: "{{ target_linux_dir_path }}/certs/signing_key.pem"
- register: snaik_oil_file
- tags: [ 'build-linux' ]
- when:
- - not bootlinux_9p|bool
-
-- name: Ensure we allow world to read the snake oil in case of NFS or 9p read only usage
- file:
- path: "{{ target_linux_dir_path }}/certs/signing_key.pem"
- mode: "0755"
- tags: [ 'build-linux' ]
+- name: Build the Linux kernel on the target nodes
+ ansible.builtin.include_tasks:
+ file: "{{ role_path }}/tasks/build/targets.yml"
when:
- - not bootlinux_9p|bool
- - snaik_oil_file.stat.exists
+ - bootlinux_targets|bool
- name: Run uname before
command: "uname -r"
--
2.47.2
next prev parent reply other threads:[~2025-07-28 1:14 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-28 1:14 [PATCH v2 00/33] remove vagrant and bootlinux shape up Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 01/33] vagrant: remove entire vagrant configuration directory Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 02/33] kconfigs: fix Kconfig references after vagrant removal Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 03/33] scripts: remove Vagrant-specific scripts and Makefiles Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 04/33] playbooks: remove Vagrant-specific playbooks and roles Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 05/33] gitignore: remove Vagrant-specific ignore patterns Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 06/33] docs: remove Vagrant-specific documentation files Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 07/33] Remove all remaining Vagrant references from codebase Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 08/33] terraform: Clean up the destroy tasks Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 09/33] Switch to the cloud.terraform.terraform module Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 10/33] terraform: Make use of the new "terraform_output" module Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 11/33] terraform: Move "wait_for_connection" out of the terraform playbook Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 12/33] terraform: Remove "delegate_to: localhost" Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 13/33] terraform: Replace scripts/status_terraform.sh Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 14/33] Kconfig: Convert the 9p option to a choice menu Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 15/33] bootlinux: fix making 9p default if using libvirt Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 16/33] bootlinux: Relocate tasks that select a kernel .config Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 17/33] bootlinux: Simplify tasks that select the kernel .config to build Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 18/33] bootlinux: Select the kernel .config earlier Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 19/33] bootlinux: Move 9p build tasks to a subrole Luis Chamberlain
2025-07-28 1:14 ` Luis Chamberlain [this message]
2025-07-28 1:14 ` [PATCH v2 21/33] bootlinux: Clean up a grub set-up task Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 22/33] bootlinux: Harden update-grub/install.yml Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 23/33] Add a guest/instance for building the test kernel Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 24/33] bootlinux: Add a new builder choice Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 25/33] workflows: Add a kconfig setting for installing kernels via package Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 26/33] bootlinux: Enclose tasks to find kernel release name in a block: Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 27/33] bootlinux: Pick up kernel release info for pre-built packages Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 28/33] bootlinux: Install pre-built kernels from packages Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 29/33] bootlinux: Add an option to build with clang instead of gcc Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 30/33] Makefile: add make style for style checking Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 31/33] CLAUDE.md: new workflow guide for hosts and nodes Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 32/33] CLAUDE.md: add don't BS rules Luis Chamberlain
2025-07-28 1:14 ` [PATCH v2 33/33] gen_nodes/gen_hosts: avoid usage of fs_config_path on task names Luis Chamberlain
2025-07-29 20:07 ` [PATCH v2 00/33] remove vagrant and bootlinux shape up Luis Chamberlain
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=20250728011434.3197091-21-mcgrof@kernel.org \
--to=mcgrof@kernel.org \
--cc=cel@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=da.gomez@kruces.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox