mirror of https://github.com/knative/func.git
61 lines
1.8 KiB
Bash
Executable File
61 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
alpine_version='3.21.2'
|
|
go_version='1.23.5'
|
|
|
|
alpine_release_key='0482D84022F52DF1C4E7CD43293ACD0907D9495A'
|
|
google_release_key='EB4C1BFD4F042F6DDDCCEC917721F63BD38B4796'
|
|
|
|
artifacts_dir="$(dirname "$(realpath "$0")")/../.artifacts"
|
|
if [ ! -d "$artifacts_dir" ]; then
|
|
mkdir "$artifacts_dir";
|
|
fi
|
|
|
|
GNUPGHOME="$(mktemp -d)"
|
|
export GNUPGHOME
|
|
gpg --keyserver 'keyserver.ubuntu.com' --recv-keys "$alpine_release_key"
|
|
gpg --keyserver 'keyserver.ubuntu.com' --recv-keys "$google_release_key"
|
|
|
|
declare -A arch_map
|
|
arch_map['x86_64']='amd64'
|
|
arch_map['aarch64']='arm64'
|
|
|
|
function fetch_alpine_minirootfs() {
|
|
local alpine_rel_url='https://dl-cdn.alpinelinux.org/alpine/latest-stable/releases'
|
|
|
|
local arch
|
|
for arch in 'x86_64' 'aarch64' 'ppc64le' 's390x'; do
|
|
local arch_alt="${arch_map[$arch]:-$arch}"
|
|
local tarball="${artifacts_dir}/alpine-minirootfs-${arch_alt}.tar.gz"
|
|
local signature="${artifacts_dir}/alpine-minirootfs-${arch_alt}.tar.gz.asc"
|
|
curl -sSL "${alpine_rel_url}/${arch}/alpine-minirootfs-${alpine_version}-${arch}.tar.gz" > \
|
|
"${tarball}"
|
|
curl -sSL "${alpine_rel_url}/${arch}/alpine-minirootfs-${alpine_version}-${arch}.tar.gz.asc" > \
|
|
"${signature}"
|
|
gpg --assert-signer="$alpine_release_key" --verify "${signature}" "${tarball}"
|
|
done
|
|
}
|
|
|
|
function fetch_golang() {
|
|
|
|
local arch
|
|
arch="$(uname -m)"
|
|
local arch_alt="${arch_map[$arch]:-$arch}"
|
|
local tarball="${artifacts_dir}/go.tar.gz"
|
|
local signature="${artifacts_dir}/go.tar.gz.asc"
|
|
curl -sSL "https://go.dev/dl/go${go_version}.linux-${arch_alt}.tar.gz" > "${tarball}"
|
|
curl -sSL "https://go.dev/dl/go${go_version}.linux-${arch_alt}.tar.gz.asc" > "${signature}"
|
|
gpg --assert-signer="$google_release_key" --verify "${signature}" "${tarball}"
|
|
}
|
|
|
|
function main() {
|
|
fetch_alpine_minirootfs
|
|
fetch_golang
|
|
}
|
|
|
|
main "$@"
|