jamesfredley opened a new pull request, #15603:
URL: https://github.com/apache/grails-core/pull/15603

   ## Summary
   
   The `Verify grails-wrapper` job on `7.0.x` has been failing on every push 
since #15602 was merged.
   Example failure: 
https://github.com/apache/grails-core/actions/runs/24933507519/job/73020232978
   
   `
   /home/runner/work/_temp/...sh: line 5: ./wrapper/grailsw: Permission denied
   ##[error]Process completed with exit code 126.
   `
   
   ## Root Cause
   
   The `verifyWrapper` job downloads the wrapper distribution as a GitHub 
Actions artifact (`apache-grails-wrapper-SNAPSHOT-bin`) produced by the 
`publish` job and then invokes `./wrapper/grailsw`. The build itself sets 
`permissions.unix(0755)` on `grailsw` (see `grails-wrapper/build.gradle`), so 
the source side is correct — but `actions/download-artifact` does not reliably 
preserve the Unix executable bit on the downloading runner. The script comes 
back without `+x` and fails with `Permission denied` (exit code `126`). This is 
a known limitation of GitHub artifact transport (see 
[actions/upload-artifact#38](https://github.com/actions/upload-artifact/issues/38)).
   
   ## Fix
   
   Restore the executable bit with `chmod +x ./wrapper/grailsw` immediately 
before invocation. Three-line change inside the `Verify grails-wrapper` step.
   
   ## Scope
   
   - `7.0.x` only. `7.1.x` is not affected because its `Verify grails-wrapper` 
step runs in the same job that builds the wrapper and re-extracts the distZip 
via `unzip`, which preserves Unix mode bits.
   - No source/test changes; CI workflow only.
   
   ## Verification Plan
   
   Once the draft is marked ready and merged to `7.0.x`, the next 
push-triggered run of `CI` should show `Verify grails-wrapper` completing 
successfully and printing the wrapper version. No new tests are appropriate — 
this exercises the actual wrapper artifact end-to-end on the CI runner.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to