Skip to content

chrismcdev/PeakRDL-check-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PeakRDL-check example

A minimal SystemRDL project that demonstrates and continuously tests the PeakRDL-check GitHub Action on a hosted runner.

Action smoke test

What this repository tests

  • The released composite action can be consumed from another repository.
  • A known register-address change is classified as breaking.
  • The action exposes its breaking-change count and uploads its JSON and Markdown reports.
  • Pull requests that change SystemRDL files receive the normal review gate.

The smoke test uses the immutable v0.2.0 release so a passing run proves that exact published version works for consumers.

Use the action

- uses: actions/checkout@v7
  with:
    fetch-depth: 0

- uses: chrismcdev/PeakRDL-check/action@v0.2.0
  with:
    base-ref: ${{ github.event.pull_request.base.sha }}
    head-ref: ${{ github.event.pull_request.head.sha }}
    fail-on: breaking

See registers/design.rdl for the project entry point, registers/uart.rdl for the UART block, and the pull-request workflow for the complete configuration.

Try a breaking change

  1. Create a branch.
  2. Change ctrl @ 0x0 to ctrl @ 0x40 in registers/uart.rdl.
  3. Open a pull request.

PeakRDL-check will annotate the address change, add a job summary, upload the review reports and fail the gate.

Interactive pull-request preview

This repository can also deploy a register-map viewer for each pull request using Railway PR environments. The preview shows the new register map and its semantic changes; the GitHub Action above remains the CI gate.

To enable previews:

  1. Create a Railway project from this GitHub repository.
  2. Generate a Railway domain for the service.
  3. In Project Settings → Environments, enable PR Environments.

Railway detects the included Dockerfile, posts the preview URL on each pull request, updates it after new commits, and removes it when the pull request closes. The container builds registers/design.rdl, compares it with main, and serves the result on Railway's generated URL. The preview-entrypoint.sh script performs that one-time build and then starts the viewer.

registers/design.rdl is the entry point for the complete register map. Add new RDL source files with `include directives there so both the viewer and semantic diff compile the whole design.

About

Minimal SystemRDL project demonstrating and testing the PeakRDL-check GitHub Action.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors