From f549a6b0318d1a232e8f83c003dde65271274ace Mon Sep 17 00:00:00 2001 From: kvpanch <223931578+kvpanch@users.noreply.github.com> Date: Mon, 22 Dec 2025 16:23:29 -0500 Subject: [PATCH] Infer full LLVM release version from git's tags (#437) The helps to remove special casing from actions and will make future LLVM updates smoother. --- .github/actions/get-llvm/action.yml | 30 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/.github/actions/get-llvm/action.yml b/.github/actions/get-llvm/action.yml index e61e32e..000d5ee 100644 --- a/.github/actions/get-llvm/action.yml +++ b/.github/actions/get-llvm/action.yml @@ -20,29 +20,27 @@ runs: shell: bash run: | if [ -z "${{ inputs.version }}" ]; then - # Extract branch from .gitmodules (e.g., "release/18.x") - BRANCH=$(git config -f .gitmodules submodule.llvm.branch) - if [ -n "$BRANCH" ]; then - # Extract version from branch name (e.g., "18.x" from "release/18.x") - VERSION_PREFIX=$(echo "$BRANCH" | sed 's|release/||' | sed 's|\.x$||') - echo "Detected LLVM version prefix from submodule branch: $VERSION_PREFIX" - - # Special case: pin LLVM 18 to specific version 18.1.8 - if [ "$VERSION_PREFIX" = "18" ]; then - echo "Using pinned version for LLVM 18: llvm-18.1.8" - echo "version_prefix=llvm-18.1.8" >> $GITHUB_OUTPUT - else - echo "version_prefix=llvm-$VERSION_PREFIX" >> $GITHUB_OUTPUT - fi + # Get the full version from the LLVM submodule. + git submodule update --init --recursive + cd llvm + # Try to get the most recent tag (e.g., "llvmorg-18.1.8") + LLVM_TAG=$(git describe --tags --abbrev=0 2>/dev/null) + if [ -n "$LLVM_TAG" ]; then + echo "Detected LLVM version from submodule: $LLVM_TAG" + # Convert "llvmorg-x.y.z" to "llvm-x.y.z" + LLVM_VERSION=$(echo "$LLVM_TAG" | sed 's/^llvmorg-/llvm-/') + echo "Detected LLVM version from submodule: $LLVM_VERSION" + echo "version_prefix=$LLVM_VERSION" >> $GITHUB_OUTPUT else - echo "No branch found in .gitmodules, will use latest release" + echo "Could not detect LLVM version from submodule, will use latest release" echo "version_prefix=" >> $GITHUB_OUTPUT fi + cd .. else echo "Using explicitly provided version: ${{ inputs.version }}" echo "version_prefix=${{ inputs.version }}" >> $GITHUB_OUTPUT fi - + - name: find asset id: find uses: actions/github-script@v7