Use kitchen-docker for integration testing
This commit is contained in:
parent
e293ecc585
commit
93629df739
@ -1,162 +0,0 @@
|
|||||||
---
|
|
||||||
driver_config:
|
|
||||||
digitalocean_client_id: <%= ENV['DIGITAL_OCEAN_CLIENT_ID'] %>
|
|
||||||
digitalocean_api_key: <%= ENV['DIGITAL_OCEAN_API_KEY'] %>
|
|
||||||
google_client_email: <%= ENV['GOOGLE_CLIENT_EMAIL'] %>
|
|
||||||
google_key_location: <%= ENV['GOOGLE_KEY_LOCATION'] %>
|
|
||||||
google_project: <%= ENV['GOOGLE_PROJECT'] %>
|
|
||||||
joyent_username: <%= ENV['SDC_CLI_ACCOUNT'] %>
|
|
||||||
joyent_keyfile: <%= ENV['SDC_CLI_IDENTITY'] %>
|
|
||||||
joyent_keyname: <%= ENV['SDC_CLI_KEY_ID'] %>
|
|
||||||
joyent_url: <%= ENV['SDC_CLI_URL'] %>
|
|
||||||
aws_access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
|
|
||||||
aws_secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
|
|
||||||
aws_ssh_key_id: <%= ENV['AWS_KEYPAIR_NAME'] %>
|
|
||||||
availability_zone: <%= ENV['AWS_AVAILABILITY_ZONE'] %>
|
|
||||||
|
|
||||||
provisioner:
|
|
||||||
name: chef_zero
|
|
||||||
require_chef_omnibus: 11.12.8
|
|
||||||
|
|
||||||
platforms:
|
|
||||||
- name: centos-5.8
|
|
||||||
driver_plugin: digitalocean
|
|
||||||
driver_config:
|
|
||||||
image_id: 1601
|
|
||||||
flavor_id: 63
|
|
||||||
region_id: 4
|
|
||||||
ssh_key_ids: <%= ENV['DIGITAL_OCEAN_SSH_KEY_IDS'] %>
|
|
||||||
ssh_key: <%= ENV['DIGITAL_OCEAN_SSH_KEY_PATH'] %>
|
|
||||||
|
|
||||||
- name: centos-6.5
|
|
||||||
driver_plugin: digitalocean
|
|
||||||
driver_config:
|
|
||||||
image_id: 3448641
|
|
||||||
flavor_id: 63
|
|
||||||
region_id: 4
|
|
||||||
ssh_key_ids: <%= ENV['DIGITAL_OCEAN_SSH_KEY_IDS'] %>
|
|
||||||
ssh_key: <%= ENV['DIGITAL_OCEAN_SSH_KEY_PATH'] %>
|
|
||||||
|
|
||||||
- name: amazon-2013.09
|
|
||||||
driver_plugin: ec2
|
|
||||||
driver_config:
|
|
||||||
image_id: ami-3be4bc52
|
|
||||||
username: ec2-user
|
|
||||||
ssh_key: <%= ENV['EC2_SSH_KEY_PATH'] %>
|
|
||||||
|
|
||||||
- name: amazon-2014.03
|
|
||||||
driver_plugin: ec2
|
|
||||||
driver_config:
|
|
||||||
image_id: ami-6b726502
|
|
||||||
username: ec2-user
|
|
||||||
ssh_key: <%= ENV['EC2_SSH_KEY_PATH'] %>
|
|
||||||
|
|
||||||
# - name: fedora-19
|
|
||||||
# driver_plugin: digitalocean
|
|
||||||
# driver_config:
|
|
||||||
# image_id: 3102879
|
|
||||||
# flavor_id: 63
|
|
||||||
# region_id: 4
|
|
||||||
# ssh_key_ids: <%= ENV['DIGITAL_OCEAN_SSH_KEY_IDS'] %>
|
|
||||||
# ssh_key: <%= ENV['DIGITAL_OCEAN_SSH_KEY_PATH'] %>
|
|
||||||
|
|
||||||
- name: debian-7.0
|
|
||||||
driver_plugin: gce
|
|
||||||
driver_config:
|
|
||||||
image_name: debian-7-wheezy-v20131120
|
|
||||||
zone: <%= ENV['GCE_ZONE'] %>
|
|
||||||
area: <%= ENV['GCE_AREA'] %>
|
|
||||||
network: <%= ENV['GCE_NETWORK'] %>
|
|
||||||
username: <%= ENV['GCE_USERNAME'] %>
|
|
||||||
public_key_path: <%= ENV['GCE_PUBLIC_KEY_PATH'] %>
|
|
||||||
ssh_key: <%= ENV['GCE_SSH_KEY_PATH'] %>
|
|
||||||
run_list:
|
|
||||||
- recipe[apt]
|
|
||||||
|
|
||||||
- name: ubuntu-10.04
|
|
||||||
driver_plugin: digitalocean
|
|
||||||
driver_config:
|
|
||||||
image_id: 14097
|
|
||||||
flavor_id: 63
|
|
||||||
region_id: 4
|
|
||||||
ssh_key_ids: <%= ENV['DIGITAL_OCEAN_SSH_KEY_IDS'] %>
|
|
||||||
ssh_key: <%= ENV['DIGITAL_OCEAN_SSH_KEY_PATH'] %>
|
|
||||||
run_list:
|
|
||||||
- recipe[apt]
|
|
||||||
|
|
||||||
- name: ubuntu-12.04
|
|
||||||
driver_plugin: digitalocean
|
|
||||||
driver_config:
|
|
||||||
image_id: 3101045
|
|
||||||
flavor_id: 63
|
|
||||||
region_id: 4
|
|
||||||
ssh_key_ids: <%= ENV['DIGITAL_OCEAN_SSH_KEY_IDS'] %>
|
|
||||||
ssh_key: <%= ENV['DIGITAL_OCEAN_SSH_KEY_PATH'] %>
|
|
||||||
run_list:
|
|
||||||
- recipe[apt]
|
|
||||||
|
|
||||||
- name: ubuntu-14.04
|
|
||||||
driver_plugin: digitalocean
|
|
||||||
driver_config:
|
|
||||||
image_id: 3240036
|
|
||||||
flavor_id: 63
|
|
||||||
region_id: 4
|
|
||||||
ssh_key_ids: <%= ENV['DIGITAL_OCEAN_SSH_KEY_IDS'] %>
|
|
||||||
ssh_key: <%= ENV['DIGITAL_OCEAN_SSH_KEY_PATH'] %>
|
|
||||||
run_list:
|
|
||||||
- recipe[apt]
|
|
||||||
|
|
||||||
- name: smartos-13.4.0
|
|
||||||
driver_plugin: joyent
|
|
||||||
driver_config:
|
|
||||||
joyent_image_id: ff86eb8a-a069-11e3-ae0e-4f3c8983a91c
|
|
||||||
joyent_flavor_id: g3-standard-4-smartos
|
|
||||||
username: root
|
|
||||||
ssh_key: <%= ENV['SDC_CLI_IDENTITY'] %>
|
|
||||||
busser:
|
|
||||||
ruby_bindir: '/opt/local/bin/'
|
|
||||||
provisioner:
|
|
||||||
name: chef_zero
|
|
||||||
sudo: false
|
|
||||||
chef_omnibus_url: https://raw.github.com/test-kitchen/kitchen-joyent/master/scripts/install-smartos.sh
|
|
||||||
|
|
||||||
- name: omnios-151006
|
|
||||||
driver_plugin: ec2
|
|
||||||
driver_config:
|
|
||||||
image_id: ami-35eb835c
|
|
||||||
flavor_id: m3.medium
|
|
||||||
username: root
|
|
||||||
ssh_key: <%= ENV['EC2_SSH_KEY_PATH'] %>
|
|
||||||
provisioner:
|
|
||||||
name: chef_zero
|
|
||||||
run_list:
|
|
||||||
- recipe[ips-omniti]
|
|
||||||
|
|
||||||
suites:
|
|
||||||
- name: default
|
|
||||||
run_list:
|
|
||||||
- recipe[postfix]
|
|
||||||
attributes: {}
|
|
||||||
|
|
||||||
- name: aliases
|
|
||||||
run_list:
|
|
||||||
- recipe[postfix::aliases]
|
|
||||||
attributes: {}
|
|
||||||
|
|
||||||
- name: client
|
|
||||||
run_list:
|
|
||||||
- recipe[postfix::client]
|
|
||||||
attributes: {}
|
|
||||||
|
|
||||||
- name: server
|
|
||||||
run_list:
|
|
||||||
- recipe[postfix::server]
|
|
||||||
attributes: {}
|
|
||||||
|
|
||||||
- name: sasl_auth
|
|
||||||
run_list:
|
|
||||||
- recipe[postfix::sasl_auth]
|
|
||||||
attributes:
|
|
||||||
postfix:
|
|
||||||
main :
|
|
||||||
smtp_sasl_auth_enable: "yes"
|
|
63
.kitchen.docker.yml
Normal file
63
.kitchen.docker.yml
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
settings:
|
||||||
|
parallel: true
|
||||||
|
|
||||||
|
driver:
|
||||||
|
name: docker
|
||||||
|
# privileged is required otherwise the container doesn't boot right
|
||||||
|
privileged: true
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
- name: centos-7.1
|
||||||
|
driver:
|
||||||
|
image: centos:7
|
||||||
|
platform: rhel
|
||||||
|
run_command: /usr/lib/systemd/systemd
|
||||||
|
provision_command:
|
||||||
|
- /bin/yum install -y initscripts net-tools wget
|
||||||
|
- name: ubuntu-12.04
|
||||||
|
driver:
|
||||||
|
image: ubuntu-upstart:12.04
|
||||||
|
platform: ubuntu
|
||||||
|
disable_upstart: false
|
||||||
|
run_command: /sbin/init
|
||||||
|
provision_command:
|
||||||
|
- /usr/bin/apt-get update
|
||||||
|
- /usr/bin/apt-get install apt-transport-https net-tools -y
|
||||||
|
- name: ubuntu-14.04
|
||||||
|
driver:
|
||||||
|
image: ubuntu-upstart:14.04
|
||||||
|
platform: ubuntu
|
||||||
|
disable_upstart: false
|
||||||
|
run_command: /sbin/init
|
||||||
|
provision_command:
|
||||||
|
- /usr/bin/apt-get update
|
||||||
|
- /usr/bin/apt-get install apt-transport-https net-tools -y
|
||||||
|
|
||||||
|
suites:
|
||||||
|
- name: default
|
||||||
|
run_list:
|
||||||
|
- recipe[postfix]
|
||||||
|
|
||||||
|
- name: aliases
|
||||||
|
run_list:
|
||||||
|
- recipe[postfix::aliases]
|
||||||
|
|
||||||
|
- name: client
|
||||||
|
run_list:
|
||||||
|
- recipe[postfix::client]
|
||||||
|
|
||||||
|
- name: server
|
||||||
|
run_list:
|
||||||
|
- recipe[postfix::server]
|
||||||
|
|
||||||
|
- name: sasl_auth
|
||||||
|
run_list:
|
||||||
|
- recipe[postfix::sasl_auth]
|
||||||
|
attributes:
|
||||||
|
postfix:
|
||||||
|
main:
|
||||||
|
relayhost: "localhost"
|
||||||
|
smtp_sasl_auth_enable: "yes"
|
||||||
|
sasl:
|
||||||
|
smtp_sasl_user_name: "kitchenuser"
|
||||||
|
smtp_sasl_passwd: "not-a-real-thing"
|
27
.travis.yml
27
.travis.yml
@ -1,5 +1,8 @@
|
|||||||
# Use Travis's cointainer based infrastructure
|
rvm: 2.2
|
||||||
sudo: false
|
|
||||||
|
sudo: required
|
||||||
|
|
||||||
|
# install the pre-release chef-dk. Use chef-stable-precise to install the stable release
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
sources:
|
sources:
|
||||||
@ -7,22 +10,28 @@ addons:
|
|||||||
packages:
|
packages:
|
||||||
- chefdk
|
- chefdk
|
||||||
|
|
||||||
|
services: docker
|
||||||
|
|
||||||
|
env:
|
||||||
|
matrix:
|
||||||
|
- INSTANCE=default-ubuntu-1404
|
||||||
|
- INSTANCE=default-ubuntu-1204
|
||||||
|
- INSTANCE=default-centos-71
|
||||||
|
|
||||||
# Don't `bundle install`
|
# Don't `bundle install`
|
||||||
install: echo "skip bundle install"
|
install: echo "skip bundle install"
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
|
|
||||||
# Ensure we make ChefDK's Ruby the default
|
# Ensure we make ChefDK's Ruby the default
|
||||||
before_script:
|
before_script:
|
||||||
|
# https://github.com/zuazo/kitchen-in-travis-native/issues/1#issuecomment-142230889
|
||||||
|
- sudo iptables -L DOCKER || ( echo "DOCKER iptables chain missing" ; sudo iptables -N DOCKER )
|
||||||
- eval "$(/opt/chefdk/bin/chef shell-init bash)"
|
- eval "$(/opt/chefdk/bin/chef shell-init bash)"
|
||||||
# We have to install chef-sugar for ChefSpec
|
- /opt/chefdk/embedded/bin/chef gem install kitchen-docker
|
||||||
- /opt/chefdk/embedded/bin/chef gem install chef-sugar
|
|
||||||
script:
|
script:
|
||||||
- /opt/chefdk/embedded/bin/chef --version
|
- /opt/chefdk/embedded/bin/chef --version
|
||||||
- /opt/chefdk/embedded/bin/rubocop --version
|
- /opt/chefdk/embedded/bin/rubocop --version
|
||||||
- /opt/chefdk/embedded/bin/rubocop
|
- /opt/chefdk/embedded/bin/rubocop
|
||||||
- /opt/chefdk/embedded/bin/foodcritic --version
|
- /opt/chefdk/embedded/bin/foodcritic --version
|
||||||
- /opt/chefdk/embedded/bin/foodcritic . --exclude spec
|
- /opt/chefdk/embedded/bin/foodcritic . --exclude spec
|
||||||
- /opt/chefdk/embedded/bin/rspec spec
|
- /opt/chefdk/embedded/bin/rspec
|
||||||
|
- KITCHEN_LOCAL_YAML=.kitchen.docker.yml /opt/chefdk/embedded/bin/kitchen verify ${INSTANCE}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user