Skip to content

build(deps-dev): bump brace-expansion from 5.0.5 to 5.0.6 in /tests/stress_perf_rn/StocksGrid #679

build(deps-dev): bump brace-expansion from 5.0.5 to 5.0.6 in /tests/stress_perf_rn/StocksGrid

build(deps-dev): bump brace-expansion from 5.0.5 to 5.0.6 in /tests/stress_perf_rn/StocksGrid #679

Workflow file for this run

name: CI
on:
pull_request:
push:
branches: [main]
jobs:
changes:
name: Detect changes
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
outputs:
non-md: ${{ steps.filter.outputs.non-md }}
docs-templates: ${{ steps.filter.outputs.docs-templates }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
- name: Detect non-Markdown changes
id: filter
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
PUSH_BEFORE: ${{ github.event.before }}
PUSH_SHA: ${{ github.sha }}
run: |
set +e
ZERO_SHA="0000000000000000000000000000000000000000"
if [ -n "$BASE_SHA" ] && [ -n "$HEAD_SHA" ]; then
# Three-dot mirrors GitHub's PR diff (merge-base..head).
files=$(git diff --name-only "$BASE_SHA...$HEAD_SHA")
rc=$?
elif [ -n "$PUSH_BEFORE" ] && [ -n "$PUSH_SHA" ] && [ "$PUSH_BEFORE" != "$ZERO_SHA" ]; then
files=$(git diff --name-only "$PUSH_BEFORE" "$PUSH_SHA")
rc=$?
else
echo "No valid diff range; defaulting to non-md=true and docs-templates=true"
echo "non-md=true" >> "$GITHUB_OUTPUT"
echo "docs-templates=true" >> "$GITHUB_OUTPUT"
exit 0
fi
if [ "$rc" -ne 0 ]; then
echo "git diff failed; defaulting to non-md=true and docs-templates=true"
echo "non-md=true" >> "$GITHUB_OUTPUT"
echo "docs-templates=true" >> "$GITHUB_OUTPUT"
exit 0
fi
echo "Changed files:"
echo "$files"
if [ -z "$files" ] || echo "$files" | grep -qv '\.md$'; then
echo "non-md=true" >> "$GITHUB_OUTPUT"
else
echo "non-md=false" >> "$GITHUB_OUTPUT"
fi
# Spec 041 §5.2: tier-drift triggers when a template or doc-app
# changes. Templates live under docs/_pipeline/templates/, apps
# under docs/_pipeline/apps/, and the doc-pipeline CLI itself
# under src/Reactor.Cli/Docs/.
if echo "$files" | grep -qE '^(docs/_pipeline/templates/|docs/_pipeline/apps/|src/Reactor\.Cli/Docs/)'; then
echo "docs-templates=true" >> "$GITHUB_OUTPUT"
else
echo "docs-templates=false" >> "$GITHUB_OUTPUT"
fi
unit-tests:
name: Unit Tests
needs: changes
if: needs.changes.outputs.non-md == 'true'
runs-on: windows-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
with:
dotnet-version: 10.0.x
- name: Restore
run: dotnet restore tests/Reactor.Tests/Reactor.Tests.csproj -p:Platform=x64
- name: Test
run: dotnet test tests/Reactor.Tests/Reactor.Tests.csproj --no-restore -p:Platform=x64 --logger "console;verbosity=normal"
integration-tests:
name: Integration Tests
needs: changes
if: needs.changes.outputs.non-md == 'true'
runs-on: windows-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
with:
dotnet-version: 10.0.x
- name: Restore
run: dotnet restore Reactor.slnx
- name: Test
run: dotnet test tests/Reactor.IntegrationTests/Reactor.IntegrationTests.csproj --no-restore --logger "console;verbosity=normal"
selftests:
name: Selftests
needs: changes
if: needs.changes.outputs.non-md == 'true'
runs-on: windows-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
with:
dotnet-version: 10.0.x
- name: Restore
run: dotnet restore tests/Reactor.SelfTests/Reactor.SelfTests.csproj -p:Platform=x64
- name: Test
run: dotnet test tests/Reactor.SelfTests/Reactor.SelfTests.csproj --no-restore -p:Platform=x64 --logger "console;verbosity=normal"
build-solution:
name: Build solution
needs: changes
if: needs.changes.outputs.non-md == 'true'
runs-on: windows-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
with:
dotnet-version: 10.0.x
- name: Restore
run: dotnet restore Reactor.slnx
- name: Build
run: dotnet build Reactor.slnx --no-restore --configuration Release
docs-check-tier:
name: Docs tier-drift
needs: changes
if: needs.changes.outputs.docs-templates == 'true'
runs-on: windows-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
with:
dotnet-version: 10.0.x
# Spec 041 §5.2 — fast tier-drift gate. Fails when a template's
# declared tier no longer matches the §11 structural checklist. The
# narrower `check-tier` surface runs in ~seconds vs. the full
# `docs compile` (no build, capture, diagrams, or reference-gen).
# `--ci` is not yet flipped on: the existing 24 W001
# winui-ref-not-declared warnings are intentional noise on
# internals/meta pages and are being addressed separately as a
# Phase 5 lint-quality item. Errors (REACTOR_DOC_TIER_001..012)
# still fail the job. See docs/contributing/doc-pipeline.md §8.
- name: Tier-lint
run: dotnet run --project src/Reactor.Cli -- docs check-tier
docs-compile:
name: Docs compile
needs: changes
if: needs.changes.outputs.non-md == 'true'
runs-on: windows-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup .NET
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
with:
dotnet-version: 10.0.x
- name: Compile docs
run: dotnet run --project src/Reactor.Cli -- docs compile --no-screenshots --ci