Merge pull request #11872 from soapy1/spec-test-download-deb

Run vagrant-spec tests
This commit is contained in:
Sophia Castellarin 2020-09-04 09:44:29 -05:00 committed by GitHub
commit 1d0da02e9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 47 additions and 31 deletions

View File

@ -1,4 +1,4 @@
# last-modified: Thu Aug 6 16:45:05 UTC 2020
# last-modified: Thu Sep 3 20:54:51 UTC 2020
#!/usr/bin/env bash
# Path to file used for output redirect
@ -546,5 +546,6 @@ repository="${GITHUB_REPOSITORY}"
repo_owner="${repository%/*}"
repo_name="${repository#*/}"
asset_cache="${ASSETS_PRIVATE_SHORTTERM}/${repository}/${GITHUB_ACTION}"
job_id="${GITHUB_ACTION}-${GITHUB_RUN_ID}"
run_number="${GITHUB_RUN_NUMBER}"
run_id="${GITHUB_RUN_ID}"
job_id="${run_id}-${run_number}"

View File

@ -4,18 +4,25 @@ csource="${BASH_SOURCE[0]}"
while [ -h "$csource" ] ; do csource="$(readlink "$csource")"; done
root="$( cd -P "$( dirname "$csource" )/../../" && pwd )"
. "${root}/.ci/spec/env.sh"
. "${root}/.ci/common.sh"
. "${root}/.ci/spec/env.sh"
pushd "${root}" > "${output}"
echo "Cleaning up packet device..."
unset PACKET_EXEC_PERSIST
unset PACKET_EXEC_PRE_BUILTINS
# spec test configuration, defined by action runners, used by Vagrant on packet
export PKT_VAGRANT_HOST_BOXES="${VAGRANT_HOST_BOXES}"
export PKT_VAGRANT_GUEST_BOXES="${VAGRANT_GUEST_BOXES}"
# other vagrant-spec options
export PKT_VAGRANT_HOST_MEMORY="${VAGRANT_HOST_MEMORY:-10000}"
export PKT_VAGRANT_CWD="test/vagrant-spec/"
export PKT_VAGRANT_VAGRANTFILE=Vagrantfile.spec
pkt_wrap_stream "vagrant destroy -f" \
###
wrap_stream packet-exec run -- "vagrant destroy -f" \
"Vagrant failed to destroy remaining vagrant-spec guests during clean up"

View File

@ -4,16 +4,11 @@ csource="${BASH_SOURCE[0]}"
while [ -h "$csource" ] ; do csource="$(readlink "$csource")"; done
root="$( cd -P "$( dirname "$csource" )/../../" && pwd )"
. "${root}/.ci/spec/env.sh"
. "${root}/.ci/common.sh"
. "${root}/.ci/spec/env.sh"
pushd "${root}" > "${output}"
# Assumes packet is already set up
# job_id is provided by common.sh
export PACKET_EXEC_REMOTE_DIRECTORY="${job_id}"
# spec test configuration, defined by action runners, used by Vagrant on packet
export PKT_VAGRANT_HOST_BOXES="${VAGRANT_HOST_BOXES}"
export PKT_VAGRANT_GUEST_BOXES="${VAGRANT_GUEST_BOXES}"
@ -24,7 +19,19 @@ export PKT_VAGRANT_VAGRANTFILE=Vagrantfile.spec
###
# Grab vagrant-spec gem and place inside root dir of Vagrant repo
download_assets "${ASSETS_PRIVATE_BUCKET}/vagrant-spec/vagrant-spec.gem" "."
wrap aws s3 cp "${ASSETS_PRIVATE_BUCKET}/hashicorp/vagrant-spec/vagrant-spec.gem" "vagrant-spec.gem" \
"Could not download vagrant-spec.gem from s3 asset bucket"
###
# Grab vagrant installer and place inside root dir of Vagrant repo
if [ -z "${VAGRANT_PRERELEASE_VERSION}" ]; then
INSTALLER_URL=`curl -s https://api.github.com/repos/hashicorp/vagrant-installers/releases | jq -r '.[0].assets[] | select(.name | contains("_x86_64.deb")) | .browser_download_url'`
else
INSTALLER_URL=`curl -s https://api.github.com/repos/hashicorp/vagrant-installers/releases/tags/${VAGRANT_PRERELEASE_VERSION} | jq -r '.assets[] | select(.name | contains("_x86_64.deb")) | .browser_download_url'`
fi
wrap curl -fLO ${INSTALLER_URL} \
"Could not download vagrant installers"
###
# Run the job

View File

@ -4,8 +4,8 @@ csource="${BASH_SOURCE[0]}"
while [ -h "$csource" ] ; do csource="$(readlink "$csource")"; done
root="$( cd -P "$( dirname "$csource" )/../../" && pwd )"
. "${root}/.ci/spec/env.sh"
. "${root}/.ci/common.sh"
. "${root}/.ci/spec/env.sh"
pushd "${root}" > "${output}"

View File

@ -8,7 +8,10 @@ export PACKET_EXEC_DEVICE_NAME="${PACKET_EXEC_DEVICE_NAME:-spec-ci-boxes}"
export PACKET_EXEC_DEVICE_SIZE="${PACKET_EXEC_DEVICE_SIZE:-baremetal_0,baremetal_1,baremetal_1e}"
export PACKET_EXEC_PREFER_FACILITIES="${PACKET_EXEC_PREFER_FACILITIES:-iad1,iad2,ewr1,dfw1,dfw2,sea1,sjc1,lax1}"
export PACKET_EXEC_OPERATING_SYSTEM="${PACKET_EXEC_OPERATING_SYSTEM:-ubuntu_18_04}"
export PACKET_EXEC_PRE_BUILTINS="${PACKET_EXEC_PRE_BUILTINS:-InstallVagrant,InstallVirtualBox,InstallVmware,InstallHashiCorpTool,InstallVagrantVmware}"
export PACKET_EXEC_PRE_BUILTINS="${PACKET_EXEC_PRE_BUILTINS:-InstallVagrant,InstallVirtualBox,InstallVmware,InstallVagrantVmware}"
export PACKET_EXEC_QUIET="1"
export PACKET_EXEC_PERSIST="1"
# job_id is provided by common.sh
export PACKET_EXEC_REMOTE_DIRECTORY="${job_id}"
export PKT_VAGRANT_CLOUD_TOKEN="${VAGRANT_CLOUD_TOKEN}"
###

View File

@ -4,31 +4,27 @@ csource="${BASH_SOURCE[0]}"
while [ -h "$csource" ] ; do csource="$(readlink "$csource")"; done
root="$( cd -P "$( dirname "$csource" )/../../" && pwd )"
. "${root}/.ci/spec/env.sh"
. "${root}/.ci/common.sh"
. "${root}/.ci/spec/env.sh"
pushd "${root}" > "${output}"
# Assumes packet is already set up
# job_id is provided by common.sh
export PACKET_EXEC_REMOTE_DIRECTORY="${job_id}"
unset PACKET_EXEC_PRE_BUILTINS
# spec test configuration, defined by action runners, used by Vagrant on packet
export PKT_VAGRANT_HOST_BOXES="${VAGRANT_HOST_BOXES}"
export PKT_VAGRANT_GUEST_BOXES="${VAGRANT_GUEST_BOXES}"
# other vagrant-spec options
export PKT_VAGRANT_HOST_MEMORY=10000
export PKT_VAGRANT_HOST_MEMORY="${VAGRANT_HOST_MEMORY:-10000}"
export PKT_VAGRANT_CWD="test/vagrant-spec/"
export PKT_VAGRANT_VAGRANTFILE=Vagrantfile.spec
###
# Run the job
echo "Running vagrant spec tests..."
# Need to make memory customizable for windows hosts
pkt_wrap_stream "vagrant provision --provider vmware_desktop" \
wrap_stream packet-exec run "vagrant provision" \
"Vagrant Blackbox testing command failed"
echo "Finished vagrant spec tests"

View File

@ -1,10 +1,9 @@
on:
push:
workflow_dispatch:
branches:
- 'spec-test-*'
paths-ignore:
- 'CHANGELOG.md'
- 'website/**'
- 'master'
repository_dispatch:
types: [prerelease]
jobs:
setup-packet:
@ -12,8 +11,10 @@ jobs:
runs-on: self-hosted
name: Build Packet Instance
steps:
- name: Code Checkout
uses: actions/checkout@v1
- name: Create packet instance
run: .ci/spec/create-packet.sh
run: ./.ci/spec/create-packet.sh
working-directory: ${{github.workspace}}
setup-hosts:
@ -29,11 +30,12 @@ jobs:
- name: Code Checkout
uses: actions/checkout@v1
- name: Create packet host for tests
run: .ci/spec/create-hosts.sh
run: ./.ci/spec/create-hosts.sh
working-directory: ${{github.workspace}}
env:
VAGRANT_HOST_BOXES: ${{matrix.host_os}}
VAGRANT_GUEST_BOXES: ${{matrix.guest_os}}
VAGRANT_PRERELEASE_VERSION: ${{ github.event.client_payload.prerelease_version }}
spec-tests:
if: github.repository == 'hashicorp/vagrant-blackbox'
@ -46,7 +48,7 @@ jobs:
guest_os: ['hashicorp-vagrant/ubuntu-16.04']
steps:
- name: Run Tests with host ${{ matrix.host_os }} using guest ${{ matrix.guest_os }}
run: .ci/spec/run-test.sh
run: ./.ci/spec/run-test.sh
working-directory: ${{github.workspace}}
env:
VAGRANT_HOST_BOXES: ${{matrix.host_os}}
@ -60,7 +62,7 @@ jobs:
steps:
- name: Clean Packet
if: always()
run: .ci/spec/clean-packet.sh
run: ./.ci/spec/clean-packet.sh
- name: Clean Workspace
if: always()
run: rm -rf ${{ github.workspace }}

View File

@ -8,7 +8,7 @@ apt-get install -qy nfs-kernel-server
pushd /vagrant
dpkg -i ./pkg/dist/vagrant_*_x86_64.deb
dpkg -i vagrant_*_x86_64.deb
vagrant plugin install ./vagrant-spec.gem
popd