Skip to content

Harden release integrity, licensing, and provenance #88

Harden release integrity, licensing, and provenance

Harden release integrity, licensing, and provenance #88

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
jobs:
build-test:
name: Build, test, documents, and repository health
runs-on: windows-2025
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
with:
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 # v5
with:
dotnet-version: 8.0.4xx
- name: Install deterministic document dependencies
run: python -m pip install --disable-pip-version-check reportlab==4.4.9 pypdf==6.4.1
- name: Verify generated release PDFs
run: python .\scripts\generate-release-pdfs.py --check
- name: Validate public licensing and wording
run: python .\scripts\validate-public-content.py
- name: Repository health gate
shell: pwsh
run: .\scripts\repository-health.ps1
- name: Restore
run: dotnet restore .\ProcessBusSuite.sln
- name: Build
run: dotnet build .\ProcessBusSuite.sln -c Release --no-restore /p:ContinuousIntegrationBuild=true
- name: Test with coverage
run: >-
dotnet test .\ProcessBusSuite.sln
-c Release
--no-build
--logger "trx;LogFileName=tests.trx"
--results-directory .\TestResults
--collect "XPlat Code Coverage"
- name: Upload test evidence
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: test-evidence-${{ github.run_id }}
path: TestResults/**
if-no-files-found: warn
retention-days: 14