Files
retroSoC/.github/workflows/quality.yml
T
maksyuki d886cd992c feat: refactor SoC topology and NMI integration
- Updated the  file to improve code readability and maintainability by removing commented-out code and adding generated GPIO alternate-function wiring.
- Modified  to streamline simulation command configurations and removed unnecessary variables.
- Introduced a new testbench  to validate NMI routing functionality within the SoC topology.
- Added comprehensive tests in  to ensure the correctness of generated bindings and validate topology constraints.
- Adjusted  to reflect changes in regression command imports and ensure uniform timeout settings for Verilator simulations.
2026-07-23 12:07:45 +08:00

82 lines
2.1 KiB
YAML

name: quality
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: quality-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
scripts:
runs-on: ubuntu-22.04
timeout-minutes: 20
steps:
- name: Check out repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Restore pip cache
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ~/.cache/pip
key: pip-${{ runner.os }}-${{ hashFiles('requirements/ci.txt') }}
- name: Install pinned quality tools
run: python3 -m pip install --requirement requirements/ci.txt
- name: Install clang-format
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends --yes clang-format-14
- name: Set up locked RTL formatter
uses: ./.github/actions/locked-tools
with:
tools: verible
- name: Validate dependency lock
run: python3 scripts/dependency_lock.py --lock config/dependencies.lock.json
- name: Validate SoC integration topology
run: make check-soc-topology
- name: Lint Python
run: ruff check .
- name: Check source formatting
run: make format-check
- name: Check embedded C safety policy
run: make sw-policy-check
- name: Run embedded C host tests
run: make sw-host-test
- name: Test scripts
run: python3 -m pytest -q
- name: Lint YAML
run: yamllint .github .yamllint.yml
- name: Install pinned actionlint
env:
GOBIN: ${{ runner.temp }}/actionlint-bin
run: |
go install github.com/rhysd/actionlint/cmd/actionlint@v1.7.12
echo "${GOBIN}" >> "${GITHUB_PATH}"
- name: Lint GitHub Actions
run: actionlint
- name: Validate regression definitions
run: |
python3 scripts/regress.py --root . --suite pr --dry-run
python3 scripts/regress.py --root . --suite nightly --dry-run