Skip to content

attempt to fix release pipeline#327

Merged
sensslen merged 2 commits into
mainfrom
simon/fix-release-pipeline
Nov 7, 2025
Merged

attempt to fix release pipeline#327
sensslen merged 2 commits into
mainfrom
simon/fix-release-pipeline

Conversation

@sensslen
Copy link
Copy Markdown
Owner

@sensslen sensslen commented Nov 7, 2025

Summary by CodeRabbit

  • Chores

    • Renamed a test project entry and updated its location in the solution.
    • Updated CI workflows to reference the renamed/relocated test project.
  • Tests

    • Narrowed test discovery to target specific test assemblies instead of a broad pattern, affecting which tests run on Windows.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Nov 7, 2025

Walkthrough

The solution and CI were updated for a test project rename and relocation: NuGetUtility.Test.UrlToLicenseMappingNuGetUtility.UrlToLicenseMapping.Test, with its file path moved under tests/ and the project GUID preserved in NuGetUtility.sln. GitHub Actions were updated: .github/workflows/action.yml now references the new test project csproj path, and .github/workflows/release.yml changed the test runner discovery pattern from "*.Test.*dll" to "NuGet*.Test.dll".

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'attempt to fix release pipeline' is vague and generic, lacking specific detail about what the fix entails despite the changeset showing concrete structural changes. Provide a more specific title that describes the actual changes, such as 'Rename UrlToLicenseMapping test project and update workflows' to clarify the specific modifications made.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch simon/fix-release-pipeline

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b69736b and 5ecb86f.

📒 Files selected for processing (1)
  • .github/workflows/action.yml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/action.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (17)
  • GitHub Check: check_licenses (net10.0, ProjectWithReferenceContainingLicenseExpression)
  • GitHub Check: test_windows (net8.0)
  • GitHub Check: check_version_command (net8.0)
  • GitHub Check: check_version_command (net10.0)
  • GitHub Check: check_licenses_net472 (ProjectWithReferenceContainingLicenseExpression)
  • GitHub Check: check_version_command (net9.0)
  • GitHub Check: check_licenses_net472 (App)
  • GitHub Check: check_licenses_net472 (ProjectWithReferenceContainingFileLicense)
  • GitHub Check: test (macos-latest, net9.0)
  • GitHub Check: check_licenses_net472 (Tests)
  • GitHub Check: check_version_command_net472
  • GitHub Check: test_windows (net10.0)
  • GitHub Check: test_windows (net472)
  • GitHub Check: test_windows (net9.0)
  • GitHub Check: test_file_license_matching (windows-latest)
  • GitHub Check: test_file_license_matching (ubuntu-latest)
  • GitHub Check: test_file_license_matching (macos-latest)

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7bcc27e and e34f5bf.

📒 Files selected for processing (3)
  • .github/workflows/action.yml (2 hunks)
  • .github/workflows/release.yml (1 hunks)
  • NuGetUtility.sln (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (20)
  • GitHub Check: check_licenses (net10.0, App)
  • GitHub Check: check_licenses (net8.0, App)
  • GitHub Check: check_licenses (net10.0, ProjectWithReferenceContainingFileLicense)
  • GitHub Check: check_licenses (net9.0, ProjectWithReferenceContainingLicenseExpression)
  • GitHub Check: check_licenses (net8.0, Tests)
  • GitHub Check: check_licenses (net9.0, ProjectWithReferenceContainingFileLicense)
  • GitHub Check: check_licenses_net472 (App)
  • GitHub Check: check_licenses_net472 (ProjectWithReferenceContainingFileLicense)
  • GitHub Check: check_licenses_net472 (Tests)
  • GitHub Check: check_version_command_net472
  • GitHub Check: check_licenses_net472 (ProjectWithReferenceContainingLicenseExpression)
  • GitHub Check: test_windows (net10.0)
  • GitHub Check: test_windows (net9.0)
  • GitHub Check: test_windows (net472)
  • GitHub Check: test (macos-latest, net9.0)
  • GitHub Check: test_windows (net8.0)
  • GitHub Check: test (macos-latest, net10.0)
  • GitHub Check: test_file_license_matching (ubuntu-latest)
  • GitHub Check: test_file_license_matching (windows-latest)
  • GitHub Check: test_file_license_matching (macos-latest)
🔇 Additional comments (3)
.github/workflows/action.yml (2)

92-92: LGTM!

The test project path correctly reflects the renamed project from NuGetUtility.Test.UrlToLicenseMapping to NuGetUtility.UrlToLicenseMapping.Test.


119-119: LGTM!

The explicit assembly list appropriately excludes NuGetUtility.UrlToLicenseMapping.Test.dll, which requires Chrome and is tested separately in the test_url_to_license_mapping job (lines 74-92). This makes the Windows test job more reliable by avoiding environment-specific test dependencies.

NuGetUtility.sln (1)

50-50: LGTM!

The project rename from NuGetUtility.Test.UrlToLicenseMapping to NuGetUtility.UrlToLicenseMapping.Test follows standard .NET naming conventions (Project.Test format) and correctly preserves the project GUID {A77F9673-8296-4680-A713-8AC26B7DE41C}, ensuring existing references and configurations remain intact.

uses: josepho0918/vstest-action@main
with:
testAssembly: "*.Test.*dll"
testAssembly: "NuGet*.Test.dll"
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot Nov 7, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify that test coverage is complete with the new pattern.

The pattern has been narrowed from *.Test.*dll to NuGet*.Test.dll. This will match assemblies like NuGetUtility.Test.dll, NuGetLicense.Test.dll, and NuGetUtility.UrlToLicenseMapping.Test.dll, but will exclude SPDXLicenseMatcher.Test.dll if it exists.

Run the following script to verify which test assemblies exist and confirm the pattern matches all intended test projects:


🏁 Script executed:

#!/bin/bash
# Find all test DLLs that would be in the Release build output
echo "=== Test assemblies that exist in solution ==="
fd -e csproj -t f 'Test.csproj$' tests/

echo ""
echo "=== Assemblies matching new pattern NuGet*.Test.dll ==="
rg -g 'NuGetUtility.sln' --no-filename 'Project.*Test.*csproj' | gawk 'match($0, /"([^"]+\.Test)[^"]*\.csproj"/, arr) {print arr[1] ".dll"}' | grep '^NuGet.*\.Test\.dll$'

echo ""
echo "=== Assemblies potentially excluded by new pattern ==="
rg -g 'NuGetUtility.sln' --no-filename 'Project.*Test.*csproj' | gawk 'match($0, /"([^"]+\.Test)[^"]*\.csproj"/, arr) {print arr[1] ".dll"}' | grep -v '^NuGet.*\.Test\.dll$'

Length of output: 700


I need to verify whether SPDXLicenseMatcher.Test is an intentional part of the test coverage or if this exclusion is deliberate.

Based on the script results, the review comment has identified a critical issue with the test pattern change. The script output confirms that:

  1. Four test projects exist in the solution:

    • NuGetLicense.Test
    • NuGetUtility.Test
    • NuGetUtility.UrlToLicenseMapping.Test
    • SPDXLicenseMatcher.Test
  2. The new pattern NuGet*.Test.dll will exclude SPDXLicenseMatcher.Test because it doesn't start with the "NuGet" prefix.

  3. The old pattern *.Test.*dll would have included all four test assemblies, providing complete coverage.

This is a definite regression in test coverage that will cause SPDXLicenseMatcher.Test.dll to be excluded from the release workflow testing.

Update test assembly pattern to include all test projects.

The change from *.Test.*dll to NuGet*.Test.dll excludes SPDXLicenseMatcher.Test.dll, reducing test coverage. Update the pattern to *Test*.dll or explicitly list all test projects to ensure comprehensive test execution in the release workflow.

🤖 Prompt for AI Agents
.github/workflows/release.yml around line 38: the testAssembly pattern was
narrowed to "NuGet*.Test.dll" which excludes SPDXLicenseMatcher.Test.dll and
reduces test coverage; change the value to a pattern that includes all test
assemblies (for example "*Test*.dll") or replace with an explicit
comma-separated list of all four test DLLs (NuGetLicense.Test.dll,
NuGetUtility.Test.dll, NuGetUtility.UrlToLicenseMapping.Test.dll,
SPDXLicenseMatcher.Test.dll) so the release workflow runs every test project.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

The exclusion is deliberate

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@sensslen, understood! I've noted that the exclusion of SPDXLicenseMatcher.Test.dll from the release workflow is intentional. Thank you for the clarification.


✏️ Learnings added
Learnt from: sensslen
Repo: sensslen/nuget-license PR: 327
File: .github/workflows/release.yml:38-38
Timestamp: 2025-11-07T21:33:27.152Z
Learning: In the release workflow (.github/workflows/release.yml), the test assembly pattern `NuGet*.Test.dll` intentionally excludes SPDXLicenseMatcher.Test.dll from the release workflow tests.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

@sensslen sensslen force-pushed the simon/fix-release-pipeline branch from b69736b to 5ecb86f Compare November 7, 2025 21:27
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Nov 7, 2025

@sensslen sensslen merged commit eb78bbe into main Nov 7, 2025
38 checks passed
@sensslen sensslen deleted the simon/fix-release-pipeline branch November 7, 2025 21:33
@coderabbitai coderabbitai Bot mentioned this pull request Dec 2, 2025
@coderabbitai coderabbitai Bot mentioned this pull request Mar 16, 2026
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.

1 participant