0

I've been using test-kitchen locally with Vagrant to run serverspec tests and haven't had any major problems. I'm now setting up my CI process with test-kitchen, and using kitchen-google Gem to provision servers and run my serverspec test suite.

I have test-kitchen creating servers in my GCE project correctly, however my tests are failing because some necessary files aren't being synced up to the remote server. Ideally I'd like to sync multiple folders to the home directory of the remote machine. Something along the lines of:

"./scripts", "/home/test/"
"./scripts2, "/home/test/"

My .kitchen.gce.yml file is below, how can I dictate which files I'd like synced to my remote machines?

---
driver:
  name: gce
  project: test-project
  email: email@test-project.iam.gserviceaccount.com
  machine_type: f1-micro
  service_account_name: email@test-project.iam.gserviceaccount.com
  tags:
    - test-kitchen
  service_account_scopes:
    - https://www.googleapis.com/auth/compute # Full control access to Google Compute Engine methods.
  zone: us-central1-a

provisioner:
  name: chef_zero
  require_chef_omnibus: <%= ENV['CHEF_VERSION'] || '12.10.24' %>

transport:
  name: sftp
  username: test
  ssh_key:
    - ~/.ssh/test-key

platforms:
  - name: centos-6
    driver:
      image_name: centos-6-v20160526
  - name: ubuntu-1404
    driver:
      image_name: ubuntu-1404-trusty-v20160516

verifier:
  busser:
    sudo: true

suites:
  - name: default
user387049
  • 6,647
  • 8
  • 53
  • 55

1 Answers1

0

The answer was to set the data_path provisioner setting. I had looked into this previously, but nowhere in the test-kitchen docs do they mention where these files are synced, so I assumed I had an incorrect setting.

My kitchen.yml file now looks like:

provisioner:
  data_path: "." # Syncs files in path to /tmp/kitchen/data
  name: chef_zero
  require_chef_omnibus: <%= ENV['CHEF_VERSION'] || '12.10.24' %>

The above syncs all the files in the current directory to /tmp/kitchen/data.

user387049
  • 6,647
  • 8
  • 53
  • 55