-
Notifications
You must be signed in to change notification settings - Fork 181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for static compilation and binary release workflow #715
base: master
Are you sure you want to change the base?
Conversation
19a4812
to
9730ef6
Compare
Ok this works and generates the following emulators. They don't have any dependencies except glibc 2.17 (from 2012):
It's a little tricky to test the CI changes before they are merged, but as far as I can tell it's fine. I suggest we merge this and then do a release. @billmcspadden-riscv |
The static compilation support LGTM. In terms of releases, it would be good to have the workflow create the release and upload the binaries to it so to generate a new release all that needs to be done is trigger a run of the workflow. Right now it looks like the binaries would need to be manually uploaded to the release after they are generated. |
I agree, but I think we can do that in a future PR. Also I've done that in the past, e.g. here but it ended up being a bit unsatisfying. I can't remember the details but it was something like you make a release, and then it triggers the workflow and eventually attaches the binaries (if CI passes). Kind of backwards - you really want to trigger the workflow with a release message as input, and then it creates the release at the end... Maybe that's possible but I didn't look into it. It's not much work to do releases manually really. |
I'm fine with it being in a subsequent PR. We definitely want it to be triggering the workflow that creates the release if we do go that route. I believe it is possible using the GitHub CLI, which should be usable in the GitHub Actions Runners. I can look into it. |
@Timmmm Took a look and I think I have a modified version of the action working for automatic releases. See https://github.com/jordancarlin/sail-riscv/blob/auto-release/.github/workflows/release.yml. When you go to manually start a run of it (which is its only trigger), you are prompted to fill in the following information: This then automatically creates the release and uploads the binaries to it. Result of test run can be seen here: https://github.com/jordancarlin/sail-riscv/releases/tag/v0.0.0-test3 |
Ah sweet, that was fast and looks easier than I was expecting! I'll update this PR with your version. |
9730ef6
to
0297158
Compare
Integration of my changes look good. A few other thoughts:
|
Add
-DSTATIC=TRUE
(not tested on Mac yet), and arelease.yml
CI workflow to build the emulators. That also doesn't have the Mac version enabled yet because we don't have a binary release of the Sail compiler for Mac yet, but that is coming.