Commit graph

45 commits

Author SHA1 Message Date
Gerald Pinder
a7d862abf0
feat: Embed build scripts and extract into temp dir for build (#516)
This decouples the need for a published image for the bulid scripts and
will now embed them into the binary instead. This will make it so that
anyone that forks the CLI is able to make adjustments to the build
scripts and use them immediately.

This will be needed for testing #515
2025-08-10 16:09:42 -04:00
Gerald Pinder
3a0be4099a
feat: Add bootc support (#448)
Adds support for using `bootc` as the preferred method for booting from
a locally created image. This new method gets rid of the need to create
a tarball and move it to the correct place and instead it will make use
of `podman scp` which copies the image to the root `containers-storage`
and then has `rpm-ostree` and `bootc` boot from that store.

Closes #418 
Closes #200
2025-08-09 14:05:59 -04:00
Gerald Pinder
b3a8b65b21 chore: Set shadow back to its original location 2024-11-06 20:05:57 -05:00
Gerald Pinder
9a3ad0ae17 feat: Add validation command 2024-10-30 18:08:50 -04:00
Gerald Pinder
8ce83ba7ff
refactor: Create SigningDriver and CiDriver (#197)
This also includes a new `login` command. The signing and CI logic is now using the Driver trait system along with a new experimental sigstore signing driver. New static macros have also been created to make implementation management easier for `Command` usage and `Driver` trait implementation calls.

---------

Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
2024-08-12 23:52:07 -04:00
Gerald Pinder
02b2fe5434
refactor!: Rename template to generate and move rebase/upgrade under switch (#116)
This updates the `template` subcommand to be `generate`. The `template`
usage will continue to work as an alias to `generate`. A new `switch`
command is added that will manage both `rpm-ostree rebase` and
`rpm-ostree upgrade` and is fully replacing the respective subcommands
as a breaking change.

The new `switch` command is under the feature flag `switch` and will
currently only build for the `main` branch builds until it is moved as a
default feature (`v0.9.0`).

Closes #159
2024-05-26 22:47:34 -04:00
Gerald Pinder
7c34d0c5a8
fix: Allow docker driver to properly use cache (#126)
This fix involves creating a new function for the `BuildDriver` trait
called `build_tag_push`. In order to get the proper logic in place to
make use of `docker buildx`, I had to create a separate function that
would construct the build command to include all of the tags necessary
for pushing. A default implementation of `build_tag_push` will be used
for `podman` and `buildah` which was originally from the build command's
functions. Now that we have custom logic for docker builds, we can take
advantage of using the GitHub cache features without having the `--load`
arg which had a big negative effect on build times. We can now also use
docker for creating local `oci-archive` tarballs for local rebasing.
Making use of the `oci-archive` will require the user to create a
`docker-container` builder as it is not supported on the standard
`docker` builder.

https://docs.docker.com/build/exporters/oci-docker/
2024-03-19 16:51:09 -04:00
Gerald Pinder
8006af3ec9 refactor: Rename strategies to drivers
This will make the terms similar to the terms of the dependent tools i.e. docker.
2024-03-16 12:47:02 -04:00
Gerald Pinder
a54b78c8dc refactor: Enable pedantic clippy lints
Updated files to comply with the new lint.
2024-03-12 18:07:46 -04:00
Hikari
580c3d6ce7
fix: use container skopeo (#110)
the `os_version` is defaulting to the `image_tag` inside containers and
causing our template to use latest tag

---------

Co-authored-by: Gerald Pinder <gmpinder@gmail.com>
2024-03-11 23:23:42 +00:00
Gerald Pinder
0ba78fab32
refactor: Update build command to use BuildStrategy (#88) 2024-03-01 11:18:02 -06:00
Gerald Pinder
910e0434b6
refactor: Move templates to their own crate (#83)
This PR logically separates out parts of the code to their own crates. This will be useful for future Tauri App development.
2024-02-25 14:45:33 -06:00
Gerald Pinder
4c8a8f7aa8
refactor: Move modules into their own directory structure (#80)
This separates out the module template logic so that it is easier to
undertstand what each section does. This will also allow creating in
repo documentation for any special modules that don't use a bash base.
2024-02-24 07:16:30 +00:00
Gerald Pinder
6b4c86f01f refactor: Enable clippy nursery lint 2024-02-10 15:32:20 -05:00
Gerald Pinder
d302875020 chore: Update README to show github action use 2024-02-05 20:52:36 -05:00
Gerald Pinder
d7885ded63
feat: Allow default recipe path (#45) 2024-02-04 12:45:20 -06:00
Hikari
e069346e15
feat: Bugreport command (#28)
Add a bug report + completions command(not complete yet) so that new
users can easily submit bugs to us, and I wanted completions for bb
(super easy with clap)

---------

Co-authored-by: Gerald Pinder <gmpinder@gmail.com>
2024-01-31 09:51:13 -05:00
Gerald Pinder
331b91df35
chore: Enable Clippy Pedantic lint (#19) 2024-01-27 13:03:16 -06:00
Gerald Pinder
c32a0604ce
chore: Move recipe out to its own module (#18) 2024-01-27 11:22:30 -06:00
N16hth4wk
dbbd087b5b
feat: run clippy + BlueBuildTrait (#4)
* feat: run clippy + BlueBuildTrait

* chore: add default run impl; more clippy

* chore: remove vscode folder; not needed

* cleanups

* Move to commands.rs

* Move functions; remove run function implementation from each command

* Remove run impl from init commands

* Use error log

---------

Co-authored-by: Gerald Pinder <gmpinder@gmail.com>
2024-01-21 22:26:35 -05:00
Gerald Pinder
b547a326fd feat!: Upgrade and Rebase commands 2024-01-21 23:23:36 +00:00
Gerald Pinder
1b950b08dc nightly(podman-api): Use podman-api crate for building images 2024-01-19 18:55:26 +00:00
Gerald Pinder
d663b7574b refactor: Use askama crate for compile-time template type checking 2024-01-03 23:39:57 -05:00
Gerald Pinder
d3ff4eed93 fix: rename ublue-rs to blue-build 2023-12-30 15:35:34 -05:00
Gerald Pinder
ebd861cd7e Refactor Command Structs and create Earthly build 2023-12-19 02:23:31 +00:00
Gerald Pinder
7f4f666b0a fix: improper trim of image digest 2023-12-18 10:05:46 -05:00
Gerald Pinder
b83cf574b8 feat: Add logging 2023-12-18 00:17:15 -05:00
Gerald Pinder
f437bdaffa fix: clippy 2023-12-17 22:04:27 -05:00
Gerald Pinder
71d93977b9 Start work on build command 2023-12-17 15:34:32 -05:00
Gerald Pinder
785fc2f762 feat!: Remove legacy code" 2023-12-16 20:46:29 -05:00
Gerald Pinder
006966bb35 fix: Move command structs into bin 2023-12-16 20:41:36 -05:00
Gerald Pinder
c6f2e5b18d fix: print module context as json 2023-10-27 22:30:10 -04:00
Gerald Pinder
b1b2b0b2ac fix: Add support for legacy containerfiles and modules containerfiles 2023-10-27 17:07:03 -04:00
Gerald Pinder
85aadf73e5 feat(modules)!: Support new modules based starting point template 2023-10-27 20:26:14 +00:00
Gerald Pinder
5c503eff4b Add features section 2023-10-14 14:59:34 -04:00
Gerald Pinder
073ad4ca4a Put init and build behind feature flags 2023-10-14 14:54:44 -04:00
Gerald Pinder
564ea919a5 Start work on init command 2023-10-11 23:59:16 -04:00
Gerald Pinder
bd04489dc3 Clean up the code a bit 2023-10-05 23:05:40 -04:00
Gerald Pinder
2cd8878490 Create autorun script capabilities 2023-10-01 18:54:23 -04:00
Gerald Pinder
69effba45b Allow for custom Containerfile adding 2023-10-01 16:38:18 -04:00
Gerald Pinder
bd6fabd0de Get cli in basic working order 2023-10-01 15:25:53 -04:00
Gerald Pinder
e42cda01ff Able to generate a Containerfile 2023-09-26 23:47:31 -04:00
Gerald Pinder
5361b36238 Making some progress 2023-09-25 23:14:15 -04:00
Gerald Pinder
783c53ebb8 Create templates, serialization structs, and cli arg parsing 2023-09-25 22:45:42 -04:00
Gerald Pinder
6a7cadd2f6 Initial commit 2023-09-25 21:11:31 -04:00