paratest: add updateScript

This commit is contained in:
Piotr Kwiecinski
2026-03-03 17:58:31 +01:00
parent 8af6c4df92
commit 9a42b44aa8
2 changed files with 31 additions and 0 deletions
+2
View File
@@ -20,6 +20,8 @@
composerLock = ./composer.lock;
vendorHash = "sha256-VdJVbAKkbWKZEJ16ZbJ/lmc6ZzPmztXjZ/LAEmRI93o=";
passthru.updateScript = ./update.sh;
nativeInstallCheckInputs = [
versionCheckHook
];
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq php.packages.composer nix-update coreutils
set -eou pipefail
PACKAGE_NAME="paratest"
PACKAGE_VERSION=$(nix eval --raw -f. $PACKAGE_NAME.version)
PACKAGE_DIR="$(dirname "${BASH_SOURCE[0]}")"
# Get latest version from git
GIT_VERSION="$(curl --silent ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} "https://api.github.com/repos/paratestphp/paratest/releases/latest" | jq '.tag_name' --raw-output)"
NEW_VERSION="${GIT_VERSION#v}"
# Fail if package and git version are the same
if [[ "$PACKAGE_VERSION" == "$NEW_VERSION" ]]; then
echo "${PACKAGE_NAME} is up-to-date: ${PACKAGE_VERSION}"
exit 0
fi
# Generate composer.lock file
TMPDIR=$(mktemp -d)
trap 'rm -rf -- "${TMPDIR}"' EXIT
git clone --depth 1 --branch "${GIT_VERSION}" https://github.com/paratestphp/paratest.git "${TMPDIR}/paratest"
composer -d "${TMPDIR}/paratest" install --ignore-platform-req=ext-pcov
cp "${TMPDIR}/paratest/composer.lock" "${PACKAGE_DIR}/composer.lock"
# update package.nix version, hash and vendorHash
nix-update $PACKAGE_NAME --version="${NEW_VERSION}"