@@ -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