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
- Installs
arch-checkfrom the Action’s own commit, so pinning the Action pins the CLI too. - Runs
arch-check checkand writesarchitecture-check.json. - 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.