2013-12-14 14:27:50 -05:00
|
|
|
#!/usr/bin/env bats
|
|
|
|
#
|
|
|
|
# This tests the googlecompute builder. The teardown function will
|
|
|
|
# delete any images with the text "packerbats" within the name.
|
|
|
|
|
|
|
|
load test_helper
|
|
|
|
fixtures builder-googlecompute
|
|
|
|
|
|
|
|
# Required parameters
|
|
|
|
: ${GC_BUCKET_NAME:?}
|
|
|
|
: ${GC_CLIENT_SECRETS_FILE:?}
|
|
|
|
: ${GC_PRIVATE_KEY_FILE:?}
|
|
|
|
: ${GC_PROJECT_ID:?}
|
|
|
|
command -v gcutil >/dev/null 2>&1 || {
|
|
|
|
echo "'gcutil' must be installed" >&2
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
USER_VARS="-var bucket_name=${GC_BUCKET_NAME}"
|
|
|
|
USER_VARS="${USER_VARS} -var client_secrets_file=${GC_CLIENT_SECRETS_FILE}"
|
|
|
|
USER_VARS="${USER_VARS} -var private_key_file=${GC_PRIVATE_KEY_FILE}"
|
|
|
|
USER_VARS="${USER_VARS} -var project_id=${GC_PROJECT_ID}"
|
|
|
|
|
|
|
|
# This tests if GCE has an image that contains the given parameter.
|
|
|
|
gc_has_image() {
|
|
|
|
gcutil --format=names --project=${GC_PROJECT_ID} listimages \
|
2013-12-14 14:40:27 -05:00
|
|
|
| grep $1 | wc -l
|
2013-12-14 14:27:50 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
teardown() {
|
|
|
|
gcutil --format=names --project=${GC_PROJECT_ID} listimages \
|
|
|
|
| grep packerbats \
|
|
|
|
| xargs -n1 gcutil --project=${GC_PROJECT_ID} --force deleteimage
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "googlecompute: build minimal.json" {
|
|
|
|
run packer build ${USER_VARS} $FIXTURE_ROOT/minimal.json
|
|
|
|
[ "$status" -eq 0 ]
|
2013-12-14 14:40:27 -05:00
|
|
|
[ "$(gc_has_image "packerbats-minimal")" -eq 1 ]
|
2013-12-14 14:27:50 -05:00
|
|
|
}
|