nixpkgs/pkgs/by-name/fl/fluxcd/update.sh

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

51 lines
2.1 KiB
Bash
Raw Normal View History

#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep gnused jq
2021-10-14 18:59:33 +01:00
set -x -eu -o pipefail
2022-04-28 14:27:50 +01:00
NIXPKGS_PATH="$(git rev-parse --show-toplevel)"
FLUXCD_PATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
OLD_VERSION="$(nix-instantiate --eval -E "with import $NIXPKGS_PATH {}; fluxcd.version or (builtins.parseDrvName fluxcd.name).version" | tr -d '"')"
LATEST_TAG=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} --silent https://api.github.com/repos/fluxcd/flux2/releases/latest | jq -r '.tag_name')
LATEST_VERSION=$(echo ${LATEST_TAG} | sed 's/^v//')
if [ ! "$OLD_VERSION" = "$LATEST_VERSION" ]; then
SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/fluxcd/flux2/archive/refs/tags/${LATEST_TAG}.tar.gz)
2024-04-15 17:21:38 +01:00
SHA256=$(nix hash to-sri --type sha256 $SHA256)
2022-04-28 14:27:50 +01:00
SPEC_SHA256=$(nix-prefetch-url --quiet --unpack https://github.com/fluxcd/flux2/releases/download/${LATEST_TAG}/manifests.tar.gz)
2024-04-15 17:21:38 +01:00
SPEC_SHA256=$(nix hash to-sri --type sha256 $SPEC_SHA256)
2022-04-28 14:27:50 +01:00
setKV () {
sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" "${FLUXCD_PATH}/package.nix"
2022-04-28 14:27:50 +01:00
}
setKV version ${LATEST_VERSION}
setKV sha256 ${SHA256}
setKV manifestsSha256 ${SPEC_SHA256}
2023-09-21 22:43:34 +01:00
setKV vendorHash "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" # The same as lib.fakeHash
2022-04-28 14:27:50 +01:00
set +e
2023-09-21 22:43:34 +01:00
VENDOR_HASH=$(nix-build --no-out-link -A fluxcd $NIXPKGS_PATH 2>&1 >/dev/null | grep "got:" | cut -d':' -f2 | sed 's| ||g')
VENDOR_HASH=$(nix hash to-sri --type sha256 $VENDOR_HASH)
2022-04-28 14:27:50 +01:00
set -e
2023-09-21 22:43:34 +01:00
if [ -n "${VENDOR_HASH:-}" ]; then
setKV vendorHash ${VENDOR_HASH}
2022-04-28 14:27:50 +01:00
else
2023-09-21 22:43:34 +01:00
echo "Update failed. VENDOR_HASH is empty."
2022-04-28 14:27:50 +01:00
exit 1
fi
# `git` flag here is to be used by local maintainers to speed up the bump process
if [ $# -eq 1 ] && [ "$1" = "git" ]; then
2022-04-28 14:27:50 +01:00
git switch -c "package-fluxcd-${LATEST_VERSION}"
git add "$FLUXCD_PATH"/package.nix
git commit -m "fluxcd: ${OLD_VERSION} -> ${LATEST_VERSION}
Release: https://github.com/fluxcd/flux2/releases/tag/v${LATEST_VERSION}"
2022-04-28 14:27:50 +01:00
fi
2021-10-14 18:59:33 +01:00
else
2022-04-28 14:27:50 +01:00
echo "fluxcd is already up-to-date at $OLD_VERSION"
2021-10-14 18:59:33 +01:00
fi