Skip to content

Commit 82ea282

Browse files
committed
Better release scripts
1 parent 337c064 commit 82ea282

File tree

5 files changed

+159
-156
lines changed

5 files changed

+159
-156
lines changed

scripts/release/create-release-metadata-for-ghcup.sh

Lines changed: 0 additions & 114 deletions
This file was deleted.
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
set -o pipefail
5+
6+
RELEASE=$1
7+
VERSION=${RELEASE#cabal-install-v}
8+
YV=$(echo "$VERSION" | sed 's/\.//g')
9+
10+
cd "gh-release-artifacts/cabal-${VERSION}"
11+
12+
BASE_URL=https://downloads.haskell.org/~cabal/cabal-install-$VERSION
13+
14+
get_sha() {
15+
sha256sum "$1" | awk '{ print $1 }'
16+
}
17+
18+
print_uri_hash() {
19+
cat <<EOF_INNER > /dev/stdout
20+
dlUri: ${BASE_URL}/$1
21+
dlHash: $(get_sha "$1")
22+
EOF_INNER
23+
}
24+
25+
cat <<EOF > /dev/stdout
26+
$VERSION:
27+
viTags:
28+
- Latest
29+
viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-$RELEASE.md
30+
# uncomment viPostInstall if the release needs a post-install message
31+
# viPostInstall: &cabal-${YV}-post-install |
32+
viArch:
33+
A_64:
34+
Linux_Alpine:
35+
'( >= 3.12 && < 3.20)': &cabal-${YV}-alpine312-64
36+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-alpine312.tar.xz")
37+
'>= 3.20':
38+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-alpine320.tar.xz")
39+
unknown_versioning: *cabal-${YV}-alpine312-64
40+
Linux_UnknownLinux:
41+
unknown_versioning:
42+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-unknown.tar.xz")
43+
Linux_Debian:
44+
'( >= 11 && < 12)': &cabal-${YV}-64-debian11
45+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-deb11.tar.xz")
46+
'( >= 12 && < 13)':
47+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-deb12.tar.xz")
48+
unknown_versioning: *cabal-${YV}-64-debian11
49+
Linux_Fedora:
50+
'( >= 33 && < 36 )': &cabal-${YV}-64-fedora33
51+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-fedora33.tar.xz")
52+
'( >= 36 && < 38 )':
53+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-fedora36.tar.xz")
54+
'>= 38':
55+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-fedora38.tar.xz")
56+
unknown_versioning: *cabal-${YV}-64-fedora33
57+
Linux_Ubuntu:
58+
'(>= 20 && < 22 )': &cabal-${YV}-64-ubuntu20
59+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-ubuntu20.04.tar.xz")
60+
'(>= 22 && < 24 )':
61+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-ubuntu22.04.tar.xz")
62+
'(>= 24 && < 26 )':
63+
$(print_uri_hash "cabal-install-$VERSION-x86_64-linux-ubuntu24.04.tar.xz")
64+
unknown_versioning: *cabal-${YV}-64-ubuntu20
65+
Linux_Mint:
66+
unknown_versioning: *cabal-${YV}-64-ubuntu20
67+
Darwin:
68+
unknown_versioning:
69+
$(print_uri_hash "cabal-install-$VERSION-x86_64-darwin.tar.xz")
70+
Windows:
71+
unknown_versioning:
72+
$(print_uri_hash "cabal-install-$VERSION-x86_64-mingw64.zip")
73+
FreeBSD:
74+
unknown_versioning:
75+
$(print_uri_hash "cabal-install-$VERSION-x86_64-portbld-freebsd.tar.xz")
76+
A_32:
77+
Linux_UnknownLinux:
78+
unknown_versioning: &cabal-${YV}-32
79+
$(print_uri_hash "cabal-install-$VERSION-i386-linux-unknown.tar.xz")
80+
Linux_Alpine:
81+
unknown_versioning: *cabal-${YV}-32
82+
A_ARM64:
83+
Darwin:
84+
unknown_versioning:
85+
$(print_uri_hash "cabal-install-$VERSION-aarch64-darwin.tar.xz")
86+
Linux_Debian:
87+
'( >= 11)': &cabal-${YV}-arm64-deb
88+
$(print_uri_hash "cabal-install-$VERSION-aarch64-linux-deb11.tar.xz")
89+
unknown_versioning: *cabal-${YV}-arm64-deb
90+
Linux_UnknownLinux:
91+
unknown_versioning: &cabal-${YV}-arm64
92+
$(print_uri_hash "cabal-install-$VERSION-aarch64-linux-unknown.tar.xz")
93+
Linux_Alpine:
94+
unknown_versioning: *cabal-${YV}-arm64
95+
EOF

scripts/release/download-cabal-install-release-binaries.sh

Lines changed: 0 additions & 42 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
set -o pipefail
5+
6+
RELEASE=$1
7+
VERSION=${RELEASE#cabal-install-v}
8+
SIGNER=$2
9+
10+
echo "RELEASE: $RELEASE"
11+
echo "SIGNER: $SIGNER"
12+
13+
for com in gh gpg curl sha256sum ; do
14+
command -V ${com} >/dev/null 2>&1
15+
done
16+
17+
[ ! -e "gh-release-artifacts/cabal-${VERSION}" ]
18+
19+
mkdir -p "gh-release-artifacts/cabal-${VERSION}"
20+
21+
git archive --format=tar.gz -o "gh-release-artifacts/cabal-${VERSION}/cabal-${VERSION}-src.tar.gz" --prefix="cabal-${VERSION}/" HEAD
22+
23+
cd "gh-release-artifacts/cabal-${VERSION}"
24+
25+
# github
26+
gh release download "$RELEASE"
27+
28+
sha256sum ./* > SHA256SUMS
29+
gpg --detach-sign -u "${SIGNER}" SHA256SUMS
30+
31+
echo
32+
echo "Now run the following:"
33+
echo " ( cd gh-release-artifacts/cabal-${VERSION} && gh release upload $RELEASE cabal-${VERSION}-src.tar.gz SHA256SUMS SHA256SUMS.sig )"
34+
echo
35+
echo "And afterwards to upload to downloads.haskell.org:"
36+
echo " ./scripts/release/sftp-upload-artifacts.sh cabal-install-v${VERSION}"
37+
echo
38+
echo "And don't forget to finalize the release at https://github.com/stable-haskell/cabal/releases/tag/cabal-install-v${VERSION}"
39+
echo
40+
echo "Also create a PR at https://github.com/haskell/ghcup-metadata/pulls for the vanilla-channel from the output of the following script:"
41+
echo " ./scripts/release/create-yaml-snippet.sh cabal-install-v${VERSION}"
42+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
set -o pipefail
5+
6+
RELEASE=$1
7+
VERSION=${RELEASE#cabal-install-v}
8+
URL=https://downloads.haskell.org
9+
10+
cd "gh-release-artifacts/cabal-${VERSION}"
11+
12+
sftp $URL <<EOF
13+
cd cabal
14+
15+
mkdir cabal-install-$VERSION
16+
cd cabal-install-$VERSION
17+
18+
put -r .
19+
EOF
20+
21+
curl -X PURGE "https://downloads.haskell.org/~cabal/cabal-install-$VERSION/"
22+
curl -X PURGE "https://downloads.haskell.org/cabal/cabal-install-$VERSION/"

0 commit comments

Comments
 (0)