ublue-os / bluefin

The next generation Linux workstation, designed for reliability, performance, and sustainability.
https://projectbluefin.io
Apache License 2.0
1.25k stars 163 forks source link

refactor: Reorganize Build Process #1867

Closed m2Giles closed 2 weeks ago

m2Giles commented 2 weeks ago

This significantly reworks the build system for Bluefin/Aurora.

Changes: Consolidates Workflows Removes Surface and Asus images in favor of a single HWE image Rewrite of local dev Justfile Reorganization and Consolidation of build files

Add new files

Closes: #1841

m2Giles commented 2 weeks ago

1841

1839

m2Giles commented 2 weeks ago

I see how to pass strings that turn into json objects now.

I think we will still want a matrix in the reusable build but it just takes inputs.

castrojo commented 2 weeks ago

@befanyt got any opinions here? If we're going to build a new world we might as well get new eyes. 😄

m2Giles commented 2 weeks ago

Changelogs script is in place. It needs to be wired up.

In testing I saw that GTS and Latest do not have dates associated with them. That is rectified in this PR.

Beta is also now configured to follow coreos-testing. Beta will change from time to time on what it's following. It is not recommended for daily use.

m2Giles commented 2 weeks ago

Need to handle how stable-daily vs stable changelogs work.

Right now the workflow is called stable and we use that for changelogs. But we only want stable to get tagged weekly.

We could upload an artifact as a trigger. Or have some other way passing the fact that two changelogs are needed from resuable-build

m2Giles commented 2 weeks ago

Remaining:

Changelogs running for GTS and weekly stable only. If the workflow is GTS run thr changelog. If it's stable (not stable daily) make an output to tell to run changelogs.

Kernel Pinning. Have an input to reusable build for pinning a kernel.

befanyt commented 2 weeks ago

@befanyt got any opinions here? If we're going to build a new world we might as well get new eyes. 😄

I wish I had something useful to add here, but this is more of a 'watch and learn how it's done' kind of situation. :sweat_smile:

m2Giles commented 2 weeks ago

I believe this is now ready for review.

m2Giles commented 2 weeks ago

I think the only thing needed to change to make that a reality is to make sure build container and rechunk can run completely as root.

The only major concern is not having enough space on builds when copying to the rootful podman store.

bsherman commented 2 weeks ago

I think the only thing needed to change to make that a reality is to make sure build container and rechunk can run completely as root.

Ah, like an additional flag to the build recipe to run it as root? Yes, then it would match workflow behavior.

The only major concern is not having enough space on builds when copying to the rootful podman store.

This should be addressed by running build as root, no?

m2Giles commented 2 weeks ago

I would run the just command with sudo.

I've already put in a bunch of sudoif's so this should be just testing to make sure it works as intended.

I may add the secureboot check to the justfile.

bsherman commented 2 weeks ago

After further review and discussion, while we DO want to make use of the new and improved just recipes within the github workflows, that effort can be iterated on. As is, this is already large and holding up some needed fixes. So we should make an issue to reduce the workflow specific code by calling just instead.

I'm continuing to review the existing changes tonight. So far looking nice.