1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/integration/targets/pkgng/tasks/main.yml
Ross Williams 7f30ac8a5b pkgng: add state=latest test
Including small filesize out-of-date package from
FreeBSD 11 package repository, because FreeBSD 11 is
currently EOL. This test might fail at some point in the
future if the pkg utility in a FreeBSD version > 14
makes breaking changes that prevents it from installing
older package formats.

If that occurs, the fix is to replace
`files/freebsd-release-manifests-20210413__FreeBSD_11.pkg`
with the version of freebsd-release-manifests from the oldest
non-breaking release of FreeBSD, and update the
references to it in tasks/main.yml accordingly.
2021-10-11 02:11:26 +00:00

248 lines
7.5 KiB
YAML

---
- name: Test on FreeBSD VMs
when:
- ansible_facts.distribution == 'FreeBSD'
block:
##
## pkgng - example - state=present for single package
##
- name: Verify zsh binary is not present
stat:
path: /usr/local/bin/zsh
get_attributes: no
get_checksum: no
get_mime: no
register: pkgng_example1_stat_before
- name: Install zsh
pkgng:
name: zsh
register: pkgng_example1
- name: Remove zsh (checkmode)
pkgng:
name: zsh
state: absent
check_mode: yes
register: pkgng_example1_checkmode
- name: Install zsh (idempotent)
pkgng:
name: zsh
register: pkgng_example1_idempotent
- name: Verify zsh binary is present
stat:
path: /usr/local/bin/zsh
get_attributes: no
get_checksum: no
get_mime: no
register: pkgng_example1_stat_after
- name: Ensure pkgng installs package correctly
assert:
that:
- not pkgng_example1_stat_before.stat.exists
- pkgng_example1.changed
- pkgng_example1_checkmode.changed
- not pkgng_example1_idempotent.changed
- pkgng_example1_stat_after.stat.exists
- pkgng_example1_stat_after.stat.executable
##
## pkgng - example - state=latest for already up-to-date package
##
- name: Upgrade zsh (idempotent)
pkgng:
name: zsh
state: latest
register: pkgng_example2
- name: Ensure pkgng does not upgrade up-to-date package
assert:
that:
- not pkgng_example2.changed
## pkgng - example - state=absent for single package
##
- name: Verify zsh binary is present
stat:
path: /usr/local/bin/zsh
get_attributes: no
get_checksum: no
get_mime: no
register: pkgng_example3_stat_before
- name: Install zsh (checkmode)
pkgng:
name: zsh
check_mode: yes
register: pkgng_example3_checkmode
- name: Remove zsh
pkgng:
name: zsh
state: absent
register: pkgng_example3
- name: Remove zsh (idempotent)
pkgng:
name: zsh
state: absent
register: pkgng_example3_idempotent
- name: Verify zsh binary is not present
stat:
path: /usr/local/bin/zsh
get_attributes: no
get_checksum: no
get_mime: no
register: pkgng_example3_stat_after
- name: Ensure pkgng installs package correctly
assert:
that:
- pkgng_example3_stat_before.stat.exists
- pkgng_example3_stat_before.stat.executable
- not pkgng_example3_checkmode.changed
- pkgng_example3.changed
- not pkgng_example3_idempotent.changed
- not pkgng_example3_stat_after.stat.exists
##
## pkgng - example - state=latest for out-of-date package
##
- name: Install intentionally out-of-date package and upgrade it
#
# NOTE: The out-of-date package provided is from the FreeBSD 11 package repo.
# FreeBSD 11 was EOL at the time of writing, 2021-10-08, so this test
# will only run on FreeBSD major versions > 11.
#
# This test might fail at some point in the
# future if the pkg utility in a FreeBSD version > 14
# makes breaking changes that prevents it from installing
# older package formats.
#
# If that occurs, the fix is to replace
# `files/freebsd-release-manifests-20210413__FreeBSD_11.pkg`
# with the version of freebsd-release-manifests from the oldest
# non-breaking release of FreeBSD, update the
# references to it in tasks/main.yml accordingly,
# and update the minimum version number for the test,
# immediately below.
#
when: ansible_distribution_version is version('12.0', '>=')
block:
- name: Copy intentionally out-of-date package to testhost
copy:
src: freebsd-release-manifests-20210413__FreeBSD_11.pkg
dest: /tmp/
follow: yes
- name: Force-install out-of-date package
command: pkg add -f /tmp/freebsd-release-manifests-20210413__FreeBSD_11.pkg
register: pkgng_example4_prepare
- name: Check for any available package upgrades (checkmode)
pkgng:
name: '*'
state: latest
check_mode: yes
register: pkgng_example4_wildcard_checkmode
- name: Check for available package upgrade (checkmode)
pkgng:
name: freebsd-release-manifests
state: latest
check_mode: yes
register: pkgng_example4_checkmode
- name: Upgrade out-of-date package
pkgng:
name: freebsd-release-manifests
state: latest
register: pkgng_example4
- name: Upgrade out-of-date package (idempotent)
pkgng:
name: freebsd-release-manifests
state: latest
register: pkgng_example4_idempotent
- name: Remove test out-of-date package
pkgng:
name: freebsd-release-manifests
state: absent
- name: Ensure pkgng upgrades package correctly
assert:
that:
- not pkgng_example4_prepare.failed
- pkgng_example4_wildcard_checkmode.changed
- pkgng_example4_checkmode.changed
- pkgng_example4.changed
- not pkgng_example4_idempotent.changed
##
## pkgng - example - Install zsh in jail
##
- name: Test within jail
#
# NOTE: FreeBSD 12.0 test runner receives a "connection reset by peer" after ~20% downloaded so we are
# only running this on 12.1 or higher
#
when: ansible_distribution_version is version('12.01', '>=')
block:
- name: Setup testjail
include: setup-testjail.yml
- name: Verify zsh binary is not present
stat:
path: /usr/jails/testjail/usr/local/bin/zsh
get_attributes: no
get_checksum: no
get_mime: no
register: pkgng_jail_example1_stat_before
- name: Install zsh
pkgng:
name: zsh
jail: testjail
register: pkgng_jail_example1
- name: Remove zsh (checkmode)
pkgng:
name: zsh
state: absent
jail: testjail
check_mode: yes
register: pkgng_jail_example1_checkmode
- name: Install zsh (idempotent)
pkgng:
name: zsh
jail: testjail
register: pkgng_jail_example1_idempotent
- name: Verify zsh binary is present
stat:
path: /usr/jails/testjail/usr/local/bin/zsh
get_attributes: no
get_checksum: no
get_mime: no
register: pkgng_jail_example1_stat_after
- name: Ensure pkgng installs package correctly
assert:
that:
- not pkgng_jail_example1_stat_before.stat.exists
- pkgng_jail_example1.changed
- pkgng_jail_example1_checkmode.changed
- not pkgng_jail_example1_idempotent.changed
- pkgng_jail_example1_stat_after.stat.exists
- pkgng_jail_example1_stat_after.stat.executable
always:
- name: Stop and remove testjail
failed_when: false
changed_when: false
command: "ezjail-admin delete -wf testjail"