Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
"opencover",
"reqstream",
"snupkg",
"tracematrix",
"trx",
"yamllint"
],
Expand Down
62 changes: 59 additions & 3 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,21 @@ jobs:
buildmark --help || { echo "✗ Help command failed"; exit 1; }
echo "✓ Help command succeeded"

- name: Run BuildMark self-validation
shell: bash
run: |
echo "Running BuildMark self-validation..."
buildmark --validate --results validation-${{ matrix.os }}-dotnet${{ matrix.dotnet-version }}.trx \
|| { echo "✗ Self-validation failed"; exit 1; }
echo "✓ Self-validation succeeded"

- name: Upload validation test results
if: always()
uses: actions/upload-artifact@v6
with:
name: validation-test-results-${{ matrix.os }}-dotnet${{ matrix.dotnet-version }}
path: validation-${{ matrix.os }}-dotnet${{ matrix.dotnet-version }}.trx

build-docs:
name: Build Documents
runs-on: windows-latest
Expand Down Expand Up @@ -278,19 +293,28 @@ jobs:
- name: Install npm dependencies
run: npm install

- name: Download All Test Results
- name: Download all test results
uses: actions/download-artifact@v7
with:
pattern: test-results-*
path: test-results
merge-multiple: true
pattern: '*test-results*'
continue-on-error: true

- name: Download CodeQL SARIF
uses: actions/download-artifact@v7
with:
name: codeql-sarif
path: codeql-results

- name: Generate Requirements Report and Trace Matrix
run: >
dotnet reqstream
--requirements requirements.yaml
--tests "test-results/**/*.trx"
--report docs/requirements/requirements.md
--matrix docs/tracematrix/tracematrix.md
--enforce

- name: Generate CodeQL Quality Report with SarifMark
run: >
dotnet sarifmark
Expand Down Expand Up @@ -355,6 +379,38 @@ jobs:
docs/buildnotes/buildnotes.html
"docs/BuildMark Build Notes.pdf"

- name: Generate Requirements HTML with Pandoc
shell: bash
run: >
dotnet pandoc
--defaults docs/requirements/definition.yaml
--metadata version="${{ inputs.version }}"
--metadata date="$(date +'%Y-%m-%d')"
--filter node_modules/.bin/mermaid-filter.cmd
--output docs/requirements/requirements.html

- name: Generate Requirements PDF with Weasyprint
run: >
dotnet weasyprint
docs/requirements/requirements.html
"docs/BuildMark Requirements.pdf"

- name: Generate Trace Matrix HTML with Pandoc
shell: bash
run: >
dotnet pandoc
--defaults docs/tracematrix/definition.yaml
--metadata version="${{ inputs.version }}"
--metadata date="$(date +'%Y-%m-%d')"
--filter node_modules/.bin/mermaid-filter.cmd
--output docs/tracematrix/tracematrix.html

- name: Generate Trace Matrix PDF with Weasyprint
run: >
dotnet weasyprint
docs/tracematrix/tracematrix.html
"docs/BuildMark Trace Matrix.pdf"

- name: Generate Code Quality HTML with Pandoc
shell: bash
run: >
Expand Down
11 changes: 11 additions & 0 deletions docs/requirements/definition.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
resource-path:
- docs/requirements
- docs/template
input-files:
- docs/requirements/title.txt
- docs/requirements/introduction.md
- docs/requirements/requirements.md
template: template.html
table-of-contents: true
number-sections: true
31 changes: 31 additions & 0 deletions docs/requirements/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Introduction

This document contains the requirements for the BuildMark project.

## Purpose

BuildMark is a .NET command-line tool that generates comprehensive markdown build notes reports from
Git repository history and GitHub issues. It analyzes commits, pull requests, and issues to create
human-readable build notes, making it easy to integrate release documentation into CI/CD pipelines
and documentation workflows.

## Scope

This requirements document covers:

- Command-line interface and options
- Git repository integration
- GitHub integration for issues and pull requests
- Markdown report generation capabilities
- Validation and self-testing features
- Data models and repository connectors
- Platform support for Windows, Linux, and multiple .NET runtimes

## Audience

This document is intended for:

- Software developers working on BuildMark
- Quality assurance teams validating requirements
- Project stakeholders reviewing project scope
- Users understanding the tool's capabilities
17 changes: 17 additions & 0 deletions docs/requirements/title.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: BuildMark Requirements
subtitle: Requirements Specification for the BuildMark Tool
author: DEMA Consulting
description: Requirements Specification for the BuildMark Tool
lang: en-US
keywords:
- BuildMark
- Requirements
- Specification
- .NET
- YAML
- Command-Line Tool
- Git
- GitHub
- Markdown
---
11 changes: 11 additions & 0 deletions docs/tracematrix/definition.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
resource-path:
- docs/tracematrix
- docs/template
input-files:
- docs/tracematrix/title.txt
- docs/tracematrix/introduction.md
- docs/tracematrix/tracematrix.md
template: template.html
table-of-contents: true
number-sections: true
48 changes: 48 additions & 0 deletions docs/tracematrix/introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Introduction

This document contains the requirements trace matrix for the BuildMark project.

## Purpose

The trace matrix links requirements to their corresponding test cases, ensuring complete
test coverage and traceability from requirements to implementation.

## Test Sources

Requirements traceability in BuildMark uses two types of tests:

- **Unit and Integration Tests**: Standard MSTest tests that verify code functionality
- **Self-Validation Tests**: Built-in validation tests run via `buildmark --validate --results`

To generate complete traceability reports, both test result files must be included:

```bash
# Run unit and integration tests
dotnet test --configuration Release --results-directory test-results --logger "trx"

# Run validation tests
buildmark --validate --results validation.trx

# Verify requirements traceability
dotnet reqstream --requirements requirements.yaml \
--tests "test-results/**/*.trx" \
--tests validation.trx \
--enforce
```

## Interpretation

The trace matrix shows:

- **Requirement ID**: Unique identifier for each requirement
- **Requirement Title**: Brief description of the requirement
- **Test Coverage**: List of test cases that verify the requirement
- **Status**: Indication of whether all mapped tests pass

## Coverage Requirements

All requirements must have:

- At least one test case mapped to verify the requirement
- All mapped tests must pass for the requirement to be satisfied
- Tests must execute on supported platforms and .NET runtimes
14 changes: 14 additions & 0 deletions docs/tracematrix/title.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: BuildMark Trace Matrix
subtitle: Test Traceability Matrix for the BuildMark Tool
author: DEMA Consulting
description: Test Traceability Matrix for the BuildMark Tool
lang: en-US
keywords:
- BuildMark
- Trace Matrix
- Traceability
- Testing
- .NET
- Command-Line Tool
---
Loading