File: linter.yml

package info (click to toggle)
systemd 260.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 115,380 kB
  • sloc: ansic: 741,720; xml: 122,315; sh: 36,676; python: 36,497; cpp: 947; makefile: 277; awk: 126; lisp: 13; sed: 1
file content (92 lines) | stat: -rw-r--r-- 3,445 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
---
# vi: ts=2 sw=2 et:
# SPDX-License-Identifier: LGPL-2.1-or-later
# https://github.com/marketplace/actions/super-linter
name: Lint Code Base

on:
  pull_request:
    branches:
      - main
      - v[0-9]+-stable

permissions:
  contents: read

jobs:
  build:
    name: Lint Code Base
    runs-on: ubuntu-24.04
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
      cancel-in-progress: true

    steps:
      - name: Repo checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
        with:
          # We need a full repo clone
          fetch-depth: 0
          persist-credentials: false

      - name: Lint Code Base
        uses: super-linter/super-linter/slim@61abc07d755095a68f4987d1c2c3d1d64408f1f9
        env:
          DEFAULT_BRANCH: main
          MULTI_STATUS: false
          VALIDATE_ALL_CODEBASE: false
          VALIDATE_GITHUB_ACTIONS: true
          LINTER_RULES_PATH: .github/linters
          GITHUB_ACTIONS_CONFIG_FILE: actionlint.yml
          ENABLE_GITHUB_PULL_REQUEST_SUMMARY_COMMENT: false

      - uses: systemd/mkosi@66d51024b7149f40be4702e84275c936373ace97

      - name: Check that tabs are not used in Python code
        run: sh -c '! git grep -P "\\t" -- src/core/generate-bpf-delegate-configs.py src/boot/generate-hwids-section.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py'

      - name: Build tools tree
        run: |
          tee mkosi/mkosi.local.conf <<EOF
          [Build]
          ToolsTreeDistribution=fedora
          ToolsTreeRelease=rawhide
          EOF

          mkosi -f box -- true

      - name: Run mypy
        run: |
          mkosi box -- mypy --version
          mkosi box -- mypy src/core/generate-bpf-delegate-configs.py src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py

      - name: Run ruff format
        run: |
          mkosi box -- ruff --version
          if ! mkosi box -- ruff format --check src/core/generate-bpf-delegate-configs.py src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py
          then
              echo "Please run 'ruff format' on the above files or apply the diffs below manually"
              mkosi box -- ruff format --check --quiet --diff src/core/generate-bpf-delegate-configs.py src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py
          fi

      - name: Run ruff check
        run: |
          mkosi box -- ruff --version
          mkosi box -- ruff check src/core/generate-bpf-delegate-configs.py src/boot/generate-hwids-section.py src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py

      - name: Configure meson
        run: mkosi box -- env CC=clang CXX=clang++ meson setup build

      - name: Run clang-tidy
        run: mkosi box -- meson test -C build --suite=clang-tidy --print-errorlogs --no-stdsplit --quiet

      - name: Build with musl
        run: |
          mkosi box -- \
            env \
            CC=musl-gcc \
            CXX=musl-gcc \
            CFLAGS="-idirafter /usr/include" \
            CXXFLAGS="-idirafter /usr/include" \
              meson setup -Dlibc=musl -Ddbus-interfaces-dir=no musl
          mkosi box -- ninja -C musl