File: codeql.yml

package info (click to toggle)
opencl-clang-21 21.1.2-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 356 kB
  • sloc: cpp: 1,242; ansic: 47; makefile: 19; sh: 10
file content (100 lines) | stat: -rw-r--r-- 3,401 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: "CodeQL"

on:
  push:
    branches: [ "ocl-open-210" ]
  pull_request:
    branches: [ "ocl-open-210" ]

permissions:
  contents: read

env:
  LLVM_VERSION: 21
  LLVM_VERSION_MINOR: 1

jobs:
  analyze:
    name: Analyze

    runs-on: ubuntu-latest

    permissions:
      # required for all workflows
      security-events: write

      # required to fetch internal or private CodeQL packs
      packages: read

    strategy:
      fail-fast: false
      matrix:
        include:
        - language: c-cpp
          build-mode: manual

    steps:

      - name: Install llvm and its dependencies
        run: |
          curl -L "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
          curl -L "https://packages.lunarg.com/lunarg-signing-key-pub.asc" | sudo apt-key add -
          echo "deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-21 main" | sudo tee -a /etc/apt/sources.list
          echo "deb https://packages.lunarg.com/vulkan jammy main" | sudo tee -a /etc/apt/sources.list
          sudo apt-get update
          sudo apt-get -yq --no-install-suggests --no-install-recommends install \
            clang-${{ env.LLVM_VERSION }} \
            clang-tools-${{ env.LLVM_VERSION }} \
            llvm-${{ env.LLVM_VERSION }}-dev \
            libllvmlibc-${{ env.LLVM_VERSION }}-dev \
            libclang-${{ env.LLVM_VERSION }}-dev \
            libclang-cpp${{ env.LLVM_VERSION }}-dev \
            libpolly-${{ env.LLVM_VERSION }}-dev \
            libzstd-dev \
            libedit-dev \
            mlir-${{ env.LLVM_VERSION }}-tools

      - name: Checkout opencl-clang sources for action files
        uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
        with:
          ref: ${{ github.ref }}

      - name: Checkout SPIRV-LLVM-Translator sources
        uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
        with:
          repository: KhronosGroup/SPIRV-LLVM-Translator
          path: SPIRV-LLVM-Translator
          ref: llvm_release_210

      - name: Build SPIRV-LLVM-Translator
        run: |
          builddir=${{ github.workspace }}/SPIRV-LLVM-Translator/build
          cmake -B "$builddir" \
            ${{ github.workspace }}/SPIRV-LLVM-Translator \
            -DLLVM_INCLUDE_TESTS=OFF \
            -DCMAKE_INSTALL_PREFIX="$builddir"/install \
            -DCMAKE_BUILD_TYPE=Release
          cmake --build "$builddir" -j $(nproc)
          cmake --install "$builddir"
          echo "spirv-translator-dir=${builddir}/install" >> $GITHUB_ENV

      - name: Initialize CodeQL
        uses: github/codeql-action/init@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7
        with:
          languages: ${{ matrix.language }}
          build-mode: ${{ matrix.build-mode }}

      - name: Build opencl-clang
        run: |
          mkdir build && cd build
          cmake ${{ github.workspace }} \
            -DPREFERRED_LLVM_VERSION="${{ env.LLVM_VERSION }}.${{ env.LLVM_VERSION_MINOR }}" \
            -DLLVMSPIRV_INCLUDED_IN_LLVM=OFF \
            -DSPIRV_TRANSLATOR_DIR=${{ env.spirv-translator-dir }} \
            -DCMAKE_BUILD_TYPE=Release
          cmake --build . -j $(nproc)

      - name: Perform CodeQL Analysis
        uses: github/codeql-action/analyze@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7
        with:
          category: "/language:${{matrix.language}}"