diff options
Diffstat (limited to 'test/integration/targets/setup_deb_repo')
8 files changed, 138 insertions, 0 deletions
diff --git a/test/integration/targets/setup_deb_repo/files/package_specs/stable/foo-1.0.0 b/test/integration/targets/setup_deb_repo/files/package_specs/stable/foo-1.0.0 new file mode 100644 index 0000000..4206fba --- /dev/null +++ b/test/integration/targets/setup_deb_repo/files/package_specs/stable/foo-1.0.0 @@ -0,0 +1,10 @@ +Section: misc +Priority: optional +Standards-Version: 2.3.3 + +Package: foo +Version: 1.0.0 +Section: system +Maintainer: John Doe <john@doe.com> +Architecture: all +Description: Dummy package diff --git a/test/integration/targets/setup_deb_repo/files/package_specs/stable/foo-1.0.1 b/test/integration/targets/setup_deb_repo/files/package_specs/stable/foo-1.0.1 new file mode 100644 index 0000000..021f4d5 --- /dev/null +++ b/test/integration/targets/setup_deb_repo/files/package_specs/stable/foo-1.0.1 @@ -0,0 +1,10 @@ +Section: misc +Priority: optional +Standards-Version: 2.3.3 + +Package: foo +Version: 1.0.1 +Section: system +Maintainer: John Doe <john@doe.com> +Architecture: all +Description: Dummy package diff --git a/test/integration/targets/setup_deb_repo/files/package_specs/stable/foobar-1.0.0 b/test/integration/targets/setup_deb_repo/files/package_specs/stable/foobar-1.0.0 new file mode 100644 index 0000000..0da0348 --- /dev/null +++ b/test/integration/targets/setup_deb_repo/files/package_specs/stable/foobar-1.0.0 @@ -0,0 +1,11 @@ +Section: misc +Priority: optional +Standards-Version: 2.3.3 + +Package: foobar +Version: 1.0.0 +Section: system +Depends: foo +Maintainer: John Doe <john@doe.com> +Architecture: all +Description: Dummy package diff --git a/test/integration/targets/setup_deb_repo/files/package_specs/stable/foobar-1.0.1 b/test/integration/targets/setup_deb_repo/files/package_specs/stable/foobar-1.0.1 new file mode 100644 index 0000000..b9fa830 --- /dev/null +++ b/test/integration/targets/setup_deb_repo/files/package_specs/stable/foobar-1.0.1 @@ -0,0 +1,10 @@ +Section: misc +Priority: optional +Standards-Version: 2.3.3 + +Package: foobar +Version: 1.0.1 +Section: system +Maintainer: John Doe <john@doe.com> +Architecture: all +Description: Dummy package diff --git a/test/integration/targets/setup_deb_repo/files/package_specs/testing/foo-2.0.0 b/test/integration/targets/setup_deb_repo/files/package_specs/testing/foo-2.0.0 new file mode 100644 index 0000000..7e835f0 --- /dev/null +++ b/test/integration/targets/setup_deb_repo/files/package_specs/testing/foo-2.0.0 @@ -0,0 +1,10 @@ +Section: misc +Priority: optional +Standards-Version: 2.3.3 + +Package: foo +Version: 2.0.0 +Section: system +Maintainer: John Doe <john@doe.com> +Architecture: all +Description: Dummy package diff --git a/test/integration/targets/setup_deb_repo/files/package_specs/testing/foo-2.0.1 b/test/integration/targets/setup_deb_repo/files/package_specs/testing/foo-2.0.1 new file mode 100644 index 0000000..c6e7b5b --- /dev/null +++ b/test/integration/targets/setup_deb_repo/files/package_specs/testing/foo-2.0.1 @@ -0,0 +1,10 @@ +Section: misc +Priority: optional +Standards-Version: 2.3.3 + +Package: foo +Version: 2.0.1 +Section: system +Maintainer: John Doe <john@doe.com> +Architecture: all +Description: Dummy package diff --git a/test/integration/targets/setup_deb_repo/meta/main.yml b/test/integration/targets/setup_deb_repo/meta/main.yml new file mode 100644 index 0000000..1810d4b --- /dev/null +++ b/test/integration/targets/setup_deb_repo/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - setup_remote_tmp_dir diff --git a/test/integration/targets/setup_deb_repo/tasks/main.yml b/test/integration/targets/setup_deb_repo/tasks/main.yml new file mode 100644 index 0000000..471fb2a --- /dev/null +++ b/test/integration/targets/setup_deb_repo/tasks/main.yml @@ -0,0 +1,75 @@ +- block: + - name: Install needed packages + apt: + name: "{{ item }}" + with_items: + - dpkg-dev + - equivs + - libfile-fcntllock-perl # to silence warning by equivs-build + + - set_fact: + repodir: /tmp/repo/ + + - name: Create repo dirs + file: + path: "{{ repodir }}/dists/{{ item }}/main/binary-all" + state: directory + mode: 0755 + loop: + - stable + - testing + + - name: Copy package specs to remote + copy: + src: package_specs + dest: "{{ remote_tmp_dir }}" + + - name: Create deb files + shell: "find {{ remote_tmp_dir }}/package_specs/{{ item }} -type f -exec equivs-build {} \\;" + args: + chdir: "{{ repodir }}/dists/{{ item }}/main/binary-all" + loop: + - stable + - testing + + - name: Create repo Packages + shell: dpkg-scanpackages --multiversion . /dev/null dists/{{ item }}/main/binary-all/ | gzip -9c > Packages.gz + args: + chdir: "{{ repodir }}/dists/{{ item }}/main/binary-all" + loop: + - stable + - testing + + - name: Create repo Release + copy: + content: | + Codename: {{ item.0 }} + {% for k,v in item.1.items() %} + {{ k }}: {{ v }} + {% endfor %} + dest: "{{ repodir }}/dists/{{ item.0 }}/Release" + loop: + - [stable, {}] + - [testing, {NotAutomatic: "yes", ButAutomaticUpgrades: "yes"}] + + - name: Install the repo + apt_repository: + repo: deb [trusted=yes arch=all] file:{{ repodir }} {{ item }} main + update_cache: false # interferes with task 'Test update_cache 1' + loop: + - stable + - testing + + # Need to uncomment the deb-src for the universe component for build-dep state + - name: Ensure deb-src for the universe component + lineinfile: + path: /etc/apt/sources.list + backrefs: True + regexp: ^#\s*deb-src http://archive\.ubuntu\.com/ubuntu/ (\w*){{ item }} universe$ + line: deb-src http://archive.ubuntu.com/ubuntu \1{{ item }} universe + state: present + with_items: + - '' + - -updates + + when: ansible_distribution in ['Ubuntu', 'Debian'] |