rancher-partner-charts/scripts/regenerate-assets

74 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
set -e
# Note: These scripts are only intended to migrate from the original build scripts to charts-build-scripts v0.1.x
# A separate migration process is required for v0.2.x
cd $(dirname $0)
if [[ -z ${BRANCH} ]]; then
branch=$(git rev-parse --abbrev-ref HEAD)
else
echo "Using branch ${BRANCH}"
branch=${BRANCH}
fi
if [[ -z ${REPOSITORY} ]]; then
echo "Need to provide REPOSITORY as environment variable"
exit 1
fi
cd ..
# Setup
rm -rf ./repository
mkdir -p ./repository
cd repository
# Pull in branch
echo "Pulling in ${REPOSITORY}@${branch}"
git clone --depth 1 --branch ${branch} ${REPOSITORY} . > /dev/null 2>&1
if ! (test -d assets && test -d charts); then
echo "There are no charts or assets in this repository"
cd ..
rm -rf ./repository
exit 1
fi
# Copy assets and charts into the new format
for package_assets in assets/*; do
cp -R ${package_assets} ../assets
package_name=$(basename -- ${package_assets})
for asset in ${package_assets}/*; do
if [[ ${asset} =~ .*\.tgz ]]; then
# Parse structure
asset_name=$(basename -- ${asset%.*})
chart_name=$(echo ${asset_name} | rev | cut -d- -f2- | rev)
chart_name=$(echo ${chart_name} | sed -r 's/-[[:digit:]\.]+$//')
chart_version=${asset_name#${chart_name}-}
# Fix chart version for rc version
# e.g. 0.0.0-rc100 -> 0.0.000-rc1 to keep the drop release candidate version logic simple
if [[ ${chart_version} =~ [0-9]{2}$ ]] && [[ ${chart_version} =~ -rc ]]; then
actual_version=${chart_version%-*}
package_version=${chart_version: -2}
chart_version_without_package_version=${chart_version%${package_version}}
rc_version=${chart_version_without_package_version#${actual_version}}
chart_version=${actual_version}${package_version}${rc_version}
fi
# Dump archives as charts
chart_path=../charts/${package_name}/${chart_name}/${chart_version}
echo "Unarchiving ${asset} to ${chart_path}"
mkdir -p ${chart_path}
tar xvzf ${asset} -C ${chart_path} --strip-components=1 > /dev/null 2>&1
fi
done
done
# Go back
cd ..
helm repo index --merge ./assets/index.yaml --url assets assets
mv ./assets/index.yaml ./index.yaml
rm -rf ./repository