From 136a4045c2e577219db9c0735b6a908005628a9d Mon Sep 17 00:00:00 2001 From: Bruno Goncalves Date: Apr 17 2019 11:41:43 +0000 Subject: execute rpmbuild steps on test-env There has been few issues reported when running rpmbuild prep step from source role This happens test runner and test env run different OS, so it makes more sense to run rpmbuild prep step directly on test env Additional benefit is to be able to use `required_packages` to install additional packages that are need during prep step --- diff --git a/roles/standard-test-source/defaults/main.yml b/roles/standard-test-source/defaults/main.yml index c6a40e3..43bfec4 100644 --- a/roles/standard-test-source/defaults/main.yml +++ b/roles/standard-test-source/defaults/main.yml @@ -1,6 +1,10 @@ --- artifacts: "{{ lookup('env', 'TEST_ARTIFACTS') | default('./artifacts', true) }}" pkgdir: "{{ playbook_dir }}/.." -srcdir: "{{ playbook_dir }}/source" +# tenv_workdir is imported from str-common-pkgs role +srcdir: "{{ tenv_workdir }}/source" flatten: True fetch_only: False +# list of packages that will be installed on test-env by str-common-pkgs +role_pkgs_req: + - rpm-build diff --git a/roles/standard-test-source/tasks/main.yml b/roles/standard-test-source/tasks/main.yml index e44f6cd..d82bebe 100644 --- a/roles/standard-test-source/tasks/main.yml +++ b/roles/standard-test-source/tasks/main.yml @@ -47,18 +47,39 @@ sources: "{{pkgdir}}/sources" target: "{{pkgdir}}/" - - name: Extract and setup the sources - shell: | - rm -rf "{{srcdir}}" - rpmbuild -bp {{pkgdir}}/*.spec --nodeps --define "_sourcedir {{pkgdir}}/" --define "_builddir {{srcdir}}" - args: - warn: false - when: not fetch_only +- include_role: + name: str-common-init + tasks_from: inspect - - name: Flatten sources - shell: | - shopt -s dotglob - mv {{ srcdir }}/*/* {{ srcdir }} - when: - - flatten - - not fetch_only +- name: Install packages requested in `required_packages` section from tests.yml + include_role: + name: str-common-pkgs + vars: + param_req_pkgs: + - "{{ required_packages|d|list }}" + - "{{ role_pkgs_req|d|list }}" + +- name: Include vars from str-common-pkgs + include_vars: ../str-common-pkgs/defaults/main.yml + +- name: Copy source to test environment + synchronize: + src: "{{ pkgdir }}/" + dest: "{{ tenv_workdir }}" + ssh_args: "-o UserKnownHostsFile=/dev/null" + +- name: Extract and setup the sources + shell: | + rm -rf "{{srcdir}}" + rpmbuild -bp {{tenv_workdir}}/*.spec --nodeps --define "_sourcedir {{tenv_workdir}}/" --define "_builddir {{srcdir}}" + args: + warn: false + when: not fetch_only + +- name: Flatten sources + shell: | + shopt -s dotglob + mv {{ srcdir }}/*/* {{ srcdir }} + when: + - flatten + - not fetch_only