Conversation
Review Summary by QodoImprove CI pipeline with macOS fixes and upload conditions
WalkthroughsDescription• Use gradlew wrapper on macOS instead of gradle command • Add codesign verification for macOS builds • Extend notarization to main-release branch • Fix upload conditions for non-PR events • Handle tag builds with proper path normalization • Add progress indicator to wget downloads • Remove unused useEaJdk parameter from workflows • Improve artifact naming with shadowJar suffix Diagramflowchart LR
A["CI Improvements"] --> B["macOS Build Changes"]
A --> C["Upload & Notarization Logic"]
A --> D["Artifact & Naming Updates"]
B --> B1["Use gradlew wrapper"]
B --> B2["Add codesign verification"]
C --> C1["Extend to main-release"]
C --> C2["Fix non-PR conditions"]
C --> C3["Tag build path handling"]
D --> D1["Remove useEaJdk param"]
D --> D2["Add shadowJar suffix"]
File Changes1. .github/actions/package/action.yml
|
| gradleCommand: ${{ matrix.gradleCommand }} | ||
| component: jabgui | ||
| componentShort: jabgui | ||
| useEaJdk: ${{ needs.conditions.outputs.useEaJdk }} |
There was a problem hiding this comment.
ea jdk option is no lonver available?
There was a problem hiding this comment.
It is available, but setup in binaries, not in the custom action.
Code Review by Qodo
1. codesign verify unguarded step
|
| - name: Validate signature | ||
| if: ${{ inputs.secretsPresent == 'true' && inputs.os == 'macos-latest' }} | ||
| shell: bash | ||
| run: | | ||
| codesign --verify --verbose ${{ inputs.component }}/build/packages/${{ inputs.os }}/*.dmg | ||
| - shell: bash | ||
| run: | | ||
| codesign --verify --verbose ${{ inputs.component }}/build/packages/${{ inputs.os }}/*.dmg |
There was a problem hiding this comment.
1. codesign verify unguarded step 📘 Rule violation ⛯ Reliability
A codesign --verify step runs unconditionally and will likely fail on non-macOS runners or when no .dmg exists. Additionally, the guarded step checks inputs.os == 'macos-latest', but the workflow passes macOS values like macos-15/macos-15-intel, so the condition is incorrect and the intended gating may never apply.
Agent Prompt
## Issue description
The composite action runs `codesign --verify` unconditionally and also contains an `if` guard that checks for `inputs.os == 'macos-latest'`, which does not match the macOS OS values used in the calling workflow (e.g., `macos-15`, `macos-15-intel`). This can cause CI failures on non-macOS runners and makes the intended conditional signature validation ineffective.
## Issue Context
The workflow matrix uses macOS identifiers like `macos-15`/`macos-15-intel`, so any condition expecting `macos-latest` will not trigger. `codesign` is macOS-specific and should not run on other OSes, and the `.dmg` path/glob should be validated before executing verification.
## Fix Focus Areas
- .github/actions/package/action.yml[63-70]
- .github/workflows/binaries.yml[396-413]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
✅ All tests passed ✅🏷️ Commit: 38bbd21 Learn more about TestLens at testlens.app. |
…les-wizard-12709 * upstream/main: (106 commits) Merge common gating parts into composite action (JabRef#15197) Support protected institutional authors in PersonNamesChecker (JabRef#15175) adapt wix (JabRef#14969) Improve CI (JabRef#15189) Revert "Reduce complexity in dependencies setup (JabRef#15169)" (JabRef#15191) Fix compilation Fix heylogs test Fix icon on Linux (JabRef#15188) chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.5 (JabRef#15178) New Crowdin updates (JabRef#15173) Reduce complexity in dependencies setup (JabRef#15169) Start new development cycle snapcraft snapcraft use snapctl update metadata fiels try with mesa candidate fix snapcraft and skmanrc to use correct version Release v6.0-alpha.5 chore(sbom): update CycloneDX SBOM files (JabRef#15172) ...
* Use gradlew also on macOS * Show progress at wget * Fix displayname * Also notarize on main-release * Fix condition for uploading * Upload at non-pr * Fix path for tag builds * Remove non-used parameter useEaJdk * Add codesign verification * Always run (we did not see in the logs) * Remove codesign call --------- Co-authored-by: Oliver <koppor@red-debian.fritz.box>
PR Description
Improves the CI based on our experience of the last release
Steps to test
See CI passing
Checklist
CHANGELOG.mdin a way that can be understood by the average user (if change is visible to the user)