[llvm] [ci] Add ids workflow for checking llvm apis have been annotated with LLVM_ABI (PR #172673)

Fabrice de Gans via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 23 02:10:52 PST 2025


================
@@ -0,0 +1,114 @@
+name: ids-check
+on:
+  pull_request:
+    types:
+      - opened
+      - synchronize
+      - reopened
+      - closed
+  push:
+    branches:
+      - 'main'
+      - 'release/**'
+
+permissions:
+  contents: read
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
+  cancel-in-progress: true
+
+jobs:
+  build:
+    if: github.repository_owner == 'llvm'
+    name: ids-check
+    runs-on: ubuntu-24.04
+
+    steps:
+    - uses: actions/checkout at 11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+      with:
+        repository: compnerd/ids
+        path: ${{ github.workspace }}/ids
+        ref: b3bf35dd13d7ff244a6a6d106fe58d0eedb5743e # main
+        fetch-depth: 0
+
+    - uses: actions/checkout at 11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+      with:
+        path: ${{ github.workspace }}/llvm-project
+        fetch-depth: 2
+
+    - name: Compute base ref
+      id: base_ref
+      run: |
+        if [ "${{ github.event_name }}" == "pull_request" ]; then
+          git -C ${{ github.workspace }}/llvm-project fetch origin ${{ github.base_ref }}
+          echo "base_ref=origin/${{ github.base_ref }}" >> $GITHUB_OUTPUT
+        else
+          echo "base_ref=HEAD~1" >> $GITHUB_OUTPUT
+        fi
+
+    - name: Install dependencies
+      run: |
+        sudo apt install -y clang-19 ninja-build libclang-19-dev
+        pip install lit
+
+    - name: Configure and build minimal LLVM for use by ids
+      run: |
+        cmake -B ${{ github.workspace }}/llvm-project/build/ \
+              -S ${{ github.workspace }}/llvm-project/llvm/ \
+              -D CMAKE_BUILD_TYPE=Release \
+              -D CMAKE_C_COMPILER=clang \
+              -D CMAKE_CXX_COMPILER=clang++ \
+              -D LLVM_ENABLE_PROJECTS=clang \
+              -D LLVM_TARGETS_TO_BUILD="host" \
+              -D CMAKE_EXPORT_COMPILE_COMMANDS=ON \
+              -G Ninja
+        cd ${{ github.workspace }}/llvm-project/build/
+        ninja -t targets all | grep "CommonTableGen: phony$" | grep -v "/" | sed 's/:.*//'
+
+    - name: Configure ids
+      run: |
+        cmake -B ${{ github.workspace }}/ids/build/ \
+              -S ${{ github.workspace }}/ids/ \
+              -D CMAKE_BUILD_TYPE=Release \
+              -D CMAKE_C_COMPILER=clang \
+              -D CMAKE_CXX_COMPILER=clang++ \
+              -D CMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld \
+              -D LLVM_DIR=/usr/lib/llvm-19/lib/cmake/llvm/ \
+              -D Clang_DIR=/usr/lib/llvm-19/lib/cmake/clang/ \
+              -D FILECHECK_EXECUTABLE=$(which FileCheck-19) \
+              -D LIT_EXECUTABLE=$(which lit)
+
+    - name: Build ids
+      run: |
+        cmake --build ${{ github.workspace }}/ids/build \
+              --config Release \
+              --parallel $(nproc --all)
+
+    - name: Run ids over compilation database
+      run: |
----------------
Steelskin wrote:

I switched this to a script too.

https://github.com/llvm/llvm-project/pull/172673


More information about the llvm-commits mailing list