Skip to content
Argus

The GitHub Action

The Action installs arch-check, runs it against the repository’s pinned slice, and uploads the result as the artifact architecture-check on each pull request. The dashboard reads that artifact through the GitHub App.

Adding it

Where the Action is published, and so the exact uses: line: to be confirmed. Pin it to a full commit SHA, never a branch.

name: architecture
on:
  pull_request:
permissions:
  contents: read
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: "Architecture: contracts, drift, interfaces and ADR references"
        uses: <to be confirmed>/architecture-check@<full commit SHA>

The runner needs Python 3.11 or later; GitHub’s Ubuntu runners have it.

Inputs

Input Default What
repo . the checkout
slice architecture/index.json the pinned slice, relative to repo unless absolute
json-out architecture-check.json where the result is written
upload true upload the artifact on a pull_request event (only then)
python python3 the interpreter the CLI is installed with (3.11 or later)

What it does

  1. Installs arch-check from the Action’s own commit, so pinning the Action pins the CLI too.
  2. Runs arch-check check and writes architecture-check.json.
  3. On a pull request, uploads that file as the artifact architecture-check, kept for 30 days. The upload runs even when the check fails.

The step fails when the check finds a violation. Drift alone doesn’t fail it.

What you see in the dashboard

Within about ten minutes of the run, the pull request’s page shows its findings, the files it changed mapped to their components, what else those components reach, and any contract files it touched.

Coming soon

  • One architecture comment on each pull request, updated in place: the check’s result, the components touched, dependency and contract changes, the ADRs cited, and a link to the pull request’s page.
  • Contract checks in the Action: breaking-change findings for OpenAPI files and MCP tool lists. The dashboard already shows them when a pull request’s artifact holds them.
  • A required status check through the GitHub App, so a violation can block a merge.
  • How the check runs on your default branch for a new organisation: to be confirmed.