Skip to content

Apply TemplateDotNetLibrary PR #28: staged pipelines, artifact consolidation, and OTS Software requirements#52

Merged
Malcolmnixon merged 5 commits intomainfrom
copilot/apply-logical-changes-to-template
Mar 4, 2026
Merged

Apply TemplateDotNetLibrary PR #28: staged pipelines, artifact consolidation, and OTS Software requirements#52
Malcolmnixon merged 5 commits intomainfrom
copilot/apply-logical-changes-to-template

Conversation

Copy link
Contributor

Copilot AI commented Mar 4, 2026

Pull Request

Description

Ports the changes from demaconsulting/TemplateDotNetLibrary#28 into this template: standardized four-section job structure across all CI jobs, a unified artifacts/ folder convention replacing scattered per-job artifact names, and a new OTS Software Requirements section in requirements.yaml.

.config/dotnet-tools.json

  • Bumped demaconsulting.reqstream 1.3.01.4.0 to enable ReqStream_EnforcementMode self-validation

.github/workflows/build.yaml

All jobs now follow four consistent sections with # === SECTION === comments:

  • quality-checks: captures VersionMark versions to artifacts/, runs VersionMark self-validation, uploads as artifacts-quality
  • build: version capture moved before build/test; test results written to artifacts/; VersionMark self-validation added; uploads split into artifacts-build-${{ matrix.os }} (all build outputs) and packages-${{ matrix.os }} (NuGet only)
  • codeql: CodeQL SARIF output routed directly to artifacts/, uploaded as artifacts-codeql
  • integration-test: added standard section comments (INSTALL DEPENDENCIES, CAPTURE TOOL VERSIONS, RUN INTEGRATION TESTS, UPLOAD ARTIFACTS); version capture moved before tests; self-validation TRX written to artifacts/; two separate uploads consolidated into a single artifacts-validation-${{ matrix.os }}-dotnet${{ matrix.dotnet-version }} artifact
  • build-docs: four separate artifact downloads collapsed into one with pattern: 'artifacts-*' + merge-multiple: true; a separate Download packages artifact step downloads packages-ubuntu-latest to a packages/ folder so TemplateTool can be installed via --add-source packages (consistent with the integration-test job pattern); adds five OTS self-validation steps (ReqStream, BuildMark, VersionMark, SarifMark, SonarMark); all paths updated to artifacts/

.github/workflows/release.yaml

  • Downloads packages-ubuntu-latest (was artifacts-ubuntu-latest)

requirements.yaml

  • New OTS Software section with six ots-tagged requirements: Template-OTS-MSTest, Template-OTS-ReqStream, Template-OTS-BuildMark, Template-OTS-VersionMark, Template-OTS-SarifMark, Template-OTS-SonarMark, each linked to self-validation TRX evidence

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Code quality improvement

Related Issues

Pre-Submission Checklist

Before submitting this pull request, ensure you have completed the following:

Build and Test

  • Code builds successfully: dotnet build --configuration Release
  • All unit tests pass: dotnet test --configuration Release
  • Self-validation tests pass:
    dotnet run --project src/DemaConsulting.TemplateDotNetTool --configuration Release --framework net10.0
    --no-build -- --validate
  • Code produces zero warnings

Code Quality

  • Code formatting is correct: dotnet format --verify-no-changes
  • New code has appropriate XML documentation comments
  • Static analyzer warnings have been addressed

Quality Checks

Please run the following checks before submitting:

  • Spell checker passes: cspell "**/*.{md,cs}"
  • Markdown linter passes: markdownlint "**/*.md"
  • YAML linter passes: yamllint .

Testing

  • Added unit tests for new functionality
  • Updated existing tests if behavior changed
  • All tests follow the AAA (Arrange, Act, Assert) pattern
  • Test coverage is maintained or improved

Documentation

  • Updated README.md (if applicable)
  • Updated ARCHITECTURE.md (if applicable)
  • Added code examples for new features (if applicable)
  • Updated requirements.yaml (if applicable)

Additional Notes

No C# code changes — this PR is entirely CI workflow restructuring and requirements traceability additions. The artifacts/ folder convention ensures every job writes all outputs to a single local directory without intermediate copy steps, keeping download/publish steps simple and consistent across jobs. The build-docs job downloads packages-ubuntu-latest to a separate packages/ folder and installs TemplateTool via --add-source packages, following the same pattern as the integration-test job and keeping packages separate from build artifacts.


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

…ibrary PR #28

Changes:
- Bump demaconsulting.reqstream from 1.3.0 to 1.4.0
- quality-checks: Add INSTALL DEPENDENCIES section, move version capture to
  artifacts/ with --output flag, add OTS self-validation step, add RUN QUALITY
  CHECKS section, replace Upload version capture with Upload quality artifacts
- build: Add INSTALL DEPENDENCIES, CAPTURE TOOL VERSIONS (moved before Restore
  Dependencies), CAPTURE OTS SELF-VALIDATION RESULTS, BUILD AND TEST, and UPLOAD
  ARTIFACTS sections; output test results to artifacts/; upload build artifacts
  and packages as separate named artifacts
- codeql: Add INSTALL DEPENDENCIES, BUILD AND ANALYZE, UPLOAD ARTIFACTS sections;
  output SARIF to artifacts/; upload as artifacts-codeql
- integration-test: Download from packages-${{ matrix.os }}; update version
  capture to artifacts/ folder; use artifacts-int-* and artifacts-validation-*
  upload names
- build-docs: Consolidate 4 artifact downloads into single Download all job
  artifacts step; update paths from packages/test-results/codeql-results/
  version-captures to unified artifacts/; add 5 OTS self-validation steps;
  update reqstream, sarifmark, versionmark to use artifacts/ paths
- release: Download from packages-ubuntu-latest
- requirements.yaml: Add OTS Software section with 6 requirements covering
  MSTest, ReqStream, BuildMark, VersionMark, SarifMark, and SonarMark
Copilot AI changed the title [WIP] Integrate logical changes for improved build pipelines and artifact management Apply TemplateDotNetLibrary PR #28: staged pipelines, artifact consolidation, and OTS Software requirements Mar 4, 2026
…ngle upload

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Contributor

@Malcolmnixon Malcolmnixon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build failed - it seems the the build-docs isn't downloading the package-artifact so it can't install versionmark from the generated package. Also seeing as versionmark is being installed globally the command to run the versionmark self-validation would need to be altered.

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Mar 4, 2026

The build failed - it seems the the build-docs isn't downloading the package-artifact so it can't install versionmark from the generated package. Also seeing as versionmark is being installed globally...

Fixed in commit 29353db — added a Download packages artifact step in the build-docs CHECKOUT AND DOWNLOAD ARTIFACTS section to download packages-ubuntu-latest into artifacts/, so the Install TemplateTool from package step can find the NuGet package via --add-source artifacts.

The versionmark self-validation commands (dotnet versionmark --validate) remain unchanged since versionmark is still a local tool in .config/dotnet-tools.json and is installed via dotnet tool restore.

Co-authored-by: Malcolmnixon <1863707+Malcolmnixon@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants