mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-05 06:32:37 +00:00
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.3 to 7.0.2. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/65462800fd760344b1a7b4382951275a0abb4808...cf430e030ddbb5b0abf93d22962f4752f3646cd9) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 7.0.2 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
149 lines
5.2 KiB
YAML
149 lines
5.2 KiB
YAML
name: reusable regression
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
suite:
|
|
description: Regression suite from scripts/regress.py
|
|
required: true
|
|
type: string
|
|
pdk:
|
|
description: PDK matrix selected by scripts/regress.py
|
|
required: true
|
|
type: string
|
|
profile:
|
|
description: Primary profile used for setup and environment checks
|
|
required: true
|
|
type: string
|
|
retention_days:
|
|
description: Report artifact retention
|
|
required: false
|
|
default: 30
|
|
type: number
|
|
timeout_minutes:
|
|
description: Maximum job duration
|
|
required: false
|
|
default: 360
|
|
type: number
|
|
toolset:
|
|
description: Space-separated locked tools required by this suite
|
|
required: false
|
|
default: verilator sv2v iverilog yosys opensta openocd sbt riscv_gnu
|
|
type: string
|
|
full_flow_checks:
|
|
description: Check Yosys and OpenSTA environments before running the suite
|
|
required: false
|
|
default: true
|
|
type: boolean
|
|
formal_checks:
|
|
description: Check the SBY, Yosys, sv2v, and Bitwuzla formal environment before the suite
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
regression:
|
|
runs-on: ubuntu-22.04
|
|
timeout-minutes: ${{ inputs.timeout_minutes }}
|
|
env:
|
|
PIP_DISABLE_PIP_VERSION_CHECK: "1"
|
|
steps:
|
|
- name: Check out repository
|
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- name: Restore locked source dependencies
|
|
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
|
|
with:
|
|
path: |
|
|
app/coremark/coremark-main
|
|
app/fatfs/ff16
|
|
physical/pdk/IHP-Open-PDK
|
|
physical/pdk/gf180mcu-pdk
|
|
physical/pdk/icsprout55-pdk
|
|
physical/pdk/skywater-pdk
|
|
rtl/managed/clusterip/archinfo
|
|
rtl/managed/clusterip/common
|
|
rtl/managed/clusterip/crc
|
|
rtl/managed/clusterip/ps2
|
|
rtl/managed/clusterip/pwm
|
|
rtl/managed/clusterip/rng
|
|
rtl/managed/clusterip/rtc
|
|
rtl/managed/clusterip/wdg
|
|
rtl/managed/third_party
|
|
rtl/managed/mpw
|
|
.cache/retrosoc/pdk
|
|
.cache/retrosoc/stamps
|
|
key: sources-${{ inputs.pdk }}-${{ runner.os }}-${{ hashFiles('dependencies/dependencies.lock.json') }}
|
|
|
|
- name: Restore locked toolchains
|
|
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
|
|
with:
|
|
path: |
|
|
.cache/retrosoc/downloads
|
|
.cache/retrosoc/toolchains
|
|
key: tools-${{ runner.os }}-${{ hashFiles('dependencies/dependencies.lock.json') }}
|
|
|
|
- name: Restore Verilator compiler cache
|
|
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
|
|
with:
|
|
path: .cache/retrosoc/ccache
|
|
key: ccache-${{ runner.os }}-${{ hashFiles('dependencies/dependencies.lock.json') }}-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt }}
|
|
restore-keys: |
|
|
ccache-${{ runner.os }}-${{ hashFiles('dependencies/dependencies.lock.json') }}-${{ github.sha }}-
|
|
ccache-${{ runner.os }}-${{ hashFiles('dependencies/dependencies.lock.json') }}-
|
|
|
|
- name: Install build Python dependency
|
|
run: python3 -m pip install --requirement requirements/build.txt
|
|
|
|
- name: Set up locked EDA and compiler tools
|
|
uses: ./.github/actions/locked-tools
|
|
with:
|
|
tools: ${{ inputs.toolset }}
|
|
|
|
- name: Set up locked source dependencies
|
|
run: make CONFIG=${{ inputs.profile }} setup
|
|
|
|
- name: Check behavioral environments
|
|
run: |
|
|
make CONFIG=${{ inputs.profile }} \
|
|
SIMU=IVERILOG SYNTH=NONE STA=NONE doctor
|
|
make CONFIG=${{ inputs.profile }} \
|
|
SIMU=VERILATOR SYNTH=NONE STA=NONE doctor
|
|
|
|
- name: Check synthesis and timing environments
|
|
if: inputs.full_flow_checks
|
|
run: |
|
|
make CONFIG=${{ inputs.profile }} \
|
|
SIMU=IVERILOG SYNTH=YOSYS STA=NONE doctor
|
|
make CONFIG=${{ inputs.profile }} \
|
|
SIMU=IVERILOG SYNTH=NONE STA=OPENSTA doctor
|
|
|
|
- name: Check formal environment
|
|
if: inputs.formal_checks
|
|
run: make CONFIG=${{ inputs.profile }} formal-doctor
|
|
|
|
- name: Run ${{ inputs.suite }} regression
|
|
run: >-
|
|
python3 scripts/regress.py --root . --suite "${{ inputs.suite }}"
|
|
--pdk "${{ inputs.pdk }}" --behavioral-only
|
|
|
|
- name: Upload reports and structured results
|
|
if: always()
|
|
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
with:
|
|
name: ${{ inputs.suite }}-regression-${{ github.run_id }}-${{ github.run_attempt }}
|
|
path: |
|
|
build/**/meta/*.json
|
|
build/**/formal/**/*.sby
|
|
build/**/formal/**/*.smt2
|
|
build/**/formal/**/*.vcd
|
|
build/**/formal/**/*.yw
|
|
build/**/formal/**/status
|
|
build/**/*.log
|
|
build/**/*.rpt
|
|
if-no-files-found: warn
|
|
retention-days: ${{ inputs.retention_days }}
|