[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