Skip to content

Run-Frequent

Run-Frequent #20

Workflow file for this run

name: Run-Frequent
# Performs workloads we want to run as frequently as possible
# Currently that is building/testing a variety of targets
# Current compute time estimate:
# ~116 hrs every 6 hours
# There are 20 github runners, giving us a hard limit of 120 hrs every 6 hrs
on:
schedule:
# Run 2 times a day
- cron: 0 0,6,12,18 * * *
workflow_dispatch:
branches:
- main
inputs:
gcchash:
description: 'GCC Hash'
required: true
multi_target:
description: 'Targets to run (libc:arch-abi;...)'
required: true
issue_num:
description: 'Bisection Issue Number (Optional)'
required: false
jobs:
init-submodules:
uses: ./.github/workflows/init-submodules.yaml
creg: # Check Regressions. Short name so I can see the matrix string in github
needs: [init-submodules]
strategy:
fail-fast: false
matrix:
mode: [newlib, linux]
target:
[
rv32gc_zba_zbb_zbc_zbs-ilp32d, # rv32 bitmanip
rv64gc_zba_zbb_zbc_zbs-lp64d, # rv64 bitmanip
]
multilib: [non-multilib]
uses: ./.github/workflows/build-test.yaml
with:
mode: ${{ matrix.mode }}
target: ${{ matrix.target }}
gcchash: ${{ needs.init-submodules.outputs.gcchash }}
multilib: ${{ matrix.multilib }}
multitarget: ${{ github.event.inputs.multi_target }}
riscv_gnu_toolchain_hash: ${{ needs.init-submodules.outputs.riscv_gnu_toolchain_hash }}
run_on_self_hosted: false
creg-sh: # Check Regressions Self Hosted. Short name so I can see the matrix string in github
needs: [init-submodules]
strategy:
fail-fast: false
matrix:
mode: [newlib, linux]
target:
[
rv32gcv-ilp32d, # rv32 vector
rv64gcv-lp64d, # rv64 vector
rv32gcv_zvbb_zvbc_zvkg_zvkn_zvknc_zvkned_zvkng_zvknha_zvknhb_zvks_zvksc_zvksed_zvksg_zvksh_zvkt-ilp32d, # rv32 vector crypto
rv64gcv_zvbb_zvbc_zvkg_zvkn_zvknc_zvkned_zvkng_zvknha_zvknhb_zvks_zvksc_zvksed_zvksg_zvksh_zvkt-lp64d, # rv64 vector crypto
rv64imafdcv_zicond_zawrs_zbc_zvkng_zvksg_zvbb_zvbc_zicsr_zba_zbb_zbs_zicbom_zicbop_zicboz_zfhmin_zkt-lp64d, # RVA23U64 profile with optional extensions, excluding unsupported extensions
]
multilib: [non-multilib]
uses: ./.github/workflows/build-test.yaml
with:
mode: ${{ matrix.mode }}
target: ${{ matrix.target }}
gcchash: ${{ needs.init-submodules.outputs.gcchash }}
multilib: ${{ matrix.multilib }}
multitarget: ${{ github.event.inputs.multi_target }}
riscv_gnu_toolchain_hash: ${{ needs.init-submodules.outputs.riscv_gnu_toolchain_hash }}
run_on_self_hosted: true
cmreg: # Check Multilib Regressions. Short name so I can see the matrix string in github
needs: [init-submodules]
strategy:
fail-fast: false
matrix:
mode: [newlib]
target: [rv64gc-lp64d] # Dummy placeholder. Actually runs rv32/rv64 multilib
multilib: [multilib]
uses: ./.github/workflows/build-test.yaml
with:
mode: ${{ matrix.mode }}
target: ${{ matrix.target }}
gcchash: ${{ needs.init-submodules.outputs.gcchash }}
multilib: ${{ matrix.multilib }}
multitarget: ${{ github.event.inputs.multi_target }}
riscv_gnu_toolchain_hash: ${{ needs.init-submodules.outputs.riscv_gnu_toolchain_hash }}
run_on_self_hosted: false
cmreg-self-hosted: # Check Multilib Regressions. Short name so I can see the matrix string in github
needs: [init-submodules]
strategy:
fail-fast: false
matrix:
mode: [linux]
target: [rv64gc-lp64d] # Dummy placeholder. Actually runs rv32/rv64 multilib
multilib: [multilib]
uses: ./.github/workflows/build-test.yaml
with:
mode: ${{ matrix.mode }}
target: ${{ matrix.target }}
gcchash: ${{ needs.init-submodules.outputs.gcchash }}
multilib: ${{ matrix.multilib }}
multitarget: ${{ github.event.inputs.multi_target }}
riscv_gnu_toolchain_hash: ${{ needs.init-submodules.outputs.riscv_gnu_toolchain_hash }}
run_on_self_hosted: true
summarize:
if: "!cancelled()" # Generate github issues even when some (or all) targets fail to build
needs: [init-submodules, creg, cmreg, cmreg-self-hosted]
permissions:
issues: write
uses: ./.github/workflows/generate-summary.yaml
with:
gcchash: ${{ needs.init-submodules.outputs.gcchash }}
issue_num: ${{ github.event.inputs.issue_num }}