-
Notifications
You must be signed in to change notification settings - Fork 144
ELKS + Nano X github action #2562
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
base: master
Are you sure you want to change the base?
Conversation
Set TOPDIR environment variable for build process.
Check for existence of the Minix HDD image before proceeding.
Removed installation verification step for Nano-X.
Add error handling for missing or non-executable mfs
Change directory to the GitHub workspace root before running installation commands.
|
Hello @toncho11, Does this run automatically? And how do you test it? I don't know that much about exactly how CI's run on Github. This is great, but I have a concern if it runs automatically but also builds ELKS from scratch in entirety (again), before building Microwindows. This would add another 3-4 minutes to each PR commit. If this is the case, it might be better to build Microwindows within the main CI build after normal completion, then add the contents to a special MINIX HDD. If there was a way to somehow control how often it ran (possibly by inspecting changes to the external repos), then we might be able to use such a mechanism to build other external ELKS applications (like 8086-toolchain, Doom, etc) and automatically create an HDD image. Thank you! |
|
Currently it takes 3 minutes, 22 seconds. I think it runs on every change. I used the "main" as a base for this "nanox" workflow. The way it is designed now allows the nanox part to be simply appended at the end of "main" workflow. This is because it clones, compiles and then adds the binaries to an image of choice using mfs. So it is currently minix only, but it can be extended to mount the HDD fat images and copy the nanox binaries to them as well. So yes, you can simply append after the Yes, this could be further optimized to detect if a repository was really updated. But this needs more experimentation. |
Added manual trigger for workflow dispatch.
Updated the workflow to download hd32-minix.img from the latest successful main run using the GitHub CLI, replacing the previous method.
Added a step to build ELKS host tools required for Nano-X linking in the GitHub Actions workflow.
|
This is madness. |
Thanks @toncho11 for trying, I know CI can be difficult. Lets leave this open and I'll try to play with it a bit and see if I can get it to work. |
|
We may need to add the workflow directly into main.yml or reference it from main.yml like ow-libc.yml is. |
|
Reopened. |
|
This my last idea of nanox script that reuses main is too complicated and unreachable goal with github actions. 2 solutions:
|
Original version that worked.
|
I reverted it to the original version. We can add support for "on demand" execution, I used it already. Or maybe it is possible to make it only on demand. This way we decide when to produce a new elks+nanox image. But I do not see a problem to have separate workflow like this that produces this combined image, it does not block you from working on ELKS. |
How is that done?
Does this separate workflow rebuild ELKS from scratch each time, resulting in the additional 3-4 minute delay per push? As you may have noticed, I've already turned off additional PR builds for the same reason (in main.yml): CI is definitely not my favorite programming as its hard to get right, as you've already found out. I'll try to understand more about what your "current" version does and how we might be able to get a Microwindows build integrated as we both desire. |
|
The code below is triggered when:
or workflow that triggered this was "main" Yes, the current version rebuilds ELKS from scratch. Again, it is possible to update main as explained here: #2562 (comment) or try to improve on this version where 71b2998 the HDD minix is downloaded from "main" and then you compile microwindows only, but I could not get it to compile only the build tools required to build microwindows. But some things do work in 71b2998 and if you can figure out why the microwindows can not be built in this case (build tools are missing I think) then it might be perfect. Again ... all the patience in the world will be needed. |
This PR allows automatic generation of ELKS HDD image with Nano X applications integrated.
I made a new workflow that currently generates a minix-32MB hdd image with the latest version of Microwindows Nano X. Maybe there can be another way to do it, but I think for now we can use this one (because it works already).