ci(security): scan Nuitka build artifacts before publishing release assets (#76) #123

Merged
ValleyGeek merged 1 commit from 0.1.42/issue-76-build-security-scanning into main 2026-06-22 01:36:45 +00:00
Member

Summary

  • #76 — both release jobs (Linux AppImage, Windows release) now run a security scan on the freshly built artifact, after the Nuitka build and before it's published as a Forgejo release asset:
    • ClamAV scans the AppImage/exe; a detection fails the build.
    • Static analysis is informational only and never fails the build: checksec/readelf/file on Linux, an Authenticode signature check + PE section/entropy dump (via pefile) on Windows.
    • VirusTotal upload is optional infrastructure: it skips quietly when no VT_API_KEY secret is configured, and never fails the build on a network error or a detection — it only links the multi-engine report.
    • Each step writes its summary (including the artifact's SHA256) to the job's step summary. Documented in README under a new "Security scanning" section.
  • CI/workflow-only change — no src/resources/pyproject.toml changes, so no VERSION bump per AGENTS.md.

Test plan

  • Workflow YAML reviewed for correctness
  • No app-level pytest/smoke needed (CI-only change)

Refs #76.

Stacked on #122 — part of the 11-PR sequential chain into main.

## Summary - **#76** — both release jobs (Linux AppImage, Windows release) now run a security scan on the freshly built artifact, after the Nuitka build and before it's published as a Forgejo release asset: - ClamAV scans the AppImage/exe; a detection fails the build. - Static analysis is informational only and never fails the build: checksec/readelf/file on Linux, an Authenticode signature check + PE section/entropy dump (via pefile) on Windows. - VirusTotal upload is optional infrastructure: it skips quietly when no `VT_API_KEY` secret is configured, and never fails the build on a network error or a detection — it only links the multi-engine report. - Each step writes its summary (including the artifact's SHA256) to the job's step summary. Documented in README under a new "Security scanning" section. - CI/workflow-only change — no `src`/`resources`/`pyproject.toml` changes, so no VERSION bump per AGENTS.md. ## Test plan - [x] Workflow YAML reviewed for correctness - [x] No app-level pytest/smoke needed (CI-only change) Refs #76. Stacked on #122 — part of the 11-PR sequential chain into `main`.
ci(security): scan Nuitka build artifacts before publishing release assets
Some checks failed
CI / lint (push) Successful in 7s
CI / test (push) Failing after 1m50s
CI / appimage (push) Has been skipped
CI / windows-exe (push) Has been skipped
CI / build-appimage (push) Failing after 0s
CI / build-windows-exe (push) Failing after 0s
fcfbc39ab8
Both release jobs (linux-appimage.yml, windows-release.yml) now run a
security scan on the freshly built artifact, after the Nuitka build and
before it's published as a Forgejo release asset:

- ClamAV scans the AppImage/exe; a detection fails the build, so a published
  release was never flagged by ClamAV's signature database at build time
  (scripts/security-scan-artifact.py).
- Static analysis is informational only and never fails the build: checksec/
  readelf/file on Linux, an Authenticode signature check + PE section/entropy
  dump (via pefile) on Windows.
- VirusTotal upload is optional infrastructure: it skips quietly when no
  VT_API_KEY secret is configured, and never fails the build on a network
  error or a detection — it only links the multi-engine report
  (scripts/virustotal-scan.py).

Each step writes its summary (including the artifact's SHA256) to the job's
GITHUB_STEP_SUMMARY. Documented in README under a new "Security scanning"
section. No src/resources/pyproject.toml changes, so no VERSION bump per
AGENTS.md (workflow/script-only).

Fixes #76
Claude force-pushed 0.1.42/issue-76-build-security-scanning from fcfbc39ab8
Some checks failed
CI / lint (push) Successful in 7s
CI / test (push) Failing after 1m50s
CI / appimage (push) Has been skipped
CI / windows-exe (push) Has been skipped
CI / build-appimage (push) Failing after 0s
CI / build-windows-exe (push) Failing after 0s
to 5e014e7e3f 2026-06-22 00:54:30 +00:00
Compare
ValleyGeek changed target branch from 0.1.41/issue-88-89-tag-toolbox to main 2026-06-22 01:27:05 +00:00
Claude force-pushed 0.1.42/issue-76-build-security-scanning from 5e014e7e3f to bb07b4c274 2026-06-22 01:27:59 +00:00 Compare
ValleyGeek deleted branch 0.1.42/issue-76-build-security-scanning 2026-06-22 01:36:45 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-collab/bulk-image-organizer!123
No description provided.