From 047e2ee98ed7152ef7e50c94a2773c9d116f23e6 Mon Sep 17 00:00:00 2001 From: Sebastian Gumprich Date: Wed, 19 Apr 2023 11:02:00 +0200 Subject: [PATCH] simplify automatic updater --- .github/workflows/updater.sh | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh index 37ea19c..e5700a5 100644 --- a/.github/workflows/updater.sh +++ b/.github/workflows/updater.sh @@ -21,7 +21,7 @@ current_version=$(cat manifest.json | jq -j '.version|split("~")[0]') repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]') # Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions) version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1) -assets=($(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '[ .[] | select(.tag_name=="'$version'").assets[].browser_download_url ] | join(" ") | @sh' | tr -d "'")) +assets="https://github.com/$repo/archive/refs/tags/$version.tar.gz" # Later down the script, we assume the version has only digits and dots # Sometimes the release name starts with a "v", so let's filter it out. @@ -44,7 +44,7 @@ if ! dpkg --compare-versions "$current_version" "lt" "$version" ; then # Proceed only if a PR for this new version does not already exist elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$version ; then echo "::warning ::A branch already exists for this update" - exit 0 + #exit 0 fi # Each release can hold multiple assets (e.g. binaries for different architectures, source code, etc.) @@ -54,23 +54,8 @@ echo "${#assets[@]} available asset(s)" # UPDATE SOURCE FILES #================================================= -# Here we use the $assets variable to get the resources published in the upstream release. -# Let's loop over the array of assets URLs -for asset_url in ${assets[@]}; do - -echo "Handling asset at $asset_url" - -# Assign the asset to a source file in conf/ directory -# Here we base the source file name upon a unique keyword in the assets url (admin vs. update) -# Leave $src empty to ignore the asset -case $asset_url in - *"libremdb") - src="app" - ;; - *) - src="" - ;; -esac +asset_url=$assets +src="app" # If $src is not empty, let's process the asset if [ ! -z "$src" ]; then @@ -99,8 +84,9 @@ SOURCE_URL=$asset_url SOURCE_SUM=$checksum SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=$extension -SOURCE_IN_SUBDIR=false +SOURCE_IN_SUBDIR=true SOURCE_FILENAME= +SOURCE_EXTRACT=true EOT echo "... conf/$src.src updated" @@ -108,8 +94,6 @@ else echo "... asset ignored" fi -done - #================================================= # SPECIFIC UPDATE STEPS #=================================================