Update CI workflow for pushing to master#623
Conversation
📝 WalkthroughWalkthroughRestructures CI into a consolidated multi-job pipeline (test, upload-coverage, additional-tests, pack-push-ci) with concurrency and PR triggers; centralizes .NET SDK installs and Codecov uploads; and scopes assembly signing properties to Release builds in two project files. (34 words) Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Dev as Push / PR
participant GH as GitHub Actions
participant Test as job:test
participant Cov as job:upload-coverage
participant Add as job:additional-tests
participant Pack as job:pack-push-ci
Dev->>GH: Push or PR triggers workflow
GH->>Test: Checkout → Install .NET SDK → Run tests → Produce coverage artifact
Test-->>Cov: Publish/download coverage artifact
Cov->>Cov: Prepare coverage files → Upload to Codecov
GH->>Add: Checkout → Install .NET SDK → Run trim analysis & API tests
par Dependencies complete
Test-->>GH: test result
Add-->>GH: additional-tests result
Cov-->>GH: coverage upload result
end
GH->>Pack: On dependencies success → Checkout → Install .NET SDK → Pack → Publish packages
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
⏰ 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). (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/wf-build-release-ci.yml(1 hunks)QRCoder.Xaml/QRCoder.Xaml.csproj(1 hunks)QRCoder/QRCoder.csproj(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). (3)
- GitHub Check: build
- GitHub Check: test
- GitHub Check: additional-tests
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/wf-build-release-ci.yml(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). (3)
- GitHub Check: build
- GitHub Check: additional-tests
- GitHub Check: test
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/wf-build-test.yml (1)
15-16: Remove deprecated ACTIONS_ALLOW_UNSECURE_COMMANDSThis flag is deprecated and unnecessary here; keeping it weakens security posture.
- env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true
🧹 Nitpick comments (2)
.github/workflows/wf-build-test.yml (1)
32-36: Avoid uploading the entire workspace; add checkout to test job and only ship build outputsUploading $GITHUB_WORKSPACE is slow and costly. Since the test job doesn’t checkout the repo, it needs source files. Add checkout to test and restrict artifacts to bin outputs.
- name: Upload artifacts uses: actions/upload-artifact@v4 with: name: Compiled project - path: ${{ github.workspace }} + path: | + QRCoder/**/bin/** + QRCoder.Xaml/**/bin/** + QRCoderTests/**/bin/**Also add checkout to the test job:
test: needs: build runs-on: windows-latest strategy: fail-fast: false name: Test ${{ matrix.dotnet-framework.name }} steps: + - uses: actions/checkout@v4 + name: Checkout Code - name: Download artifacts uses: actions/download-artifact@v4Also applies to: 38-41, 54-59
.github/workflows/wf-build-release-ci.yml (1)
40-42: Make coverage matching explicit and pass to CodecovTighten the glob to the actual coverlet output and pass it to Codecov to avoid discovery misses.
- path: QRCoderTests/coverage.*.xml + path: QRCoderTests/coverage*.opencover.xml- name: Upload to Codecov uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: true + files: coverage*.opencover.xmlAlso applies to: 53-58
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/wf-build-release-ci.yml(1 hunks).github/workflows/wf-build-test.yml(2 hunks)QRCoder/QRCoder.csproj(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). (3)
- GitHub Check: build
- GitHub Check: additional-tests
- GitHub Check: test
🔇 Additional comments (5)
.github/workflows/wf-build-test.yml (2)
8-11: Good use of PR-scoped concurrencyPrevents overlapping PR runs; cancel-in-progress is appropriate.
42-42: Disabling fail-fast is appropriate for matrix testsEnsures all target frameworks report results.
QRCoder/QRCoder.csproj (1)
60-64: Signing gated to Release: LGTMLimits strong-name signing to Release builds; improves local dev ergonomics.
Confirm QRCoder.Xaml mirrors this change (AI summary says yes) and that any consumers expecting signed Debug assemblies are updated.
.github/workflows/wf-build-release-ci.yml (2)
10-13: Concurrency per ref/workflow: LGTMPrevents overlapping CI runs on the same ref.
26-31: Verify availability of EOL SDKs (2.1.x/3.1.x)windows-latest images may no longer host or allow installing these. Keep only if strictly required; otherwise drop to reduce flakiness.
|
@gfoidl I'm proactively merging this, but lmk if you have any comments and I can address them in a follow-up PR. |
Summary by CodeRabbit
Chores
Build