Provides scripts for building, storing, and releasing Vagrant via builders. Includes updates for testing and removal of deprecated CI configuration.
63 lines
1.9 KiB
Bash
Executable File
63 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
ghr_version="0.13.0"
|
|
|
|
# NOTE: This release will generate a new release on the installers
|
|
# repository which in turn triggers a full package build
|
|
target_owner="hashicorp"
|
|
target_repository="vagrant-builders"
|
|
|
|
csource="${BASH_SOURCE[0]}"
|
|
while [ -h "$csource" ] ; do csource="$(readlink "$csource")"; done
|
|
root="$( cd -P "$( dirname "$csource" )/../" && pwd )"
|
|
|
|
. "${root}/.ci/init.sh"
|
|
|
|
pushd "${root}" > "${output}"
|
|
|
|
# Install ghr
|
|
wrap curl -Lso /tmp/ghr.tgz "https://github.com/tcnksm/ghr/releases/download/v${ghr_version}/ghr_v${ghr_version}_linux_amd64.tar.gz" \
|
|
"Failed to download ghr utility"
|
|
wrap tar -C /tmp/ -xf /tmp/ghr.tgz \
|
|
"Failed to unpack ghr archive"
|
|
wrap mv "/tmp/ghr_v${ghr_version}_linux_amd64/ghr" "${root}/.ci/" \
|
|
"Failed to install ghr utility"
|
|
|
|
# Build our gem
|
|
wrap gem build *.gemspec \
|
|
"Failed to build Vagrant RubyGem"
|
|
|
|
# Get the path of our new gem
|
|
g=(vagrant*.gem)
|
|
gem=$(printf "%s" "${g}")
|
|
|
|
# Determine the version of the release
|
|
vagrant_version="$(gem specification "${gem}" version)"
|
|
vagrant_version="${vagrant_version##*version: }"
|
|
|
|
# We want to release into the builders repository so
|
|
# update the repository variable with the desired destination
|
|
repo_owner="${target_owner}"
|
|
repo_name="${target_repository}"
|
|
full_sha="master"
|
|
|
|
export GITHUB_TOKEN="${HASHIBOT_TOKEN}"
|
|
|
|
if [ "${tag}" = "" ]; then
|
|
echo "Generating Vagrant RubyGem pre-release... "
|
|
version="v${vagrant_version}+${short_sha}"
|
|
prerelease "${version}" "${gem}"
|
|
else
|
|
# Validate this is a proper release version
|
|
valid_release_version "${vagrant_version}"
|
|
if [ $? -ne 0 ]; then
|
|
fail "Invalid version format for Vagrant release: ${vagrant_version}"
|
|
fi
|
|
|
|
echo "Generating Vagrant RubyGem release... "
|
|
version="v${vagrant_version}"
|
|
release "${version}" "${gem}"
|
|
fi
|
|
|
|
slack -m "New Vagrant installers release triggered: *${version}*"
|