Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8630b28
scst_mem: Repair the optional highmem clustering check
lnocturno Oct 23, 2026
dfeccbc
scst_pres: Make optional UA registrant exclusion explicit
lnocturno Oct 23, 2026
59119b1
scst_user: Print unsigned command handles in the file handler
lnocturno Oct 23, 2026
7418bc5
scst: Tighten internal const contracts and variable scope
lnocturno Oct 23, 2026
78c9af8
scst: Shorten statements and trace argument lines
lnocturno Oct 23, 2026
88ac7fc
iscsi-scstd: Replace digest arithmetic macros with inline functions
lnocturno Oct 23, 2026
2e45a69
iscsi-scstd: Separate parameter lookup assignments from conditions
lnocturno Oct 23, 2026
bf3d916
iscsi-scst: Initialize session attribute names as strings
lnocturno Oct 23, 2026
24a5829
scst_lib: Remove impossible CDB field-decoder error branches
lnocturno Oct 23, 2026
969b459
scst_user: Advance the cache-flush address only when needed
lnocturno Oct 23, 2026
8e5b0d8
.github/workflows: Run PR checks regardless of changed paths
lnocturno Oct 23, 2026
3d7d11d
scripts: Keep analyzer targets on the full configured source scope
lnocturno Oct 23, 2026
0142b84
scripts: Preserve checker execution records and partial diagnostics
lnocturno Oct 23, 2026
37056a3
build: Export configured kernel and userspace compiler commands
lnocturno Oct 23, 2026
ec763a4
scripts: Remove Checkpatch from kernel regression CI
lnocturno Oct 23, 2026
818f478
scripts: Validate source-bound Checkpatch exceptions
lnocturno Oct 23, 2026
81d589c
scst: Declare reviewed Checkpatch compatibility and layout exceptions
lnocturno Oct 23, 2026
6ff032f
scripts: Track Coccinelle source coverage and macro limitations
lnocturno Oct 23, 2026
76c23d6
scst: Declare reviewed Coccinelle ownership and compatibility exceptions
lnocturno Oct 23, 2026
5f40544
scripts: Analyze captured Cppcheck contexts with explicit kernel models
lnocturno Oct 23, 2026
284f1fd
scst: Declare native Cppcheck exceptions at reviewed contract sites
lnocturno Oct 23, 2026
a97fb30
scripts: Unify Make analyzer output and validate run evidence
lnocturno Oct 23, 2026
683fef1
scripts: Add a strict native analyzer model test runner
lnocturno Oct 23, 2026
f2d950a
.github/workflows: Run full analyzers and native model checks
lnocturno Oct 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .agents/skills/scst-kernel-update/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,8 @@ requests suffice; do not download large packages just to check availability.
## Apply and validate

- Update each existing series to its newest confirmed published version.
Keep options (`-nc`, `-ns`, etc.) and ordering. When advancing the upstream
head, preserve the repository's convention: the new head has full nightly
checks and the previous head becomes a normal `-nc` entry.
Keep the supported options (`-4`, `-f`, `-u`, `-p`) and ordering. Static
analyzers run separately from kernel compatibility builds.
- Add a new upstream series when the request covers that release. Newly
discovered distribution minors, OL majors, and UEK generations are reported
separately; adding them requires a separate support change.
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/scst-qla2xxx-update/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ python3 scripts/kernel/qla2xxx.py export --linux <linux-repo> \
substantial defaults, capability and control-flow differences separately
from mechanical backports; token equality is not semantic proof.
- Run the tool tests if its behavior changed, plus the repository's required
diff, per-commit checkpatch and message checks. Inspect imported diagnostics
diff, `make checkpatch` and commit-message checks. Inspect imported diagnostics
individually; do not rewrite upstream patches merely to hide existing
warnings or extend ignore lists.
- Compile core and both newer QLogic modules against the target kernel, using
Expand Down
104 changes: 0 additions & 104 deletions .github/ci-checks.toml

This file was deleted.

42 changes: 25 additions & 17 deletions .github/workflows/analyzers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,14 @@ name: Static analyzers
on:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

permissions:
contents: read

Expand All @@ -13,22 +19,11 @@ defaults:
shell: bash

jobs:
script-tests:
name: Analyzer script tests
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- name: Run analyzer script tests
run: make lint-test

scs-lint:
name: SCST code style
needs: script-tests
runs-on: ubuntu-24.04
timeout-minutes: 10
continue-on-error: ${{ github.event_name == 'push' }}
steps:
- uses: actions/checkout@v7
with:
Expand All @@ -42,16 +37,24 @@ jobs:
run: make scs-lint-test
- name: Run make scs_lint
run: make scs_lint
- name: Save complete analyzer evidence
if: always()
uses: actions/upload-artifact@v7
with:
name: scs-lint-evidence
retention-days: 7
path: .cache/lint/

native:
name: ${{ matrix.analyzer }}
needs: script-tests
name: ${{ matrix.analyzer == 'analyzer-tests' && 'Analyzer tests' || matrix.analyzer }}
runs-on: ubuntu-24.04
timeout-minutes: 45
continue-on-error: ${{ github.event_name == 'push' }}
strategy:
fail-fast: false
matrix:
analyzer:
- analyzer-tests
- sparse
- smatch
- checkpatch
Expand All @@ -61,7 +64,7 @@ jobs:
- uses: actions/checkout@v7
with:
persist-credentials: false
- name: Build pinned analyzer environment
- name: Prepare analyzer environment
run: |
docker build -f scripts/ci/analyzers.Dockerfile -t scst-analyzers:local . \
2>&1 | tee "$RUNNER_TEMP/analyzer-image.log"
Expand All @@ -72,10 +75,15 @@ jobs:
source scripts/ci/kernel.env
docker run --rm --init --network=none --cap-drop=ALL \
--security-opt=no-new-privileges --user "$(id -u):$(id -g)" \
--env HOME=/tmp --env GITHUB_STEP_SUMMARY=/scst/.cache/analyzer-summary \
--env HOME=/tmp --env GITHUB_ACTIONS=true \
--env GITHUB_STEP_SUMMARY=/scst/.cache/analyzer-summary \
--env "KDIR=/usr/src/kernels/$KERNEL_BUILD.x86_64" \
--mount "type=bind,src=$PWD,dst=/scst" scst-analyzers:local \
python3 -B scripts/ci/run-analyzer.py "$ANALYZER"
sh -c 'if [ "$1" = analyzer-tests ]; then
exec make analyzer-tests
else
exec python3 -B scripts/ci/run-analyzer.py "$1"
fi' -- "$ANALYZER"
- name: Publish summary
if: always()
run: |
Expand Down
31 changes: 0 additions & 31 deletions .github/workflows/checkpatch_pull.yml

This file was deleted.

15 changes: 1 addition & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,15 @@ jobs:
- uses: actions/checkout@main
with:
persist-credentials: false
fetch-depth: 0
- name: Check CI selection
run: python3 -m unittest discover -s scripts/ci -p 'test_select_checks.py'
- name: Select Clang build
id: changes
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
python3 scripts/ci/select_checks.py --check clang --event "$GITHUB_EVENT_NAME" \
--base "$BASE_SHA" --head "$HEAD_SHA"
- name: Install build-essential
if: steps.changes.outputs.run == 'true'
run: |
sudo apt-get update
sudo apt-get install -y build-essential debhelper devscripts dpkg-dev quilt
- name: Install multilib
run: |
sudo apt-get install -y gcc-multilib g++-multilib
if: steps.changes.outputs.run == 'true' && matrix.arch == 'x86'
if: matrix.arch == 'x86'
- name: Build
if: steps.changes.outputs.run == 'true'
env:
'CC': ${{ matrix.compiler }}
CFLAGS: ${{ matrix.arch == 'x86' && '-m32' || '' }}
Expand Down
17 changes: 1 addition & 16 deletions .github/workflows/ginkgo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,37 +27,22 @@ jobs:
- uses: actions/checkout@v7
with:
persist-credentials: false
# Compare the whole PR against its merge base, including fork PRs.
fetch-depth: 0
- name: Check CI selection
run: python3 -m unittest discover -s scripts/ci -p 'test_select_checks.py'
- name: Select Ginkgo checks
id: changes
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
python3 scripts/ci/select_checks.py --check ginkgo --event "$GITHUB_EVENT_NAME" \
--base "$BASE_SHA" --head "$HEAD_SHA"
- name: Install build and VM tools
if: steps.changes.outputs.run == 'true'
run: |
sudo apt-get update
sudo apt-get install -y qemu-system-x86 qemu-utils openssh-client e2fsprogs fakeroot
- name: Build SCST image and check Ginkgo framework
if: steps.changes.outputs.run == 'true'
timeout-minutes: ${{ github.event_name == 'pull_request' && 10 || 40 }}
run: bash scripts/ci/build-image ginkgo "$RUNNER_TEMP/ginkgo-image"
- name: Run local and iSCSI tests against the compiled SCST
if: steps.changes.outputs.run == 'true'
env:
GINKGO_LABEL: ${{ github.event_name == 'pull_request' && 'ci-pr' || github.event_name == 'push' && 'ci-push' || '' }}
VM_TIMEOUT: ${{ github.event_name == 'pull_request' && '1080' || '10000' }}
run: |
python3 scripts/ci/vm.py ginkgo "$RUNNER_TEMP/ginkgo-image" \
"$RUNNER_TEMP/ginkgo-results" --timeout "$VM_TIMEOUT" --ginkgo-label "$GINKGO_LABEL"
- name: Save build logs, reports and serial consoles
if: always() && steps.changes.outputs.run == 'true'
if: always()
uses: actions/upload-artifact@v7
with:
name: ginkgo-results
Expand Down
18 changes: 2 additions & 16 deletions .github/workflows/kunit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,38 +27,24 @@ jobs:
- uses: actions/checkout@v7
with:
persist-credentials: false
# Compare the whole PR against its merge base, including fork PRs.
fetch-depth: 0
- name: Check VM supervisor and CI selection
- name: Check VM supervisor
run: python3 -m unittest discover -s scripts/ci -p 'test_*.py'
- name: Select KUnit checks
id: changes
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: |
python3 scripts/ci/select_checks.py --check kunit --event "$GITHUB_EVENT_NAME" \
--base "$BASE_SHA" --head "$HEAD_SHA"
- name: Install VM tools
if: steps.changes.outputs.run == 'true'
run: |
sudo apt-get update
sudo apt-get install -y qemu-system-x86 qemu-utils e2fsprogs fakeroot
- name: Build kernel-matched image and KUnit modules
if: steps.changes.outputs.run == 'true'
run: bash scripts/ci/build-image kunit "$RUNNER_TEMP/kunit-image"
- name: Exercise VM success, panic and timeout handling
if: steps.changes.outputs.run == 'true'
run: |
python3 scripts/ci/vm.py self-test "$RUNNER_TEMP/kunit-image" \
"$RUNNER_TEMP/kunit-supervisor" --timeout 180 --accel tcg
- name: Run KUnit
if: steps.changes.outputs.run == 'true'
run: |
python3 scripts/ci/vm.py kunit "$RUNNER_TEMP/kunit-image" \
"$RUNNER_TEMP/kunit-results" --timeout 1200
- name: Save build and runtime evidence
if: always() && steps.changes.outputs.run == 'true'
if: always()
uses: actions/upload-artifact@v7
with:
name: kunit-results
Expand Down
Loading
Loading