We actually use rhui/cloud access images for rpmbuild as well. And the sync issue between cdn and rhui repos can cause issues when rpms are build against older packages.
124 lines
3.6 KiB
YAML
124 lines
3.6 KiB
YAML
---
|
|
- name: Build osbuild rpms
|
|
become: yes
|
|
remote_user: ec2-user
|
|
hosts: rpmbuilder
|
|
gather_facts: no
|
|
tasks:
|
|
|
|
- name: Wait for hosts to be reachable
|
|
ansible.builtin.wait_for_connection:
|
|
delay: 60
|
|
timeout: 400
|
|
|
|
- name: Gather facts
|
|
ansible.builtin.setup:
|
|
|
|
- name: Add EPEL
|
|
dnf:
|
|
state: present
|
|
name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
|
|
disable_gpg_check: yes
|
|
|
|
# Upgrading authselect without --allowerasing currently fails on RHEL 9.1 with RHUI repos
|
|
# https://issues.redhat.com/browse/RHUIOPS-84
|
|
# TODO: remove this once the issue is fixed
|
|
- name: Upgrade authselect package
|
|
dnf:
|
|
name: authselect
|
|
state: latest
|
|
allowerasing: yes
|
|
register: result
|
|
retries: 5
|
|
until: result is success
|
|
|
|
- name: Upgrade all packages
|
|
package:
|
|
name: "*"
|
|
state: latest
|
|
register: result
|
|
retries: 5
|
|
until: result is success
|
|
|
|
- name: Create rpmbuild directory
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
with_items:
|
|
- /home/ec2-user/rpmbuild
|
|
- /home/ec2-user/rpmbuild/SOURCES
|
|
- /home/ec2-user/rpmbuild/RPMS
|
|
|
|
- name: Download osbuild-composer archive
|
|
get_url:
|
|
url: "https://github.com/osbuild/osbuild-composer/archive/{{ COMPOSER_COMMIT }}.tar.gz"
|
|
dest: "/home/ec2-user/rpmbuild/SOURCES/osbuild-composer-{{ COMPOSER_COMMIT }}.tar.gz"
|
|
|
|
- name: Download osbuild-composer spec
|
|
get_url:
|
|
url: "https://raw.githubusercontent.com/osbuild/osbuild-composer/{{ COMPOSER_COMMIT }}/osbuild-composer.spec"
|
|
dest: /home/ec2-user/osbuild-composer.spec
|
|
|
|
- name: Download osbuild archive
|
|
get_url:
|
|
url: "https://github.com/osbuild/osbuild/archive/{{ OSBUILD_COMMIT }}.tar.gz"
|
|
dest: "/home/ec2-user/rpmbuild/SOURCES/osbuild-{{ OSBUILD_COMMIT }}.tar.gz"
|
|
|
|
- name: Download osbuild spec
|
|
get_url:
|
|
url: "https://raw.githubusercontent.com/osbuild/osbuild/{{ OSBUILD_COMMIT }}/osbuild.spec"
|
|
dest: /home/ec2-user/osbuild.spec
|
|
|
|
- name: Install build tools
|
|
package:
|
|
name:
|
|
- rpm-build
|
|
- mock
|
|
- createrepo_c
|
|
state: present
|
|
|
|
- name: Make osbuild srpm
|
|
command: >-
|
|
rpmbuild -bs
|
|
--define "commit {{ OSBUILD_COMMIT }}"
|
|
--define "_topdir /home/ec2-user/rpmbuild"
|
|
--define "_srpmfilename %%{NAME}.srpm"
|
|
/home/ec2-user/osbuild.spec
|
|
|
|
- name: Mockbuild osbuild
|
|
shell: >-
|
|
mock
|
|
-r "rhel-9-{{ ansible_architecture }}"
|
|
--rebuild
|
|
--define "commit {{ OSBUILD_COMMIT }}"
|
|
--define "_rpmfilename %%{NAME}.rpm"
|
|
--resultdir /home/ec2-user/rpmbuild/RPMS
|
|
/home/ec2-user/rpmbuild/SRPMS/osbuild-*.src.rpm
|
|
|
|
- name: Make osbuild-composer srpm
|
|
command: >-
|
|
rpmbuild -bs
|
|
--define "commit {{ COMPOSER_COMMIT }}"
|
|
--define "_topdir /home/ec2-user/rpmbuild"
|
|
--define "_srpmfilename %%{NAME}.srpm"
|
|
/home/ec2-user/osbuild-composer.spec
|
|
|
|
|
|
- name: Mockbuild osbuild-composer
|
|
shell: >-
|
|
mock
|
|
-r "rhel-9-{{ ansible_architecture }}"
|
|
--rebuild
|
|
--define "commit {{ COMPOSER_COMMIT }}"
|
|
--define "_rpmfilename %%{NAME}.rpm"
|
|
--resultdir /home/ec2-user/rpmbuild/RPMS
|
|
/home/ec2-user/rpmbuild/SRPMS/osbuild-composer-*.src.rpm
|
|
|
|
- name: Create a repository from the artifacts
|
|
command: createrepo_c /home/ec2-user/rpmbuild/RPMS
|
|
|
|
- name: Fetch rpms
|
|
ansible.posix.synchronize:
|
|
mode: pull
|
|
src: /home/ec2-user/rpmbuild/RPMS
|
|
dest: /osbuild-composer/templates/packer/ansible/roles/common/files/rpmbuild/{{ ansible_architecture }}
|