Skip to content

Commit 9192133

Browse files
authored
Add SAST tool CodeQL scan (#529)
Address OpenSSF "SAST" in #516
1 parent 37beca9 commit 9192133

File tree

2 files changed

+97
-2
lines changed

2 files changed

+97
-2
lines changed

.github/workflows/codeql.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: "CodeQL"
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
branches: [ "main" ]
8+
9+
permissions:
10+
contents: read
11+
12+
env:
13+
LLVM_VERSION: 19
14+
LLVM_VERSION_MINOR: 0
15+
16+
jobs:
17+
analyze:
18+
name: Analyze
19+
20+
runs-on: ubuntu-latest
21+
22+
permissions:
23+
# required for all workflows
24+
security-events: write
25+
26+
# required to fetch internal or private CodeQL packs
27+
packages: read
28+
29+
strategy:
30+
fail-fast: false
31+
matrix:
32+
include:
33+
- language: c-cpp
34+
build-mode: manual
35+
36+
steps:
37+
38+
- name: Install llvm and its dependencies
39+
run: |
40+
curl -L "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
41+
curl -L "https://packages.lunarg.com/lunarg-signing-key-pub.asc" | sudo apt-key add -
42+
echo "deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy main" | sudo tee -a /etc/apt/sources.list
43+
echo "deb https://packages.lunarg.com/vulkan jammy main" | sudo tee -a /etc/apt/sources.list
44+
sudo apt-get update
45+
sudo apt-get -yq --no-install-suggests --no-install-recommends install \
46+
clang-${{ env.LLVM_VERSION }} \
47+
llvm-${{ env.LLVM_VERSION }}-dev \
48+
libclang-${{ env.LLVM_VERSION }}-dev \
49+
libclang-cpp${{ env.LLVM_VERSION }}-dev \
50+
libpolly-${{ env.LLVM_VERSION }}-dev \
51+
libzstd-dev \
52+
libedit-dev
53+
54+
- name: Checkout opencl-clang sources for action files
55+
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
56+
with:
57+
ref: ${{ github.ref }}
58+
59+
- name: Checkout SPIRV-LLVM-Translator sources
60+
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
61+
with:
62+
repository: KhronosGroup/SPIRV-LLVM-Translator
63+
path: SPIRV-LLVM-Translator
64+
ref: main
65+
66+
- name: Build SPIRV-LLVM-Translator
67+
run: |
68+
builddir=${{ github.workspace }}/SPIRV-LLVM-Translator/build
69+
cmake -B "$builddir" \
70+
${{ github.workspace }}/SPIRV-LLVM-Translator \
71+
-DLLVM_INCLUDE_TESTS=OFF \
72+
-DCMAKE_INSTALL_PREFIX="$builddir"/install \
73+
-DCMAKE_BUILD_TYPE=Release
74+
cmake --build "$builddir" -j $(nproc)
75+
cmake --install "$builddir"
76+
echo "spirv-translator-dir=${builddir}/install" >> $GITHUB_ENV
77+
78+
- name: Initialize CodeQL
79+
uses: github/codeql-action/init@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7
80+
with:
81+
languages: ${{ matrix.language }}
82+
build-mode: ${{ matrix.build-mode }}
83+
84+
- name: Build opencl-clang
85+
run: |
86+
mkdir build && cd build
87+
cmake ${{ github.workspace }} \
88+
-DPREFERRED_LLVM_VERSION="${{ env.LLVM_VERSION }}.${{ env.LLVM_VERSION_MINOR }}" \
89+
-DLLVMSPIRV_INCLUDED_IN_LLVM=OFF \
90+
-DSPIRV_TRANSLATOR_DIR=${{ env.spirv-translator-dir }} \
91+
-DCMAKE_BUILD_TYPE=Release
92+
cmake --build . -j $(nproc)
93+
94+
- name: Perform CodeQL Analysis
95+
uses: github/codeql-action/analyze@f079b8493333aace61c81488f8bd40919487bd9f # v3.25.7
96+
with:
97+
category: "/language:${{matrix.language}}"

.github/workflows/on-push-verification-out-of-tree.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# ===---
22
# Running on push & pull_request.
3-
# This workflow parses the destination branch
4-
# to choose correct dependencies revisions
53
# ===---
64

75
name: Out-of-tree build

0 commit comments

Comments
 (0)