Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 162 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,15 @@ jobs:
echo "PR from external fork ($HEAD_REPO_OWNER). Custom CI checks will be skipped."
fi

# Public tests (all start immediately, GitHub-hosted runners)

Test-DCLS:
name: Test-DCLS-Regression
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-regression-dcls.yml
with:
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-Regression-Cache-Waypack-0-num-ways-2:
name: Test-Regression Cache Waypack 0 Num Ways 2
Expand All @@ -47,7 +50,8 @@ jobs:
with:
waypack: 0
num_ways: 2
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-Regression-Cache-Waypack-0-num-ways-4:
name: Test-Regression Cache Waypack 0 Num Ways 4
Expand All @@ -56,7 +60,8 @@ jobs:
with:
waypack: 0
num_ways: 4
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-Regression-Cache-Waypack-1-num-ways-2:
name: Test-Regression Cache Waypack 1 Num Ways 2
Expand All @@ -65,7 +70,8 @@ jobs:
with:
waypack: 1
num_ways: 2
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-Regression-Cache-Waypack-1-num-ways-4:
name: Test-Regression Cache Waypack 1 Num Ways 4
Expand All @@ -74,35 +80,40 @@ jobs:
with:
waypack: 1
num_ways: 4
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-Exceptions-Regression:
name: Test-Exceptions-Regression
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-regression-exceptions.yml
with:
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-Verification:
name: Test-Verification
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-verification.yml
with:
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-Microarchitectural:
name: Test-Microarchitectural
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-uarch.yml
with:
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-RISCV-DV:
name: Test-RISCV-DV
Test-OpenOCD:
name: Test-OpenOCD
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-riscv-dv.yml
uses: ./.github/workflows/test-openocd.yml
with:
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}
run_public: true
run_custom: false

Test-RISCOF:
name: Test-RISCOF
Expand All @@ -116,15 +127,139 @@ jobs:
name: Test-Renode
uses: ./.github/workflows/test-renode.yml

Test-OpenOCD:
name: Test-OpenOCD
# Custom: immediate starters (self-hosted runners)
# PMP-Random and OpenOCD (JTAG) are long-running; they start immediately and
# run in parallel with all subsequent waves without gating any of them.
# Exceptions also starts immediately and acts as the gate for Wave 2.

Custom-PMP-Random:
name: Custom PMP Random tests
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-uarch.yml
with:
run_public: false
run_custom: true
run_pmp_random: true

Custom-Regression-Cache-Waypack-PMP-Random:
name: Custom Cache Waypack PMP Random tests
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-regression-cache-waypack-pmp-random.yml
with:
run_custom: true

Custom-OpenOCD:
name: Custom OpenOCD (JTAG) tests
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-openocd.yml
with:
run_public: false
run_custom: true

Custom-Exceptions:
name: Custom Exceptions Regression
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin]
uses: ./.github/workflows/test-regression-exceptions.yml
with:
run_public: false
run_custom: true

# Custom Wave 2: Cache Waypack 0 (after Exceptions)

Custom-Regression-Cache-Waypack-0-num-ways-2:
name: Custom Regression Cache Waypack 0 Num Ways 2
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin, Custom-Exceptions]
uses: ./.github/workflows/test-regression-cache-waypack.yml
with:
waypack: 0
num_ways: 2
run_public: false
run_custom: true

Custom-Regression-Cache-Waypack-0-num-ways-4:
name: Custom Regression Cache Waypack 0 Num Ways 4
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin, Custom-Exceptions]
uses: ./.github/workflows/test-regression-cache-waypack.yml
with:
waypack: 0
num_ways: 4
run_public: false
run_custom: true

# Custom Wave 3: Cache Waypack 1 (after Waypack 0)

Custom-Regression-Cache-Waypack-1-num-ways-2:
name: Custom Regression Cache Waypack 1 Num Ways 2
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin, Custom-Regression-Cache-Waypack-0-num-ways-2, Custom-Regression-Cache-Waypack-0-num-ways-4]
uses: ./.github/workflows/test-regression-cache-waypack.yml
with:
waypack: 1
num_ways: 2
run_public: false
run_custom: true

Custom-Regression-Cache-Waypack-1-num-ways-4:
name: Custom Regression Cache Waypack 1 Num Ways 4
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin, Custom-Regression-Cache-Waypack-0-num-ways-2, Custom-Regression-Cache-Waypack-0-num-ways-4]
uses: ./.github/workflows/test-regression-cache-waypack.yml
with:
waypack: 1
num_ways: 4
run_public: false
run_custom: true

# Custom Wave 4: remaining tests (after Waypack 1)

Custom-DCLS:
name: Custom DCLS Regression
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin, Custom-Regression-Cache-Waypack-1-num-ways-2, Custom-Regression-Cache-Waypack-1-num-ways-4]
uses: ./.github/workflows/test-regression-dcls.yml
with:
run_public: false
run_custom: true

Custom-Verification:
name: Custom Verification tests
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin, Custom-Regression-Cache-Waypack-1-num-ways-2, Custom-Regression-Cache-Waypack-1-num-ways-4]
uses: ./.github/workflows/test-verification.yml
with:
run_public: false
run_custom: true

Custom-Microarchitectural:
name: Custom Microarchitectural tests
if: needs.Check-PR-Origin.outputs.is_internal == 'true'
needs: [Check-PR-Origin, Custom-Regression-Cache-Waypack-1-num-ways-2, Custom-Regression-Cache-Waypack-1-num-ways-4]
uses: ./.github/workflows/test-uarch.yml
with:
run_public: false
run_custom: true

# RISCV-DV custom tests depend on public run-tests artifacts (generated by
# the custom generate-code job internally), so they are kept as a combined
# call. Placed in Wave 4 to avoid competing with earlier waves for runner slots.
Test-RISCV-DV:
name: Test-RISCV-DV
needs: [Check-PR-Origin, Custom-Regression-Cache-Waypack-1-num-ways-2, Custom-Regression-Cache-Waypack-1-num-ways-4]
uses: ./.github/workflows/test-riscv-dv.yml
with:
run_custom: ${{ needs.Check-PR-Origin.outputs.is_internal == 'true' }}

# Coverage & publishing

Report-Coverage:
name: Report-Coverage
if: always()
needs: [
Check-PR-Origin,
Test-DCLS,
Expand All @@ -135,9 +270,20 @@ jobs:
Test-Exceptions-Regression,
Test-Verification,
Test-Microarchitectural,
Test-RISCV-DV,
Test-RISCOF,
Test-OpenOCD
Test-OpenOCD,
Custom-PMP-Random,
Custom-Regression-Cache-Waypack-PMP-Random,
Custom-OpenOCD,
Custom-Exceptions,
Custom-Regression-Cache-Waypack-0-num-ways-2,
Custom-Regression-Cache-Waypack-0-num-ways-4,
Custom-Regression-Cache-Waypack-1-num-ways-2,
Custom-Regression-Cache-Waypack-1-num-ways-4,
Custom-DCLS,
Custom-Verification,
Custom-Microarchitectural,
Test-RISCV-DV
]
uses: ./.github/workflows/report-coverage.yml
with:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/test-openocd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: Test-OpenOCD
on:
workflow_call:
inputs:
run_public:
type: boolean
default: true
run_custom:
type: boolean
default: true
Expand All @@ -14,6 +17,7 @@ defaults:
jobs:
tests:
name: Run OpenOCD tests
if: inputs.run_public
runs-on: ubuntu-24.04
container: ghcr.io/antmicro/cores-veer-el2:20250411084921
strategy:
Expand Down
44 changes: 44 additions & 0 deletions .github/workflows/test-regression-cache-waypack-pmp-random.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Regression tests cache waypack PMP Random (custom)

on:
workflow_call:
inputs:
run_custom:
type: boolean
default: true

defaults:
run:
shell: bash

jobs:
custom-pmp-random-waypack:
name: Custom cache waypack pmp_random tests
if: inputs.run_custom
runs-on: [ self-hosted, Linux, X64, gcp-custom-runners ]
container: centos:8
strategy:
matrix:
waypack: [0, 1]
num_ways: [2, 4]
bus: ["axi", "ahb"]
priv: ["0", "1"]
ecc: ["0", "1"]
env:
GHA_EXTERNAL_DISK: additional-tools
GHA_SA: gh-sa-veer-uploader
WAYPACK: ${{ matrix.waypack }}
NUM_WAYS: ${{ matrix.num_ways }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Run tests
run: _secret_custom_regression_tests_waypack:8
env:
TEST: pmp_random
BUS: ${{ matrix.bus }}
PRIV: ${{ matrix.priv }}
ECC: ${{ matrix.ecc }}
TB_TIMEOUT: "8000000"
4 changes: 4 additions & 0 deletions .github/workflows/test-regression-cache-waypack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ on:
num_ways:
required: true
type: number
run_public:
type: boolean
default: true
run_custom:
type: boolean
default: true
Expand All @@ -24,6 +27,7 @@ env:
jobs:
regression-tests:
name: Regression tests
if: inputs.run_public
runs-on: ubuntu-24.04
container: ghcr.io/antmicro/cores-veer-el2:20250411084921
strategy:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/test-regression-dcls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: Regression tests DCLS
on:
workflow_call:
inputs:
run_public:
type: boolean
default: true
run_custom:
type: boolean
default: true
Expand All @@ -14,6 +17,7 @@ defaults:
jobs:
regression-tests:
name: Regression tests
if: inputs.run_public
runs-on: ubuntu-latest
container: ghcr.io/antmicro/cores-veer-el2:20250411084921
strategy:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/test-regression-exceptions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: Regression exceptions tests
on:
workflow_call:
inputs:
run_public:
type: boolean
default: true
run_custom:
type: boolean
default: true
Expand All @@ -14,6 +17,7 @@ defaults:
jobs:
regression-tests:
name: Regression exceptions tests
if: inputs.run_public
runs-on: ubuntu-24.04
container: ghcr.io/antmicro/cores-veer-el2:20250411084921
strategy:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/test-riscv-dv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: RISCV-DV tests
on:
workflow_call:
inputs:
run_public:
type: boolean
default: true
run_custom:
type: boolean
default: true
Expand Down Expand Up @@ -110,6 +113,7 @@ jobs:

run-tests:
name: Run RISC-V DV tests
if: inputs.run_public
runs-on: ubuntu-24.04
container: ghcr.io/antmicro/cores-veer-el2:20250411084921
needs: [ generate-config, generate-code ]
Expand Down
Loading
Loading