2019-01-21 13:20:12 -05:00
|
|
|
#!/usr/bin/env bats
|
|
|
|
#
|
|
|
|
# This tests the hyperone builder. The teardown function will
|
|
|
|
# delete any images with the text "packerbats" within the name.
|
|
|
|
|
|
|
|
load test_helper
|
|
|
|
fixtures builder-hyperone
|
|
|
|
|
|
|
|
# Required parameters
|
|
|
|
: ${HYPERONE_TOKEN:?}
|
|
|
|
: ${HYPERONE_PROJECT:?}
|
|
|
|
command -v h1 >/dev/null 2>&1 || {
|
|
|
|
echo "'h1' must be installed" >&2
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
USER_VARS="${USER_VARS} -var token=${HYPERONE_TOKEN}"
|
|
|
|
USER_VARS="${USER_VARS} -var project=${HYPERONE_PROJECT}"
|
|
|
|
|
|
|
|
hyperone_has_image() {
|
2020-05-18 19:21:00 -04:00
|
|
|
h1 image list --project-select=${HYPERONE_PROJECT} --query "[?tag.${2}=='${3}']" --output=tsv | grep $1 -c
|
2019-01-21 13:20:12 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
teardown() {
|
|
|
|
h1 image list --project-select=${HYPERONE_PROJECT} --output=tsv \
|
|
|
|
| grep packerbats \
|
|
|
|
| awk '{print $1}' \
|
|
|
|
| xargs -n1 h1 image delete --project-select=${HYPERONE_PROJECT} --yes --image
|
|
|
|
}
|
|
|
|
|
|
|
|
@test "hyperone: build minimal.json" {
|
|
|
|
run packer build ${USER_VARS} $FIXTURE_ROOT/minimal.json
|
|
|
|
[ "$status" -eq 0 ]
|
2019-12-03 08:18:49 -05:00
|
|
|
[ "$(hyperone_has_image "packerbats-minimal" "key" "value")" -eq 1 ]
|
2019-01-21 13:20:12 -05:00
|
|
|
}
|
2019-02-09 23:15:22 -05:00
|
|
|
|
2020-05-18 19:21:00 -04:00
|
|
|
@test "hyperone: build new-syntax.pkr.hcl" {
|
|
|
|
run packer build ${USER_VARS} $FIXTURE_ROOT/new-syntax.pkr.hcl
|
|
|
|
[ "$status" -eq 0 ]
|
|
|
|
[ "$(hyperone_has_image "packerbats-hcl" "key" "value")" -eq 1 ]
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2019-02-09 23:15:22 -05:00
|
|
|
@test "hyperone: build chroot.json" {
|
|
|
|
run packer build ${USER_VARS} $FIXTURE_ROOT/chroot.json
|
|
|
|
[ "$status" -eq 0 ]
|
2019-12-03 08:18:49 -05:00
|
|
|
[ "$(hyperone_has_image "packerbats-chroot" "key2" "value2")" -eq 1 ]
|
2019-02-09 23:15:22 -05:00
|
|
|
}
|