From 793b95233d5313121d69ead1963afa151b8f63ab Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Tue, 25 Jun 2019 23:15:33 +0100 Subject: [PATCH] ci(kitchen+travis): modify matrix to include `develop` platform * Use balanced matrix based on `template-formula` guidelines * Initial ref: https://github.com/saltstack-formulas/template-formula/issues/118 --- .travis.yml | 43 +++++---- kitchen.yml | 253 +++++++++++++++++++++------------------------------- 2 files changed, 124 insertions(+), 172 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0c36b50..0c5b206 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,28 +11,34 @@ language: ruby services: - docker -before_install: - - gem install bundler - - bundle install - # Make sure the instances listed below match up with # the `platforms` defined in `kitchen.yml` env: matrix: - - INSTANCE: v2019-2-py3-debian-9 - - INSTANCE: v2019-2-py3-ubuntu-1804 - - INSTANCE: v2019-2-py2-centos-7 - - INSTANCE: v2019-2-py2-fedora-29 - - - INSTANCE: v2018-3-py2-debian-8 - - INSTANCE: v2018-3-py2-ubuntu-1604 - - INSTANCE: v2018-3-py2-bootstrap-centos-6 - - INSTANCE: v2018-3-py2-forced-version-fedora-28 - - INSTANCE: v2018-3-py2-opensuse-423 - - - INSTANCE: v2017-7-py2-debian-8 - - INSTANCE: v2017-7-py2-ubuntu-1604 - - INSTANCE: v2017-7-py2-bootstrap-centos-6 + - INSTANCE: default-debian-9-develop-py3 + # - INSTANCE: default-ubuntu-1804-develop-py3 + # - INSTANCE: default-centos-7-develop-py3 + # - INSTANCE: default-fedora-29-develop-py3 + # - INSTANCE: default-opensuse-leap-15-develop-py3 + # - INSTANCE: default-debian-9-2019-2-py3 + - INSTANCE: default-ubuntu-1804-2019-2-py3 + - INSTANCE: default-centos-7-2019-2-py3 + # - INSTANCE: default-fedora-29-2019-2-py3 + # - INSTANCE: default-opensuse-leap-15-2019-2-py3 + # - INSTANCE: default-debian-9-2018-3-py2 + # - INSTANCE: default-ubuntu-1604-2018-3-py2 + # - INSTANCE: default-centos-7-2018-3-py2 + - INSTANCE: default-fedora-29-2018-3-py2 + # TODO: Use this when fixed instead of `opensuse-leap-42` + # Ref: https://github.com/netmanagers/salt-image-builder/issues/2 + # - INSTANCE: default-opensuse-leap-15-2018-3-py2 + - INSTANCE: default-opensuse-leap-42-2018-3-py2 + # - INSTANCE: default-debian-8-2017-7-py2 + # - INSTANCE: default-ubuntu-1604-2017-7-py2 + # TODO: Enable after improving the formula to work with other than `systemd` + - INSTANCE: default-centos-6-2017-7-py2 + # - INSTANCE: default-fedora-28-2017-7-py2 + # - INSTANCE: default-opensuse-leap-42-2017-7-py2 script: - bundle exec kitchen verify ${INSTANCE} @@ -69,4 +75,3 @@ jobs: script: # Run `semantic-release` - npx semantic-release@15 - diff --git a/kitchen.yml b/kitchen.yml index 23fe3eb..81852e4 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -1,37 +1,115 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml --- +# For help on this file's format, see https://kitchen.ci/ driver: name: docker use_sudo: false privileged: true - provision_command: mkdir -p /run/sshd run_command: /lib/systemd/systemd +# Make sure the platforms listed below match up with +# the `env.matrix` instances defined in `.travis.yml` platforms: - # Latest distros - - name: debian-9 - - name: ubuntu-18.04 - - name: centos-7 - - name: fedora-29 - - name: opensuse-42.3 + ## SALT `develop` + - name: debian-9-develop-py3 driver: - run_command: /usr/lib/systemd/systemd + image: netmanagers/salt-develop-py3:debian-9 + provision_command: + - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com + - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop + - name: ubuntu-1804-develop-py3 + driver: + image: netmanagers/salt-develop-py3:ubuntu-18.04 + provision_command: + - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com + - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop + - name: centos-7-develop-py3 + driver: + image: netmanagers/salt-develop-py3:centos-7 provision_command: - - systemctl enable sshd.service + - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com + - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop + - name: fedora-29-develop-py3 + driver: + image: netmanagers/salt-develop-py3:fedora-29 + provision_command: + - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com + - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop + - name: opensuse-leap-15-develop-py3 + driver: + image: netmanagers/salt-develop-py3:opensuse-leap-15 + provision_command: + - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com + - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop + run_command: /usr/lib/systemd/systemd - # Previous distros - - name: debian-8 - - name: ubuntu-16.04 - - name: fedora-28 - # centos-6 guest fails on Debian hosts due to vsyscall issues, see - # https://hub.docker.com/_/centos, "A note about vsyscall" - - name: centos-6 + ## SALT 2019.2 + - name: debian-9-2019-2-py3 + driver: + image: netmanagers/salt-2019.2-py3:debian-9 + - name: ubuntu-1804-2019-2-py3 + driver: + image: netmanagers/salt-2019.2-py3:ubuntu-18.04 + - name: centos-7-2019-2-py3 + driver: + image: netmanagers/salt-2019.2-py3:centos-7 + - name: fedora-29-2019-2-py3 + driver: + image: netmanagers/salt-2019.2-py3:fedora-29 + - name: opensuse-leap-15-2019-2-py3 + driver: + image: netmanagers/salt-2019.2-py3:opensuse-leap-15 + 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: fedora-29-2018-3-py2 driver: + image: netmanagers/salt-2018.3-py2:fedora-29 + # TODO: Use this when fixed instead of `opensuse-leap-42` + # Ref: https://github.com/netmanagers/salt-image-builder/issues/2 + # - name: opensuse-leap-15-2018-3-py2 + # driver: + # image: netmanagers/salt-2018.3-py2:opensuse-leap-15 + # run_command: /usr/lib/systemd/systemd + - name: opensuse-leap-42-2018-3-py2 + driver: + image: netmanagers/salt-2018.3-py2:opensuse-leap-42 + run_command: /usr/lib/systemd/systemd + + ## SALT 2017.7 + - name: debian-8-2017-7-py2 + driver: + image: netmanagers/salt-2017.7-py2:debian-8 + - name: ubuntu-1604-2017-7-py2 + driver: + image: netmanagers/salt-2017.7-py2:ubuntu-16.04 + # TODO: Modify the formula to work for non-`systemd` platforms + - name: centos-6-2017-7-py2 + driver: + image: netmanagers/salt-2017.7-py2:centos-6 run_command: /sbin/init + - name: fedora-28-2017-7-py2 + driver: + image: netmanagers/salt-2017.7-py2:fedora-28 + - name: opensuse-leap-42-2017-7-py2 + driver: + image: netmanagers/salt-2017.7-py2:opensuse-leap-42 + run_command: /usr/lib/systemd/systemd provisioner: name: salt_solo log_level: info - salt_version: latest + salt_install: none require_chef: false formula: collectd salt_copy_filter: @@ -50,145 +128,14 @@ provisioner: collectd.sls: test/salt/default/pillar/collectd.sls verifier: + # https://www.inspec.io/ name: inspec sudo: true + # cli, documentation, html, progress, json, json-min, json-rspec, junit reporter: - cli + inspec_tests: + - path: test/integration/default suites: - # Latest distros, latest salt, python3 - # These distros have py3 packages available in salt's repo - - name: v2019-2-py3 - includes: - - debian-9 - - ubuntu-18.04 - provisioner: - salt_bootstrap_options: -X -x python3 -d git %s - salt_version: '2019.2' - pillars: - salt.sls: - salt: - release: '2019.2' - py_ver: 'py3' - - verifier: - inspec_tests: - #- path: test/integration/2019-2 - - path: test/integration/default - - # Latest distros, latest salt, python2 - # Fedora ships updated py2 versions in their own repos - - name: v2019-2-py2 - includes: - - centos-7 - - fedora-29 - provisioner: - salt_version: '2019.2' - pillars: - salt.sls: - salt: - release: '2019.2' - py_ver: 'py2' - - verifier: - inspec_tests: - #- path: test/integration/2019-2 - - path: test/integration/default - - # Previous distros, previous salt, python2 - - name: v2018-3-py2 - includes: - - debian-8 - - ubuntu-16.04 - - opensuse-42.3 - provisioner: - # We require an old version of salt in the provisioner or, - # the salt formula fails to downgrade to the desired version to test - salt_version: '2018.3' - pillars: - salt.sls: - salt: - release: '2018.3' - py_ver: 'py2' - verifier: - inspec_tests: - #- path: test/integration/2018-3 - - path: test/integration/default - - # centos-6 ships with python2.6, so it requires extra bootstrapping parameters - # to install python2.7 - - name: v2018-3-py2-bootstrap - includes: - - centos-6 - provisioner: - salt_bootstrap_options: -X -d stable %s - salt_version: '2018.3' - pillars: - salt.sls: - salt: - release: '2018.3' - py_ver: 'py2' - verifier: - inspec_tests: - #- path: test/integration/2018-3 - - path: test/integration/default - - # To tests fedora 28 & salt v2018.2, we need to force the package version - # otherwise the image, which includes the 'updates' repo, will install 2019.2 - - name: v2018-3-py2-forced-version - includes: - - fedora-28 - provisioner: - # We require an old version of salt in the provisioner or, - # the salt formula fails to downgrade to the desired version to test - salt_version: '2018.3' - pillars: - salt.sls: - salt: - release: '2018.3' - py_ver: 'py2' - version: '2018.3.0-1.fc28' - - verifier: - inspec_tests: - #- path: test/integration/2018-3 - - path: test/integration/default - - # Previous distros, oldest salt, python2 - - name: v2017-7-py2 - includes: - - debian-8 - - ubuntu-16.04 - provisioner: - # We require an old version of salt in the provisioner or, - # the salt formula fails to downgrade to the desired version to test - salt_version: '2017.7' - pillars: - salt.sls: - salt: - release: '2017.7' - py_ver: 'py2' - verifier: - inspec_tests: - #- path: test/integration/2017-7 - - path: test/integration/default - - # centos-6 ships with python2.6, so it requires extra bootstrapping parameters - # to install python2.7 - - name: v2017-7-py2-bootstrap - includes: - - centos-6 - provisioner: - # As centos-6 ships with python2.6, we use the bootstrapper to install python2.7 - salt_bootstrap_options: -X -d stable %s - salt_version: '2017.7' - pillars: - salt.sls: - salt: - release: '2017.7' - py_ver: 'py2' - verifier: - inspec_tests: - #- path: test/integration/2017-7 - - path: test/integration/default - + - name: default