From 37ff1cef57fc751a4bfb92a831f1e1cbaf8a3d83 Mon Sep 17 00:00:00 2001 From: Marlon Saglia Date: Mon, 12 Aug 2024 11:19:49 +0200 Subject: [PATCH] feat: add auto-update versions workflow The new workflow added in `.github/workflows/auto-update-versions.yml` takes care of automatically updating the Vespa version in the project's documentation. The workflow is triggered either manually or on a daily schedule, and it fetches the latest Vespa version from the Maven repository and updates the relevant files in the repository. --- .github/workflows/auto-update-versions.yml | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 .github/workflows/auto-update-versions.yml diff --git a/.github/workflows/auto-update-versions.yml b/.github/workflows/auto-update-versions.yml new file mode 100644 index 0000000000..581eb000d4 --- /dev/null +++ b/.github/workflows/auto-update-versions.yml @@ -0,0 +1,71 @@ +name: Auto-update versions +# +# Takes care of updating the Vespa version in the documentation. +# + +on: + workflow_dispatch: # Allow manual triggering of the workflow + + schedule: + - cron: "0 0 * * *" + + # For testing purposes + push: + branches: [auto-update-versions] + +permissions: + contents: write + pull-requests: write + +jobs: + update-vespa-version: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup xq + env: + URL_PREFIX: "https://github.com/sibprogrammer/xq" + INSTALL_DIR: /usr/local/bin/ + BINARY: xq + run: | + LATEST_VERSION=$(curl -L -s -H 'Accept: application/json' $URL_PREFIX/releases/latest | sed -e 's/.*"tag_name":"v\([^"]*\)".*/\1/') + PLATFORM=$(uname -s | tr A-Z a-z) + case "$(uname -m)" in + arm64) + ARCH=arm64 + ;; + aarch64) + ARCH=arm64 + ;; + armv6l) + ARCH=armv6 + ;; + armv7l) + ARCH=armv7 + ;; + *) + ARCH=amd64 + ;; + esac + ARCHIVE="${BINARY}_${LATEST_VERSION}_${PLATFORM}_${ARCH}.tar.gz" + URL="$URL_PREFIX/releases/download/v${LATEST_VERSION}/$ARCHIVE" + + echo "Installation of $BINARY" + rm -f $INSTALL_DIR$BINARY + curl -sSL "$URL" | tar xz -C $INSTALL_DIR $BINARY + chmod +x $INSTALL_DIR$BINARY + echo "Successfully installed at $INSTALL_DIR$BINARY" + + - name: Get Latest Vespa version + run: | + VESPA_VERSION=$(curl -sSL https://repo1.maven.org/maven2/com/yahoo/vespa/parent/maven-metadata.xml | \ + grep -oP '\K([0-9]+\.[0-9]+\.[0-9]+)') + + echo "Vespa version: $VESPA_VERSION" + + VESPA_VERSION=$(curl -sSL https://repo1.maven.org/maven2/com/yahoo/vespa/parent/maven-metadata.xml | \ + xq -x '/metadata/versioning/latest') + + echo "Vespa version: $VESPA_VERSION"