workflows: Add a test to ensure that the LLVM version is correct
This should prevent mistakes like Issue#55137.
Reviewed By: thieta
Differential Revision: https://reviews.llvm.org/D124539
diff --git a/.github/workflows/version-check.py b/.github/workflows/version-check.py
new file mode 100755
index 0000000..74c061e
--- /dev/null
+++ b/.github/workflows/version-check.py
@@ -0,0 +1,32 @@
+#!/usr/bin/python3
+
+from git import Repo
+import re
+import sys
+
+version = sys.argv[1]
+
+repo = Repo()
+
+tag = repo.git.describe(tags = True, abbrev=0)
+m = re.match('llvmorg-([0-9]+)\.([0-9]+)\.([0-9]+)', tag)
+if not m:
+ print("error: Tag is not valid: ", tag)
+ sys.exit(1)
+
+expected_major = m.group(1)
+expected_minor = m.group(2)
+expected_patch = int(m.group(3)) + 1
+expected_version = f"{expected_major}.{expected_minor}.{expected_patch}"
+
+m = re.match("[0-9]+\.[0-9]+\.[0-9]+", version)
+if not m:
+ print("error: Version is not valid: ", version)
+ sys.exit(1)
+
+if version != expected_version:
+ print("error: Expected version", expected_version, "but found version", version)
+ sys.exit(1)
+
+print("Versions match:", version, expected_version)
+sys.exit(0)
diff --git a/.github/workflows/version-check.yml b/.github/workflows/version-check.yml
new file mode 100644
index 0000000..d15069f
--- /dev/null
+++ b/.github/workflows/version-check.yml
@@ -0,0 +1,26 @@
+name: LLVM Project Version Check
+
+on:
+ push:
+ branches:
+ - 'release/**'
+ pull_request:
+
+
+jobs:
+ version_check:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Fetch LLVM sources
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+
+ - name: Install dependencies
+ run: |
+ pip install -r ./llvm/utils/git/requirements.txt
+
+ - name: Version Check
+ run: |
+ version=`grep -o 'LLVM_VERSION_\(MAJOR\|MINOR\|PATCH\) [0-9]\+' llvm/CMakeLists.txt | cut -d ' ' -f 2 | tr "\n" "." | sed 's/.$//g'`
+ .github/workflows/version-check.py $version