diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index d1eab69..91e2b72 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -14,7 +14,10 @@ on: jobs: build: - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest + + permissions: + contents: read steps: @@ -87,3 +90,40 @@ jobs: path: | pack/*.nupkg pack/_manifest/spdx_2.2/*.* + + test: + needs: build + + permissions: + contents: read + + strategy: + matrix: + os: [ubuntu-latest, windows-latest] + dotnet: ['8.x', '9.x', '10.x'] + + runs-on: ${{ matrix.os }} + + steps: + + - name: Setup dotnet + uses: actions/setup-dotnet@v5 + with: + dotnet-version: ${{ matrix.dotnet }} + + - name: Download Artifacts + uses: actions/download-artifact@v5 + with: + name: build-artifacts + path: build-artifacts + + - name: Install Pandoc Tool + shell: bash + run: | + dotnet tool install --global --add-source ./build-artifacts DemaConsulting.PandocTool + + - name: Test Pandoc Tool + shell: bash + run: | + pandoc --version + pandoc --help diff --git a/AGENTS.md b/AGENTS.md index 1d0476b..82143e6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -73,9 +73,20 @@ The project uses GitHub Actions to: 3. Package everything as a dotnet tool 4. Generate SBOM (Software Bill of Materials) 5. Create a NuGet package +6. Test the package on Windows and Linux with .NET 8, 9, and 10 Local builds are not typically performed; the CI/CD pipeline handles packaging. +## CI Testing + +The build workflow includes automated testing: + +* **Build Job**: Runs on ubuntu-latest to create the NuGet package +* **Test Job**: Matrix tests the package on: + * Operating Systems: Windows and Linux + * .NET Versions: 8, 9, and 10 + * Tests verify the packaged pandoc tool executes correctly by running `pandoc --version` and `pandoc --help` + ## Documentation Standards * Use clear, concise language diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ad8d665..6c863cd 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -57,6 +57,15 @@ The project uses a build workflow that downloads Pandoc binaries and packages th # Local testing can be done by examining the .github/workflows/build.yaml file ``` +The CI/CD pipeline includes: + +* **Quality Checks**: Spelling and markdown linting validation +* **Build**: Package creation on ubuntu-latest +* **Test**: Automated testing of the package on: + * Windows and Linux operating systems + * .NET versions 8, 9, and 10 + * Verifies the packaged pandoc tool executes correctly + ### Coding Standards * Follow standard C# coding conventions