xref: /freebsd/sys/contrib/openzfs/.github/workflows/smatch.yml (revision 66e85755595a451db490d2fe24267d85db4b09c2)
1*66e85755SMartin Matuskaname: smatch
2*66e85755SMartin Matuska
3*66e85755SMartin Matuskaon:
4*66e85755SMartin Matuska  push:
5*66e85755SMartin Matuska  pull_request:
6*66e85755SMartin Matuska
7*66e85755SMartin Matuskaconcurrency:
8*66e85755SMartin Matuska  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
9*66e85755SMartin Matuska  cancel-in-progress: true
10*66e85755SMartin Matuska
11*66e85755SMartin Matuskajobs:
12*66e85755SMartin Matuska  smatch:
13*66e85755SMartin Matuska    runs-on: ubuntu-24.04
14*66e85755SMartin Matuska    steps:
15*66e85755SMartin Matuska    - name: Checkout smatch
16*66e85755SMartin Matuska      uses: actions/checkout@v4
17*66e85755SMartin Matuska      with:
18*66e85755SMartin Matuska        repository: error27/smatch
19*66e85755SMartin Matuska        ref: master
20*66e85755SMartin Matuska        path: smatch
21*66e85755SMartin Matuska    - name: Install smatch dependencies
22*66e85755SMartin Matuska      run: |
23*66e85755SMartin Matuska        sudo apt-get install -y llvm gcc make sqlite3 libsqlite3-dev libdbd-sqlite3-perl libssl-dev libtry-tiny-perl
24*66e85755SMartin Matuska    - name: Make smatch
25*66e85755SMartin Matuska      run: |
26*66e85755SMartin Matuska        cd $GITHUB_WORKSPACE/smatch
27*66e85755SMartin Matuska        make -j$(nproc)
28*66e85755SMartin Matuska    - name: Checkout OpenZFS
29*66e85755SMartin Matuska      uses: actions/checkout@v4
30*66e85755SMartin Matuska      with:
31*66e85755SMartin Matuska        ref: ${{ github.event.pull_request.head.sha }}
32*66e85755SMartin Matuska        path: zfs
33*66e85755SMartin Matuska    - name: Install OpenZFS dependencies
34*66e85755SMartin Matuska      run: |
35*66e85755SMartin Matuska        cd $GITHUB_WORKSPACE/zfs
36*66e85755SMartin Matuska        sudo apt-get purge -y snapd google-chrome-stable firefox
37*66e85755SMartin Matuska        ONLY_DEPS=1 .github/workflows/scripts/qemu-3-deps-vm.sh ubuntu24
38*66e85755SMartin Matuska    - name: Autogen.sh OpenZFS
39*66e85755SMartin Matuska      run: |
40*66e85755SMartin Matuska        cd $GITHUB_WORKSPACE/zfs
41*66e85755SMartin Matuska        ./autogen.sh
42*66e85755SMartin Matuska    - name: Configure OpenZFS
43*66e85755SMartin Matuska      run: |
44*66e85755SMartin Matuska        cd $GITHUB_WORKSPACE/zfs
45*66e85755SMartin Matuska        ./configure --enable-debug
46*66e85755SMartin Matuska    - name: Make OpenZFS
47*66e85755SMartin Matuska      run: |
48*66e85755SMartin Matuska        cd $GITHUB_WORKSPACE/zfs
49*66e85755SMartin Matuska        make -j$(nproc) CHECK="$GITHUB_WORKSPACE/smatch/smatch" CC=$GITHUB_WORKSPACE/smatch/cgcc | tee $GITHUB_WORKSPACE/smatch.log
50*66e85755SMartin Matuska    - name: Smatch results log
51*66e85755SMartin Matuska      run: |
52*66e85755SMartin Matuska        grep -E 'error:|warn:|warning:' $GITHUB_WORKSPACE/smatch.log
53