Skip to content

Commit 5d55625

Browse files
committed
Support old CSV format
1 parent aa3e0e2 commit 5d55625

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

scripts/release_hex.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ function main {
1818
hex_version=$1
1919
installs_dir="$PWD/tmp/installs"
2020
hex_csv="${installs_dir}/hex.csv"
21+
hex_1x_csv="${installs_dir}/hex-1.x.csv"
2122

2223
rm -rf "${installs_dir}"
2324
mkdir "${installs_dir}"
@@ -26,8 +27,19 @@ function main {
2627
touch "${hex_csv}"
2728
sed -i.bak "/^${hex_version},/d" "${hex_csv}"
2829

30+
s3down hex-1.x.csv "${hex_1x_csv}" || true
31+
touch "${hex_1x_csv}"
32+
sed -i.bak "/^${hex_version},/d" "${hex_1x_csv}"
33+
2934
# UPDATE THIS FOR EVERY RELEASE, ORDER MATTERS
3035

36+
# Elixir v1.12-v1.16 (old CSV format)
37+
build_old ${hex_version} 22.3 1.12.3 1.12.0 xenial-20200212
38+
build_old ${hex_version} 22.3 1.13.4 1.13.0 xenial-20200212
39+
build_old ${hex_version} 23.3 1.14.2 1.14.0 xenial-20210114
40+
build_old ${hex_version} 24.3.4.17 1.15.8 1.15.0 focal-20240427
41+
build_old ${hex_version} 24.3.4.17 1.16.3 1.16.0 focal-20240427
42+
3143
# Elixir v1.17
3244
build ${hex_version} 25.3.2.20 1.17.3 1.17.0 noble-20250404
3345
build ${hex_version} 26.2.5.11 1.17.3 1.17.0 noble-20250404
@@ -40,9 +52,11 @@ function main {
4052

4153
rm -rf _build
4254
rm "${hex_csv}.bak"
55+
rm "${hex_1x_csv}.bak"
4356

4457
if [ -n "${ELIXIR_PEM}" ]; then
4558
openssl dgst -sha512 -sign "${ELIXIR_PEM}" "${hex_csv}" | openssl base64 > "${hex_csv}.signed"
59+
openssl dgst -sha512 -sign "${ELIXIR_PEM}" "${hex_1x_csv}" | openssl base64 > "${hex_1x_csv}.signed"
4660

4761
cd $installs_dir
4862
for path in $(find . -type f | sort); do
@@ -52,12 +66,41 @@ function main {
5266
done
5367

5468
purge_key "${HEX_FASTLY_BUILDS_SERVICE_ID}" "installs"
69+
sleep 5
70+
purge_key "${HEX_FASTLY_BUILDS_SERVICE_ID}" "installs"
5571
else
5672
echo "ELIXIR_PEM is empty, skipping"
5773
exit 1
5874
fi
5975
}
6076

77+
# $1 = hex version
78+
# $2 = erlang version
79+
# $3 = elixir version
80+
# $4 = saved elixir version
81+
# $5 = ubuntu version
82+
function build_old {
83+
hex_version=$1
84+
otp_version=$2
85+
elixir_version=$3
86+
saved_elixir_version=$4
87+
ubuntu_version=$5
88+
89+
echo "Building ${elixir_version} ${otp_version} ${ubuntu_version} (old format)"
90+
rm -rf _build src/mix_safe_erl_term.erl
91+
hex_ez=hex-${hex_version}.ez
92+
93+
mkdir -p "$installs_dir/${saved_elixir_version}"
94+
docker run -v $(pwd):/hex hexpm/elixir:${elixir_version}-erlang-${otp_version}-ubuntu-${ubuntu_version} sh -c " \
95+
cd /hex && \
96+
MIX_ENV=prod mix archive.build -o ${hex_ez}"
97+
98+
mv "${hex_ez}" "${installs_dir}/${saved_elixir_version}/${hex_ez}"
99+
sha=$(shasum -a 512 "${installs_dir}/${saved_elixir_version}/${hex_ez}")
100+
sha=($sha)
101+
echo "${hex_version},${sha},${saved_elixir_version}" >> "${hex_1x_csv}"
102+
}
103+
61104
# $1 = hex version
62105
# $2 = erlang version
63106
# $3 = elixir version

0 commit comments

Comments
 (0)