From 4a5f8053e938569814a2043405416c74b8c990fd Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Sat, 21 Mar 2020 11:30:25 +0000 Subject: [PATCH] ci(kitchen+travis): adjust matrix to add `3000` & remove `2017.7` * Semi-automated using https://github.com/myii/ssf-formula/pull/135 --- .travis.yml | 39 +++--- kitchen.yml | 168 +++++++++++++++----------- test/integration/v3000-py2/README.md | 50 ++++++++ test/integration/v3000-py2/inspec.yml | 18 +++ test/integration/v3000-py3/README.md | 50 ++++++++ test/integration/v3000-py3/inspec.yml | 18 +++ 6 files changed, 254 insertions(+), 89 deletions(-) create mode 100644 test/integration/v3000-py2/README.md create mode 100644 test/integration/v3000-py2/inspec.yml create mode 100644 test/integration/v3000-py3/README.md create mode 100644 test/integration/v3000-py3/inspec.yml diff --git a/.travis.yml b/.travis.yml index c5835de..7071db7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,30 +58,27 @@ jobs: ## Define the rest of the matrix based on Kitchen testing # Make sure the instances listed below match up with # the `platforms` defined in `kitchen.yml` - # The ordering used below has been selected based on the time required in Travis - # The slower ones are kept as high up as possible, to run concurrently rather than - # slow down the entire run at the end (i.e. `centos-6` and `opensuse`) - # However, the groupings needed to be maintained in some semblance of order - # so this is a best-effort matrix, in the circumstances - # - env: INSTANCE=v201707-py2-debian-8-2017-7-py2 - - env: INSTANCE=v201707-py2-ubuntu-1604-2017-7-py2 - - env: INSTANCE=v201707-py2-centos-6-2017-7-py2 - # - env: INSTANCE=v201707-py2-amazonlinux-1-2017-7-py2 - # - env: INSTANCE=v201707-py2-arch-base-latest-2017-7-py2 - - env: INSTANCE=v201803-py2-debian-9-2018-3-py2 - # - env: INSTANCE=v201803-py2-ubuntu-1604-2018-3-py2 - - env: INSTANCE=v201803-py2-centos-7-2018-3-py2 - # - env: INSTANCE=v201803-py2-amazonlinux-1-2018-3-py2 - # - env: INSTANCE=v201803-py2-arch-base-latest-2018-3-py2 - - env: INSTANCE=v201902-py2-ubuntu-1804-2019-2-py2 - # - env: INSTANCE=v201902-py2-centos-7-2019-2-py2 - - env: INSTANCE=v201902-py3-amazonlinux-2-2019-2-py3 - # - env: INSTANCE=v201902-py2-arch-base-latest-2019-2-py2 - - env: INSTANCE=v201902-py3-debian-10-2019-2-py3 - # - env: INSTANCE=v201902-py3-debian-9-2019-2-py3 + - env: INSTANCE=v3000-py3-debian-10-3000-py3 + - env: INSTANCE=v3000-py3-ubuntu-1804-3000-py3 + - env: INSTANCE=v3000-py3-centos-8-3000-py3 + - env: INSTANCE=v3000-py3-fedora-31-3000-py3 + # - env: INSTANCE=v3000-py3-opensuse-leap-151-3000-py3 + - env: INSTANCE=v3000-py3-amazonlinux-2-3000-py3 + # - env: INSTANCE=v3000-py2-arch-base-latest-3000-py2 + # - env: INSTANCE=v201902-py3-debian-10-2019-2-py3 + - env: INSTANCE=v201902-py3-debian-9-2019-2-py3 # - env: INSTANCE=v201902-py3-ubuntu-1804-2019-2-py3 # - env: INSTANCE=v201902-py3-centos-8-2019-2-py3 - env: INSTANCE=v201902-py3-opensuse-leap-151-2019-2-py3 + # - env: INSTANCE=v201902-py3-amazonlinux-2-2019-2-py3 + - env: INSTANCE=v201902-py2-ubuntu-1804-2019-2-py2 + # - env: INSTANCE=v201902-py2-centos-7-2019-2-py2 + # - env: INSTANCE=v201902-py2-arch-base-latest-2019-2-py2 + # - env: INSTANCE=v201803-py2-debian-9-2018-3-py2 + - env: INSTANCE=v201803-py2-ubuntu-1604-2018-3-py2 + - env: INSTANCE=v201803-py2-centos-7-2018-3-py2 + # - env: INSTANCE=v201803-py2-amazonlinux-1-2018-3-py2 + # - env: INSTANCE=v201803-py2-arch-base-latest-2018-3-py2 ## Define the release stage that runs `semantic-release` - stage: 'release' diff --git a/kitchen.yml b/kitchen.yml index 6c69f74..7cf0df0 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -11,59 +11,36 @@ driver: # Make sure the platforms listed below match up with # the `env.matrix` instances defined in `.travis.yml` platforms: - ## SALT `2017.7` - - name: debian-8-2017-7-py2 + ## SALT `3000` + - name: debian-10-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:debian-8 - - name: ubuntu-1604-2017-7-py2 + image: netmanagers/salt-3000-py3:debian-10 + - name: ubuntu-1804-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:ubuntu-16.04 - - name: centos-6-2017-7-py2 + image: netmanagers/salt-3000-py3:ubuntu-18.04 + - name: centos-8-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:centos-6 - run_command: /sbin/init - - name: amazonlinux-1-2017-7-py2 + image: netmanagers/salt-3000-py3:centos-8 + - name: fedora-31-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:amazonlinux-1 - run_command: /sbin/init - - name: arch-base-latest-2017-7-py2 + image: netmanagers/salt-3000-py3:fedora-31 + - name: opensuse-leap-151-3000-py3 driver: - image: netmanagers/salt-2017.7-py2:arch-base-latest + image: netmanagers/salt-3000-py3:opensuse-leap-15.1 run_command: /usr/lib/systemd/systemd - - ## SALT `2018.3` - - name: debian-9-2018-3-py2 + # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: + # => SCP did not finish successfully (255): (Net::SCP::Error) + transport: + max_ssh_sessions: 1 + - name: amazonlinux-2-3000-py3 driver: - image: netmanagers/salt-2018.3-py2:debian-9 - - name: ubuntu-1604-2018-3-py2 + image: netmanagers/salt-3000-py3:amazonlinux-2 + - name: arch-base-latest-3000-py2 driver: - image: netmanagers/salt-2018.3-py2:ubuntu-16.04 - - name: centos-7-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:centos-7 - - name: amazonlinux-1-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:amazonlinux-1 - run_command: /sbin/init - - name: arch-base-latest-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:arch-base-latest + image: netmanagers/salt-3000-py2:arch-base-latest run_command: /usr/lib/systemd/systemd ## SALT `2019.2` - - name: ubuntu-1804-2019-2-py2 - driver: - image: netmanagers/salt-2019.2-py2:ubuntu-18.04 - - name: centos-7-2019-2-py2 - driver: - image: netmanagers/salt-2019.2-py2:centos-7 - - name: amazonlinux-2-2019-2-py3 - driver: - image: netmanagers/salt-2019.2-py3:amazonlinux-2 - - name: arch-base-latest-2019-2-py2 - driver: - image: netmanagers/salt-2019.2-py2:arch-base-latest - run_command: /usr/lib/systemd/systemd - name: debian-10-2019-2-py3 driver: image: netmanagers/salt-2019.2-py3:debian-10 @@ -87,6 +64,38 @@ platforms: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 + - name: amazonlinux-2-2019-2-py3 + driver: + image: netmanagers/salt-2019.2-py3:amazonlinux-2 + - name: ubuntu-1804-2019-2-py2 + driver: + image: netmanagers/salt-2019.2-py2:ubuntu-18.04 + - name: centos-7-2019-2-py2 + driver: + image: netmanagers/salt-2019.2-py2:centos-7 + - name: arch-base-latest-2019-2-py2 + driver: + image: netmanagers/salt-2019.2-py2:arch-base-latest + run_command: /usr/lib/systemd/systemd + + ## SALT `2018.3` + - name: debian-9-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:debian-9 + - name: ubuntu-1604-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:ubuntu-16.04 + - name: centos-7-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:centos-7 + - name: amazonlinux-1-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:amazonlinux-1 + run_command: /sbin/init + - name: arch-base-latest-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:arch-base-latest + run_command: /usr/lib/systemd/systemd provisioner: name: salt_solo @@ -107,6 +116,55 @@ verifier: - cli suites: + - name: v3000-py3 + includes: + - debian-10-3000-py3 + - ubuntu-1804-3000-py3 + - centos-8-3000-py3 + - fedora-31-3000-py3 + - opensuse-leap-151-3000-py3 + - amazonlinux-2-3000-py3 + provisioner: + state_top: + base: + '*': + - salt.pkgrepo + - salt.master + - salt.minion + pillars: + top.sls: + base: + '*': + - salt + - v3000-py3 + pillars_from_files: + salt.sls: test/salt/pillar/salt.sls + v3000-py3.sls: test/salt/pillar/v3000-py3.sls + verifier: + inspec_tests: + - path: test/integration/v3000-py3 + - name: v3000-py2 + includes: + - arch-base-latest-3000-py2 + provisioner: + state_top: + base: + '*': + - salt.pkgrepo + - salt.master + - salt.minion + pillars: + top.sls: + base: + '*': + - salt + - v3000-py2 + pillars_from_files: + salt.sls: test/salt/pillar/salt.sls + v3000-py2.sls: test/salt/pillar/v3000-py2.sls + verifier: + inspec_tests: + - path: test/integration/v3000-py2 - name: v201902-py3 includes: - debian-10-2019-2-py3 @@ -184,29 +242,3 @@ suites: verifier: inspec_tests: - path: test/integration/v201803-py2 - - name: v201707-py2 - includes: - - debian-8-2017-7-py2 - - ubuntu-1604-2017-7-py2 - - centos-6-2017-7-py2 - - amazonlinux-1-2017-7-py2 - - arch-base-latest-2017-7-py2 - provisioner: - state_top: - base: - '*': - - salt.pkgrepo - - salt.master - - salt.minion - pillars: - top.sls: - base: - '*': - - salt - - v201707-py2 - pillars_from_files: - salt.sls: test/salt/pillar/salt.sls - v201707-py2.sls: test/salt/pillar/v201707-py2.sls - verifier: - inspec_tests: - - path: test/integration/v201707-py2 diff --git a/test/integration/v3000-py2/README.md b/test/integration/v3000-py2/README.md new file mode 100644 index 0000000..85dda6c --- /dev/null +++ b/test/integration/v3000-py2/README.md @@ -0,0 +1,50 @@ +# InSpec Profile: `v3000-py2` + +This shows the implementation of the `v3000-py2` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md). + +## Verify a profile + +InSpec ships with built-in features to verify a profile structure. + +```bash +$ inspec check v3000-py2 +Summary +------- +Location: v3000-py2 +Profile: profile +Controls: 4 +Timestamp: 2019-06-24T23:09:01+00:00 +Valid: true + +Errors +------ + +Warnings +-------- +``` + +## Execute a profile + +To run all **supported** controls on a local machine use `inspec exec /path/to/profile`. + +```bash +$ inspec exec v3000-py2 +.. + +Finished in 0.0025 seconds (files took 0.12449 seconds to load) +8 examples, 0 failures +``` + +## Execute a specific control from a profile + +To run one control from the profile use `inspec exec /path/to/profile --controls name`. + +```bash +$ inspec exec v3000-py2 --controls package +. + +Finished in 0.0025 seconds (files took 0.12449 seconds to load) +1 examples, 0 failures +``` + +See an [example control here](https://github.com/inspec/inspec/blob/master/examples/profile/controls/example.rb). diff --git a/test/integration/v3000-py2/inspec.yml b/test/integration/v3000-py2/inspec.yml new file mode 100644 index 0000000..a70fde0 --- /dev/null +++ b/test/integration/v3000-py2/inspec.yml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +name: v3000-py2 +title: salt formula +maintainer: SaltStack Formulas +license: Apache-2.0 +summary: Verify that Salt `v3000-py2` is setup and configured +supports: + - platform-name: debian + - platform-name: ubuntu + - platform-name: centos + - platform-name: fedora + - platform-name: opensuse + - platform-name: suse + - platform-name: freebsd + - platform-name: amazon + - platform-name: arch diff --git a/test/integration/v3000-py3/README.md b/test/integration/v3000-py3/README.md new file mode 100644 index 0000000..f638bb3 --- /dev/null +++ b/test/integration/v3000-py3/README.md @@ -0,0 +1,50 @@ +# InSpec Profile: `v3000-py3` + +This shows the implementation of the `v3000-py3` InSpec [profile](https://github.com/inspec/inspec/blob/master/docs/profiles.md). + +## Verify a profile + +InSpec ships with built-in features to verify a profile structure. + +```bash +$ inspec check v3000-py3 +Summary +------- +Location: v3000-py3 +Profile: profile +Controls: 4 +Timestamp: 2019-06-24T23:09:01+00:00 +Valid: true + +Errors +------ + +Warnings +-------- +``` + +## Execute a profile + +To run all **supported** controls on a local machine use `inspec exec /path/to/profile`. + +```bash +$ inspec exec v3000-py3 +.. + +Finished in 0.0025 seconds (files took 0.12449 seconds to load) +8 examples, 0 failures +``` + +## Execute a specific control from a profile + +To run one control from the profile use `inspec exec /path/to/profile --controls name`. + +```bash +$ inspec exec v3000-py3 --controls package +. + +Finished in 0.0025 seconds (files took 0.12449 seconds to load) +1 examples, 0 failures +``` + +See an [example control here](https://github.com/inspec/inspec/blob/master/examples/profile/controls/example.rb). diff --git a/test/integration/v3000-py3/inspec.yml b/test/integration/v3000-py3/inspec.yml new file mode 100644 index 0000000..883400b --- /dev/null +++ b/test/integration/v3000-py3/inspec.yml @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +name: v3000-py3 +title: salt formula +maintainer: SaltStack Formulas +license: Apache-2.0 +summary: Verify that Salt `v3000-py3` is setup and configured +supports: + - platform-name: debian + - platform-name: ubuntu + - platform-name: centos + - platform-name: fedora + - platform-name: opensuse + - platform-name: suse + - platform-name: freebsd + - platform-name: amazon + - platform-name: arch