Add GitHub Binary Release Pipeline for RustPython#5456
Conversation
youknowone
left a comment
There was a problem hiding this comment.
Thank you so much! This is very helpful. I have a little concern about confusing binary names. Please check the comment.
| if: runner.os != 'macOS' | ||
|
|
||
| - name: Rename Binary | ||
| run: cp target/release/rustpython target/release/rustpython-release-${{ matrix.os }} |
There was a problem hiding this comment.
The OS name is not enough to identify binary target. Could you please also add architecture names to the binary too?
e.g. macOS version can be either x86_64 or aarch64 unless universal build. Linux version can be a lot more variant. Windows version can be x86, x86_64 or arm64.
Here is some platform/architecture matrix
https://github.com/youknowone/python-deadlib/blob/main/.github/workflows/_crypt.yml#L20-L37
There was a problem hiding this comment.
Good catch! Overlooked this in haste
Here's the new naming: https://github.com/theshubhamp/RustPython/releases/tag/2024-12-11-gh-rel-rustpython-15

And the corresponding file types:

I added other targets too (commented out), but they need some extra work to be fully cross compile-able. Fine to do that as a follow up PR ?
|
Thanks for your review @youknowone! I have pushed some new changes. PTAL |
|
@youknowone could you re-review when you get some time? Thanks! |
youknowone
left a comment
There was a problem hiding this comment.
Thank you so much for reminding me, and sorry for being late.
| run: cp target/${{ matrix.platform.target }}/release/rustpython target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }} | ||
| if: runner.os != 'Windows' | ||
| - name: Rename Binary | ||
| run: cp target/${{ matrix.platform.target }}/release/rustpython.exe target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }} |
There was a problem hiding this comment.
| run: cp target/${{ matrix.platform.target }}/release/rustpython.exe target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }} | |
| run: cp target/${{ matrix.platform.target }}/release/rustpython.exe target/rustpython-release-${{ runner.os }}-${{ matrix.platform.target }}.exe |
maybe this is missing
There was a problem hiding this comment.
Changing this may break Uploading artifact step.
There was a problem hiding this comment.
Apologies for being late.
Thanks for pointing this out! I had assumed this would be run via the shell so should be okay. But good to keep .exe for portability
Made the change:
There was a problem hiding this comment.
Latest with git tagging fixed: https://github.com/theshubhamp/RustPython/releases/tag/2024-12-26-gh-rel-rustpython-17
gh release create defaults to main otherwise
|
@youknowone thank you for the review. Could you recheck ? |
youknowone
left a comment
There was a problem hiding this comment.
Looks perfect, thank you so much!


Add Release Pipeline for RustPython. Pipeline is currently configured to cut a new release on every merge to main.
Sample Release: https://github.com/theshubhamp/RustPython/releases/tag/2024-12-07-gh-rel-rustpython-11

Sample Build: https://github.com/theshubhamp/RustPython/actions/runs/12212320619

Validated to run on Linux / Fedora:

Issue #5440