add kitchen tests

This commit is contained in:
Bryce Larson 2020-04-09 14:37:05 -06:00
parent 35352ec8ca
commit f82173fb2e
No known key found for this signature in database
GPG key ID: 131C38B0F02DB4CA
3 changed files with 174 additions and 0 deletions

View file

@ -3,6 +3,10 @@ stages:
- lint
- test
include:
- local: 'cicd/kitchen_template.yml'
- local: 'cicd/kitchen_testruns.yml'
# pre-commit-run-all:
# image:
# name: registry.gitlab.com/saltstack/pop/cicd/containers/ubuntu1804:latest

47
cicd/kitchen_template.yml Normal file
View file

@ -0,0 +1,47 @@
.run-kitchen:
image: ruby:2.6.3
stage: test
tags:
- saltstack-kitchen
variables:
FORCE_FULL: 'true'
GOLDEN_IMAGES_CI_BRANCH: master
NOX_ENABLE_FROM_FILENAMES: 'true'
NOX_ENV_NAME: runtests-zeromq
NOX_PASSTHROUGH_OPTS: '--ssh-tests'
SALT_KITCHEN_DRIVER: kitchen-conf/driver.yml
SALT_KITCHEN_PLATFORMS: kitchen-conf/nox-platforms.yml
SALT_KITCHEN_VERIFIER: kitchen-conf/nox-verifier.yml
TEST_SUITE: py3
USE_SPOT_INSTANCES: 'true'
script:
- apt update
- apt -y install moreutils rsync dos2unix
- mkdir -p ~/.ssh
- echo "${KITCHEN_SSHKEY}" | tr -d '\r' > ~/.ssh/kitchen.pem
- chmod 700 ~/.ssh/
- chmod 600 ~/.ssh/kitchen.pem
- git clone https://gitlab.com/saltstack/open/cicd/kitchen-conf.git
- bundle install --with ec2 windows --without docker vagrant
- t=$(shuf -i 30-150 -n 1); echo "Sleeping $t seconds"; sleep $t
- if [ "${USE_SPOT_INSTANCES}" == "true" ]; then cp -f kitchen-conf/spot.yml .kitchen.local.yml; fi
- 'bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM || (bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM; rm .kitchen.local.yml; bundle exec kitchen create $TEST_SUITE-$TEST_PLATFORM)'
- bundle exec kitchen diagnose $TEST_SUITE-$TEST_PLATFORM > kitchen-diagnose-info.txt
- grep 'image_id:' kitchen-diagnose-info.txt
- grep 'instance_type:' -A5 kitchen-diagnose-info.txt
- rm -f kitchen-diagnose-info.txt
- rm -f .kitchen.local.yml
- ssh-agent /bin/bash -xc 'ssh-add ~/.ssh/kitchen.pem; bundle exec kitchen converge $TEST_SUITE-$TEST_PLATFORM'
- TEST_EXIT_CODE=0
- 'DONT_DOWNLOAD_ARTEFACTS=1 bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM|ts -s || TEST_EXIT_CODE=$?'
- 'ONLY_DOWNLOAD_ARTEFACTS=1 bundle exec kitchen verify $TEST_SUITE-$TEST_PLATFORM|ts -s || true'
- bundle exec kitchen destroy $TEST_SUITE-$TEST_PLATFORM
- exit $TEST_EXIT_CODE
artifacts:
when: always
paths:
- artifacts/
- .kitchen/
expire_in: 6 months

123
cicd/kitchen_testruns.yml Normal file
View file

@ -0,0 +1,123 @@
kitchen-amazon2-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: amazon-2
kitchen-archlts-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: arch-lts
kitchen-archlts-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: arch-lts
NOX_PASSTHROUGH_OPTS: '-n integration.modules.test_pkg'
kitchen-centos7-py3-m2crypto:
extends: .run-kitchen
variables:
TEST_PLATFORM: centos-7
NOX_ENV_NAME: runtests-zeromq-m2crypto
kitchen-centos7-py3-proxy:
extends: .run-kitchen
variables:
TEST_PLATFORM: centos-7
NOX_PASSTHROUGH_OPTS: '--proxy'
kitchen-centos7-py3-pycryptodomex:
extends: .run-kitchen
variables:
TEST_PLATFORM: centos-7
NOX_ENV_NAME: runtests-zeromq-pycryptodomex
kitchen-centos7-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: centos-7
kitchen-centos7-py3-tcp:
extends: .run-kitchen
variables:
TEST_PLATFORM: centos-7
NOX_ENV_NAME: runtests-tcp
kitchen-centos8-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: centos-8
kitchen-debian9-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: debian-9
kitchen-debian10-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: debian-10
kitchen-fedora30-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: fedora-30
kitchen-fedora31-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: fedora-31
kitchen-opensuse15-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: opensuse-15
kitchen-ubuntu1604-py3-m2crypto:
extends: .run-kitchen
variables:
TEST_PLATFORM: ubuntu-1604
NOX_ENV_NAME: runtests-zeromq-m2crypto
kitchen-ubuntu1604-py3-proxy:
extends: .run-kitchen
variables:
TEST_PLATFORM: ubuntu-1604
NOX_PASSTHROUGH_OPTS: '--proxy'
kitchen-ubuntu1604-py3-pycryptodomex:
extends: .run-kitchen
variables:
TEST_PLATFORM: ubuntu-1604
NOX_ENV_NAME: runtests-zeromq-pycryptodomex
kitchen-ubuntu1604-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: ubuntu-1604
kitchen-ubuntu1604-py3-tcp:
extends: .run-kitchen
variables:
TEST_PLATFORM: ubuntu-1604
NOX_ENV_NAME: runtests-tcp
kitchen-ubuntu1804-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: ubuntu-1804
kitchen-windows2016-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: windows-2016
NOX_PASSTHROUGH_OPTS: '--unit'
USE_SPOT_INSTANCES: 'false'
kitchen-windows2019-py3:
extends: .run-kitchen
variables:
TEST_PLATFORM: windows-2019
NOX_PASSTHROUGH_OPTS: '--unit'
USE_SPOT_INSTANCES: 'false'