From 93629df7392ae84810401fb8daa5a9e28feef595 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Fri, 23 Oct 2015 16:34:13 -0700 Subject: [PATCH] Use kitchen-docker for integration testing --- .kitchen.cloud.yml | 162 -------------------------------------------- .kitchen.docker.yml | 63 +++++++++++++++++ .travis.yml | 27 +++++--- 3 files changed, 81 insertions(+), 171 deletions(-) delete mode 100644 .kitchen.cloud.yml create mode 100644 .kitchen.docker.yml diff --git a/.kitchen.cloud.yml b/.kitchen.cloud.yml deleted file mode 100644 index bfcfbc6..0000000 --- a/.kitchen.cloud.yml +++ /dev/null @@ -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" diff --git a/.kitchen.docker.yml b/.kitchen.docker.yml new file mode 100644 index 0000000..8472ac7 --- /dev/null +++ b/.kitchen.docker.yml @@ -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" diff --git a/.travis.yml b/.travis.yml index b8e7e02..e7e9178 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,8 @@ -# Use Travis's cointainer based infrastructure -sudo: false +rvm: 2.2 + +sudo: required + +# install the pre-release chef-dk. Use chef-stable-precise to install the stable release addons: apt: sources: @@ -7,22 +10,28 @@ addons: packages: - chefdk +services: docker + +env: + matrix: + - INSTANCE=default-ubuntu-1404 + - INSTANCE=default-ubuntu-1204 + - INSTANCE=default-centos-71 + # Don't `bundle install` install: echo "skip bundle install" -branches: - only: - - master - # Ensure we make ChefDK's Ruby the default 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)" - # We have to install chef-sugar for ChefSpec - - /opt/chefdk/embedded/bin/chef gem install chef-sugar + - /opt/chefdk/embedded/bin/chef gem install kitchen-docker script: - /opt/chefdk/embedded/bin/chef --version - /opt/chefdk/embedded/bin/rubocop --version - /opt/chefdk/embedded/bin/rubocop - /opt/chefdk/embedded/bin/foodcritic --version - /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}