Skip to content

CI: run credo, dialyzer, hex audit, argus and tests - #36

Merged
bbangert merged 1 commit into
mainfrom
claude/serene-curie-xrjxef-ci
Oct 4, 2026
Merged

bbangert merged 1 commit into
mainfrom
claude/serene-curie-xrjxef-ci

Conversation

@bbangert

@bbangert bbangert commented Oct 4, 2026

Copy link
Copy Markdown
Owner

Stacked on #35.

What changed

CI already ran the test suite, mix credo --strict and mix dialyzer. This PR adds the two missing gates, using the same setup-beam versions, action versions and cache layout as the existing jobs:

  • Hex audit job: mix deps.get --check-locked, then mix deps.unlock --check-unused and mix hex.audit. This job has no build cache because it doesn't compile anything.
  • Argus job: runs on ubuntu-22.04, because Souffle's PPA package needs libffi7 and Ubuntu 24.04 doesn't ship it. It installs Souffle from the PPA, then runs mix deps.get --check-locked and mix argus --fail-above 0. Its deps/_build cache uses its own mix-argus- key so it doesn't share build output with the ubuntu-latest jobs.
  • mix.exs: adds {:argus_beam, "~> 0.20", only: [:dev, :test], runtime: false}, which locks argus_beam 0.20.1 and its deps. :argus is not added to compilers:, so it stays a separate CI gate.

The repo already has a .credo.exs, so this PR doesn't touch it.

Validation (local)

  • mix compile --warnings-as-errors, mix format --check-formatted: pass
  • mix test: 4 doctests, 418 tests, 0 failures
  • mix credo --strict: no issues
  • mix dialyzer: passed
  • mix deps.unlock --check-unused, mix hex.audit: clean
  • mix argus --fail-above 0: fails with 2 findings in existing code: an unidentified keepalive timer message in Espex.Connection.arm_keepalive/2, and a bare spawn in Espex.Connection.notify_connections_changed/1. This PR only adds the gate, as intended. The fixes are in the next PR in the stack ("Fix issues raised by the new CI gates"), so the Argus job is expected to be red on this PR alone.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UmkxCtMk3Y8vf2b42ZyVTu


Generated by Claude Code

Tests, credo and dialyzer already ran in CI. Add a Hex audit job
(hex.audit plus deps.unlock --check-unused) and an Argus job on
ubuntu-22.04 with Souffle from its PPA, and add argus_beam as a
dev/test dependency.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UmkxCtMk3Y8vf2b42ZyVTu

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The Argus gate currently fails on two known findings, leaving the PR’s CI permanently red.

Review effort: Balanced
Findings: 1 High severity

Open (1)
What changed in this PR

Adds Hex dependency auditing and Argus static analysis to CI.

Changes:

  • Adds dedicated Hex audit and Argus jobs.
  • Adds and locks the Argus dependency.
  • Configures Soufflé and isolated Argus caching.
File Description
.github/​workflows/​ci.yml Adds audit and Argus CI gates.
mix.exs Adds argus_beam.
mix.lock Locks Argus and transitive dependencies.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/ci.yml
mix-argus-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}-

- run: mix deps.get --check-locked
- run: mix argus --fail-above 0
Base automatically changed from claude/serene-curie-xrjxef-deps-minor to main October 4, 2026 18:43
@bbangert
bbangert merged commit 95b6bf7 into main Oct 4, 2026
5 of 6 checks passed
@bbangert
bbangert deleted the claude/serene-curie-xrjxef-ci branch October 4, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants