From d1ca5b6d470b1f5ad9b25b83707f5351bf080e31 Mon Sep 17 00:00:00 2001 From: Tony Gorez Date: Wed, 15 Mar 2023 20:03:58 +0100 Subject: [PATCH] tools: align update-ada.sh with other scripts PR-URL: https://github.com/nodejs/node/pull/47044 Reviewed-By: Antoine du Hamel Reviewed-By: Yagiz Nizipli Reviewed-By: Luigi Pinca Reviewed-By: Darshan Sen Reviewed-By: Marco Ippolito --- .github/workflows/tools.yml | 10 ++++------ tools/dep_updaters/update-ada.sh | 30 ++++++++++++++++++++++-------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index 8d4e5ae028253c..5e286f98f75c7a 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -134,12 +134,10 @@ jobs: subsystem: deps label: dependencies run: | - NEW_VERSION=$(gh api repos/ada-url/ada/releases/latest -q '.tag_name|ltrimstr("v")') - CURRENT_VERSION=$(grep "#define ADA_VERSION" ./deps/ada/ada.h | sed -n "s/^.*VERSION \(.*\)/\1/p") - if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then - echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV - ./tools/dep_updaters/update-ada.sh "$NEW_VERSION" - fi + ./tools/dep_updaters/update-ada.sh > temp-output + cat temp-output + tail -n1 temp-output | grep "NEW_VERSION=" >> "$GITHUB_ENV" || true + rm temp-output - id: nghttp2 subsystem: deps label: dependencies diff --git a/tools/dep_updaters/update-ada.sh b/tools/dep_updaters/update-ada.sh index 5b693520349313..ff4b9001d37e59 100755 --- a/tools/dep_updaters/update-ada.sh +++ b/tools/dep_updaters/update-ada.sh @@ -4,12 +4,22 @@ set -e BASE_DIR=$(cd "$(dirname "$0")/../.." && pwd) DEPS_DIR="$BASE_DIR/deps" -ADA_VERSION=$1 +[ -z "$NODE" ] && NODE="$BASE_DIR/out/Release/node" +[ -x "$NODE" ] || NODE=$(command -v node) -if [ "$#" -le 0 ]; then - echo "Error: please provide an ada version to update to" - echo " e.g. $0 1.0.0" - exit 1 +NEW_VERSION="$("$NODE" --input-type=module <<'EOF' +const res = await fetch('https://api.github.com/repos/ada-url/ada/releases/latest'); +if (!res.ok) throw new Error(`FetchError: ${res.status} ${res.statusText}`, { cause: res }); +const { tag_name } = await res.json(); +console.log(tag_name.replace('v', '')); +EOF +)" + +CURRENT_VERSION=$(grep "#define ADA_VERSION" "$DEPS_DIR/ada/ada.h" | sed -n "s/^.*VERSION \"\(.*\)\"/\1/p") + +if [ "$NEW_VERSION" = "$CURRENT_VERSION" ]; then + echo "Skipped because ada is on the latest version." + exit 0 fi echo "Making temporary workspace..." @@ -24,8 +34,8 @@ cleanup () { trap cleanup INT TERM EXIT -ADA_REF="v$ADA_VERSION" -ADA_ZIP="ada-$ADA_VERSION.zip" +ADA_REF="v$NEW_VERSION" +ADA_ZIP="ada-$NEW_VERSION.zip" ADA_LICENSE="LICENSE-MIT" cd "$WORKSPACE" @@ -47,5 +57,9 @@ echo "" echo "Please git add ada, commit the new version:" echo "" echo "$ git add -A deps/ada" -echo "$ git commit -m \"deps: update ada to $ADA_VERSION\"" +echo "$ git commit -m \"deps: update ada to $NEW_VERSION\"" echo "" + +# The last line of the script should always print the new version, +# as we need to add it to $GITHUB_ENV variable. +echo "NEW_VERSION=$NEW_VERSION"