Skip to content

Conversation

@Lslightly
Copy link

@Lslightly Lslightly commented Jan 2, 2026

Use zip/unzip to keep execution permission when uploading and downloading artifacts.

The modification is not tested locally because I failed to setup github runner docker container through act. The required space for the github runner is large.

Fixes #96.


Note

Focuses on preserving execute permissions across jobs by zipping artifacts and unzipping where needed.

  • download_uast_binaries: add chmod +x, zip uast_binaries and upload uast-binaries.zip instead of a folder
  • resolve_uast_versions: download uast-binaries artifact and unzip before deploying to deps/
  • build_engine: package dist + node_modules into engine-<target>.zip and upload the zip
  • package_release: download engine artifacts with merge-multiple, unzip all engine-*.zip and uast-binaries.zip before packaging platform bundles
  • Minor path/option adjustments to match zipped artifacts (no functional build changes)

Written by Cursor Bugbot for commit b846f14. This will update automatically on new commits. Configure here.

@gemini-code-assist
Copy link
Contributor

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.


- name: Extract Binaries
run: |
for f in engine_binaries/*.zip; do unzip $f -d engine_binaries; done
Copy link

Choose a reason for hiding this comment

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

Engine extraction overwrites files and breaks expected paths

Even if the glob pattern were fixed, extracting all engine zips with -d engine_binaries would put all three platforms' dist/ and node_modules/ directly in engine_binaries/, causing them to overwrite each other. Additionally, the code at line 441 expects files at engine_binaries/${artifact_subdir}/dist/$engine_bin, but the extraction produces engine_binaries/dist/$engine_bin.

Fix in Cursor Fix in Web

Copy link
Author

Choose a reason for hiding this comment

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

done

@AntJiuFo
Copy link
Collaborator

AntJiuFo commented Jan 7, 2026

Hello, we have tested the changes, currently only yasa file has added the execution permission, the others(uast) have not
yet, hope you can add the execution permission to the binary, thank you!

image

You can make a try using tar!
https://github.com/actions/upload-artifact?tab=readme-ov-file#permission-loss

@Lslightly
Copy link
Author

Lslightly commented Jan 7, 2026

You can make a try using tar!

Loss of execution permission of uast* binaries are caused by YASA-UAST binary release I think. In fzf, single binary is released in a zip/tar.gz to keep permission.

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.

binaries in yasa-linux-x64.zip have no execution permission

2 participants