debian-forge-composer/tools/appsre-ansible/rpmbuild.yml
2022-09-27 10:47:32 +02:00

117 lines
3.3 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
- name: Subscribe
community.general.redhat_subscription:
activationkey: "{{ RH_ACTIVATION_KEY }}"
org_id: "{{ RH_ORG_ID }}"
- 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 }}