Files
threadx/.github/workflows/regression_test.yml
T
Frédéric Desbiens 9218bad4bc Kept the coverage publish on master, where the environment allows it (#654)
Running the regression suites on dev (#652) was meant to test the branch the
pull requests target. It changed what gets published as well, which was not
intended and does not work: the first push to dev after that merge failed
with

    Branch "dev" is not allowed to deploy to github-pages due to
    environment protection rules.

All three suites passed in that run -- tx, smp and freertos. The only
failure was deploy / deploy_code_coverage, rejected before it ran, because
the github-pages environment restricts deployments to master.

The guard goes here rather than in the environment settings, because the
environment rule is doing its job. Which branch the published coverage
report describes is a deliberate decision, and moving it from master to dev
is a change worth making on purpose rather than as a side effect of a
trigger fix. Doing so needs the environment setting relaxed as well as this
line removed.

The per-suite deploy_code_coverage jobs need no guard: tx, smp and freertos
all pass skip_deploy: true, and regression_template.yml already restricts
that job to push and workflow_dispatch. Only the deploy job, which is the
one that publishes, was reaching the environment.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 13:07:38 -04:00

117 lines
4.0 KiB
YAML

name: regression_test
# Runs the ThreadX, SMP and FreeRTOS-compatibility regression suites.
#
# dev is included as well as master, for the same reason ports_arch_check.yml
# names it: dev is the integration branch, so a check that runs only against
# master gates nothing that anybody opens. Until now these suites ran on no
# pull request that anybody actually raised, and the last dev run of any kind
# was a manual workflow_dispatch.
#
# That run, on 2026-08-18, failed two tests: threadx_timer_simple_test in the
# ThreadX suite and threadx_thread_priority_change in the SMP one. Both are
# fixed -- the first by running the suites one test at a time (#643), the
# second by #647 -- and both suites now pass all 1030 tests across all ten
# build configurations. The suites were never the problem; the trigger was.
on:
workflow_dispatch:
push:
branches: [ master, dev ]
pull_request:
branches: [ master, dev ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
tx:
permissions:
contents: read
issues: read
checks: write
pull-requests: write
pages: write
id-token: write
uses: ./.github/workflows/regression_template.yml
with:
build_script: ./scripts/build_tx.sh
test_script: ./scripts/test_tx.sh
cmake_path: ./test/tx/cmake
result_affix: ThreadX
skip_deploy: true
smp:
permissions:
contents: read
issues: read
checks: write
pull-requests: write
pages: write
id-token: write
uses: ./.github/workflows/regression_template.yml
with:
build_script: ./scripts/build_smp.sh
test_script: ./scripts/test_smp.sh
cmake_path: ./test/smp/cmake
result_affix: SMP
skip_deploy: true
freertos:
permissions:
contents: read
issues: read
checks: write
pull-requests: write
pages: write
id-token: write
uses: ./.github/workflows/regression_template.yml
with:
build_script: ./scripts/build_freertos.sh
test_script: ./scripts/test_freertos.sh
cmake_path: ./test/freertos/cmake
result_affix: FreeRTOS
skip_deploy: true
# No coverage build configuration yet; the suite covers the creation
# paths of the layer rather than all of it.
skip_coverage: true
# riscv: disabled — re-enable when RISC-V CI is ready
# riscv:
# permissions:
# contents: read
# issues: read
# checks: write
# pull-requests: write
# pages: write
# id-token: write
# uses: ./.github/workflows/regression_template.yml
# with:
# install_script: ./scripts/install_riscv.sh
# build_script: ./scripts/build_tx_riscv.sh
# test_script: ./scripts/test_tx_riscv.sh
# cmake_path: ./test/tx/cmake/riscv
# result_affix: RISC-V
# skip_deploy: true
# skip_coverage: true
deploy:
# Publishing the coverage report stays on master. Adding dev to this
# workflow's triggers was meant to run the suites on the branch the pull
# requests target, not to change what gets published -- and the first
# push to dev after that change failed here with 'Branch "dev" is not
# allowed to deploy to github-pages due to environment protection rules',
# while all three suites passed. The github-pages environment restricts
# deployments to master, so the job was rejected before it ran.
#
# Guarding here rather than relaxing the environment rule, because the
# rule is doing its job: it is a deliberate answer to the question of
# which branch the published report describes. Moving that answer to dev
# is a separate decision, and it needs the environment setting changed
# as well as this line removed.
if: github.ref == 'refs/heads/master'
permissions:
contents: read
issues: read
checks: write
pull-requests: write
pages: write
id-token: write
needs: [tx, smp]
uses: ./.github/workflows/regression_template.yml
with:
skip_test: true
deploy_list: "ThreadX SMP"