Skip to content

Commit 4c16711

Browse files
Release separated archives for each platform (#697) (#699)
Co-authored-by: Cornelius Weig <corneliusweig@users.noreply.github.com> Co-authored-by: Cornelius Weig <corneliusweig@users.noreply.github.com>
1 parent 6186845 commit 4c16711

File tree

5 files changed

+54
-56
lines changed

5 files changed

+54
-56
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
uses: svenstaro/upload-release-action@v2
8181
with:
8282
repo_token: ${{ secrets.GITHUB_TOKEN }}
83-
file: out/krew.*
83+
file: out/krew*
8484
tag: ${{ github.ref }}
8585
overwrite: true
8686
file_glob: true

docs/RELEASING_KREW.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,10 @@
1313
```sh
1414
krew=out/bin/krew-darwin_amd64 # assuming macOS amd64
1515

16-
KREW_ROOT="$(mktemp -d --tmpdir krew-XXXXXXXXXX)" KREW_OS=darwin \
17-
$krew install --manifest=out/krew.yaml --archive=out/krew.tar.gz && \
18-
KREW_ROOT="$(mktemp -d --tmpdir krew-XXXXXXXXXX)" KREW_OS=linux \
19-
$krew install --manifest=out/krew.yaml --archive=out/krew.tar.gz && \
20-
KREW_ROOT="$(mktemp -d --tmpdir krew-XXXXXXXXXX)" KREW_OS=windows \
21-
$krew install --manifest=out/krew.yaml --archive=out/krew.tar.gz
16+
for osarch in darwin_amd64 darwin_arm64 linux_amd64 linux_arm linux_arm64 windows_amd64; do
17+
KREW_ROOT="$(mktemp -d --tmpdir krew-XXXXXXXXXX)" KREW_OS="${osarch%_*}" KREW_ARCH="${osarch#*_}" \
18+
$krew install --manifest=out/krew.yaml --archive="out/krew-${osarch}.tar.gz"
19+
done
2220
```
2321

2422
### Release a new version

hack/krew.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ spec:
2626
https://krew.sigs.k8s.io/docs/user-guide/quickstart/.
2727
2828
platforms:
29-
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew.tar.gz
30-
sha256: KREW_TAR_CHECKSUM
29+
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew-darwin_amd64.tar.gz
30+
sha256: KREW_DARWIN_AMD64_CHECKSUM
3131
bin: krew
3232
files:
3333
- from: ./krew-darwin_amd64
@@ -38,8 +38,8 @@ spec:
3838
matchLabels:
3939
os: darwin
4040
arch: amd64
41-
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew.tar.gz
42-
sha256: KREW_TAR_CHECKSUM
41+
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew-darwin_arm64.tar.gz
42+
sha256: KREW_DARWIN_ARM64_CHECKSUM
4343
bin: krew
4444
files:
4545
- from: ./krew-darwin_arm64
@@ -50,8 +50,8 @@ spec:
5050
matchLabels:
5151
os: darwin
5252
arch: arm64
53-
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew.tar.gz
54-
sha256: KREW_TAR_CHECKSUM
53+
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew-linux_amd64.tar.gz
54+
sha256: KREW_LINUX_AMD64_CHECKSUM
5555
bin: krew
5656
files:
5757
- from: ./krew-linux_amd64
@@ -62,8 +62,8 @@ spec:
6262
matchLabels:
6363
os: linux
6464
arch: amd64
65-
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew.tar.gz
66-
sha256: KREW_TAR_CHECKSUM
65+
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew-linux_arm.tar.gz
66+
sha256: KREW_LINUX_ARM_CHECKSUM
6767
bin: krew
6868
files:
6969
- from: ./krew-linux_arm
@@ -74,8 +74,8 @@ spec:
7474
matchLabels:
7575
os: linux
7676
arch: arm
77-
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew.tar.gz
78-
sha256: KREW_TAR_CHECKSUM
77+
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew-linux_arm64.tar.gz
78+
sha256: KREW_LINUX_ARM64_CHECKSUM
7979
bin: krew
8080
files:
8181
- from: ./krew-linux_arm64
@@ -86,8 +86,8 @@ spec:
8686
matchLabels:
8787
os: linux
8888
arch: arm64
89-
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew.tar.gz
90-
sha256: KREW_TAR_CHECKSUM
89+
- uri: https://github.com/kubernetes-sigs/krew/releases/download/KREW_TAG/krew-windows_amd64.tar.gz
90+
sha256: KREW_WINDOWS_AMD64_CHECKSUM
9191
bin: krew.exe
9292
files:
9393
- from: ./krew-windows_amd64.exe

hack/make-release-artifacts.sh

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -25,46 +25,48 @@ if [[ ! -d "${bin_dir}" ]]; then
2525
exit 1
2626
fi
2727

28-
krew_tar_archive="krew.tar.gz"
29-
krew_exe="krew.exe"
30-
31-
# copy license
32-
cp -- "${SCRIPTDIR}/../LICENSE" "./${bin_dir}"
33-
34-
# create a out/krew.exe convenience copy
35-
if [[ -x "./${bin_dir}/krew-windows_amd64.exe" ]]; then
36-
cp -- "./${bin_dir}/krew-windows_amd64.exe" "./out/krew.exe"
28+
checksum_cmd="shasum -a 256"
29+
if hash sha256sum 2>/dev/null; then
30+
checksum_cmd="sha256sum"
3731
fi
32+
checksum_sed=""
3833

39-
# consistent timestamps for files in bindir to ensure consistent checksums
4034
while IFS= read -r -d $'\0' f; do
41-
echo "modifying atime/mtime for $f"
42-
TZ=UTC touch -at "0001010000" "$f"
43-
TZ=UTC touch -mt "0001010000" "$f"
44-
done < <(find "${bin_dir}" -print0)
35+
archive_dir="$(mktemp -d)"
36+
cp "$f" "${archive_dir}"
37+
cp -- "${SCRIPTDIR}/../LICENSE" "${archive_dir}"
38+
name="$(basename "$f" .exe)"
39+
archive="${name}.tar.gz"
40+
echo >&2 "Creating ${archive} archive."
41+
(
42+
cd "${archive_dir}"
43+
# consistent timestamps for files in archive dir to ensure consistent checksums
44+
TZ=UTC touch -t "0001010000" ./*
45+
tar --use-compress-program "gzip --no-name" -cvf "${SCRIPTDIR}/../out/${archive}" ./*
46+
)
4547

46-
echo >&2 "Creating ${krew_tar_archive} archive."
47-
(
48-
cd "${bin_dir}"
49-
tar --use-compress-program "gzip --no-name" -cvf "${SCRIPTDIR}/../out/${krew_tar_archive}" ./*
50-
)
48+
# create sumfile
49+
sumfile="out/${archive}.sha256"
50+
checksum="$(eval "${checksum_cmd[@]}" "out/${archive}" | awk '{print $1;}')"
51+
echo >&2 "${archive} checksum: ${checksum}"
52+
echo "${checksum}" >"${sumfile}"
53+
echo >&2 "Written ${sumfile}."
5154

52-
checksum_cmd="shasum -a 256"
53-
if hash sha256sum 2>/dev/null; then
54-
checksum_cmd="sha256sum"
55-
fi
55+
# prepare krew manifest sed
56+
checksum_sed="${checksum_sed};s/$(tr "[[:lower:]-]" "[[:upper:]_]" <<<${name})_CHECKSUM/${checksum}/"
5657

57-
tar_sumfile="out/${krew_tar_archive}.sha256"
58-
tar_checksum="$(eval "${checksum_cmd[@]}" "out/${krew_tar_archive}" | awk '{print $1;}')"
59-
echo >&2 "${krew_tar_archive} checksum: ${tar_checksum}"
60-
echo "${tar_checksum}" >"${tar_sumfile}"
61-
echo >&2 "Written ${tar_sumfile}."
58+
done < <(find "${bin_dir}" -type f -print0)
6259

63-
exe_sumfile="out/krew.exe.sha256"
64-
exe_checksum="$(eval "${checksum_cmd[@]}" "out/${krew_exe}" | awk '{print $1;}')"
65-
echo >&2 "${krew_exe} checksum: ${exe_checksum}"
66-
echo "${exe_checksum}" >"${exe_sumfile}"
67-
echo >&2 "Written ${exe_sumfile}."
60+
# create a out/krew.exe convenience copy
61+
if [[ -x "./${bin_dir}/krew-windows_amd64.exe" ]]; then
62+
krew_exe="krew.exe"
63+
cp -- "./${bin_dir}/krew-windows_amd64.exe" "./out/${krew_exe}"
64+
exe_sumfile="out/krew.exe.sha256"
65+
exe_checksum="$(eval "${checksum_cmd[@]}" "out/${krew_exe}" | awk '{print $1;}')"
66+
echo >&2 "${krew_exe} checksum: ${exe_checksum}"
67+
echo "${exe_checksum}" >"${exe_sumfile}"
68+
echo >&2 "Written ${exe_sumfile}."
69+
fi
6870

6971
# Copy and process krew manifest
7072
git_describe="$(git describe --tags --dirty --always)"
@@ -74,7 +76,5 @@ if [[ ! "${git_describe}" =~ v.* ]]; then
7476
git_describe="v0.0.0-detached+${git_describe}"
7577
fi
7678
krew_version="${TAG_NAME:-$git_describe}"
77-
cp ./hack/krew.yaml ./out/krew.yaml
78-
sed -i "s/KREW_TAR_CHECKSUM/${tar_checksum}/g" ./out/krew.yaml
79-
sed -i "s/KREW_TAG/${krew_version}/g" ./out/krew.yaml
79+
sed "${checksum_sed};s/KREW_TAG/${krew_version}/g" ./hack/krew.yaml >./out/krew.yaml
8080
echo >&2 "Written out/krew.yaml."

hack/verify-installation.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ if [[ ! -f "${krew_manifest}" ]]; then
3333
exit 1
3434
fi
3535

36-
krew_archive="${build_dir}/krew.tar.gz"
36+
krew_archive="${build_dir}/krew-${goos}_${goarch}.tar.gz"
3737
if [[ ! -f "${krew_archive}" ]]; then
3838
echo >&2 "Could not find archive ${krew_archive}."
3939
echo >&2 "Did you run hack/make-all.sh?"

0 commit comments

Comments
 (0)