forked from rstudio/helm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
rebuild.sh
executable file
·56 lines (47 loc) · 1.73 KB
/
rebuild.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env bash
# Run this script from the root of the helm repo, e.g.,
# ./scripts/rebuild.sh. You must have curl and cr installed. See
# https://github.com/helm/chart-releaser#installation.
# Set this to a valid URL *without* an index.yaml if you want to regenerate
# a new index.html. If you want to append to an existing one, you can
# use a real address like `https://helm.rstudio.com`. If an existing
# index.yaml is found at this URL, then any packages we generate will
# be appended, which can result in duplicates.
HELM_REPO=${HELM_REPO:-https://rstudio.com}
# Create a temporary directory and clean it up when we're done.
TMP_DIR=$(mktemp -d)
function cleanup()
{
echo "Removing temporary directory ${TMP_DIR}."
rm -rf $TMP_DIR
}
trap cleanup EXIT
# Optional variables you can define in your env
PACKAGE_DIR=${PACKAGE_DIR:-${TMP_DIR}}
CHARTS_DIR=${CHARTS_DIR:-charts}
INDEX=${INDEX:-index.yaml}
GITHUB_OWNER=${GITHUB_OWNER:-rstudio}
GITHUB_REPO=${GITHUB_REPO:-helm}
# Calculated variables
DOWNLOADS_BASE="https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/releases/download"
# List all tags oldest to newest, followed by the 'main' branch.
tags="$(git tag -l --sort=creatordate) main"
# Clean the packages release directory that `cr` uses.
mkdir -p ${PACKAGE_DIR}
rm -rf ${PACKAGE_DIR}/*
# Download existing assets from Github
for tag in $tags; do
dl_url="${DOWNLOADS_BASE}/${tag}/${tag}.tgz"
cd ${PACKAGE_DIR}
curl -LOs --fail ${dl_url}
result=$?
if [[ ${result} -eq 0 ]]; then
echo "Downloaded $dl_url".
else
echo "Could not download $dl_url".
fi
cd -
done
echo "Writing index to ${INDEX}"
rm ${INDEX}
cr index --owner ${GITHUB_OWNER} --git-repo ${GITHUB_REPO} --charts-repo ${HELM_REPO} -p ${PACKAGE_DIR} -i ${INDEX}