Update REAMDE to better reflect how these image are used

This commit is contained in:
2024-02-19 12:47:51 -05:00
parent ec65840ea4
commit 5ef7da1464

View File

@@ -2,89 +2,22 @@
[![pipeline status](https://gitlab.com/wunker-bunker/wunker-os/badges/main/pipeline.svg)](https://gitlab.com/wunker-bunker/wunker-os/-/commits/main) [![pipeline status](https://gitlab.com/wunker-bunker/wunker-os/badges/main/pipeline.svg)](https://gitlab.com/wunker-bunker/wunker-os/-/commits/main)
This is a constantly updating template repository for creating [a native container image](https://fedoraproject.org/wiki/Changes/OstreeNativeContainerStable) designed to be customized however you want. For more info, check out the [blue-build homepage](https://blue-build.org/).
For more info, check out the [uBlue homepage](https://ublue.it/) and the [main uBlue repo](https://github.com/ublue-os/main/)
## Installation ## Installation
To rebase an existing Silverblue/Kinoite installation to the latest build: To rebase an existing Silverblue/Kinoite installation to the latest build:
```bash ```bash
sudo rpm-ostree rebase ostree-unverified-registry:registry.gitlab.com/wunker-bunker/wunker-os/jp/desktop:latest sudo rpm-ostree rebase ostree-image-signed:docker://registry.gitlab.com/wunker-bunker/wunker-os/jp-desktop:39
``` ```
This repository builds date tags as well, so if you want to rebase to a particular day's build:
```bash
sudo rpm-ostree rebase ostree-unverified-registry:registry.gitlab.com/wunker-bunker/wunker-os/jp/desktop:20230729
```
The `latest` tag will automatically point to the latest build. That build will still always use the Fedora version specified in `recipe.yml`, so you won't get accidentally updated to the next major version.
## Just
The `just` task runner is included in `ublue-os/main`-derived images, and we have provided several template commands which help you perform further customization after first boot.
You can merge our template justfiles into your own local configuration. When `just` supports [include directives](https://just.systems/man/en/chapter_52.html), you will instead be able to simply include these paths into your own justfile, without having to copy anything manually.
Run the following commands when you're logged into the operating system, to merge uBlue's provided configurations into your own user config. (The "touch" command is only necessary on certain shells which won't let you merge into non-existent files.)
```sh
touch ~/.justfile
cat /usr/share/ublue-os/just/main.just >> ~/.justfile
cat /usr/share/ublue-os/just/custom.just >> ~/.justfile
```
After doing that, you'll be able to run the following commands:
- `just` - Show all tasks, more will be added in the future
- `just bios` - Reboot into the system bios (Useful for dualbooting)
- `just changelogs` - Show the changelogs of the pending update
- Set up distroboxes for the following images:
- `just distrobox-boxkit`
- `just distrobox-debian`
- `just distrobox-opensuse`
- `just distrobox-ubuntu`
- `just setup-flatpaks` - Install all of the flatpaks declared in recipe.yml
- `just setup-gaming` - Install Steam, Heroic Game Launcher, OBS Studio, Discord, Boatswain, Bottles, and ProtonUp-Qt. MangoHud is installed and enabled by default, hit right Shift-F12 to toggle
- `just nix-me-up` - Install Nix with dnkmmr69420's Nix Silverblue install script
- `just update` - Update rpm-ostree, flatpaks, and distroboxes in one command
Check the [just website](https://just.systems) for tips on modifying and adding your own recipes.
## Building Variants
In the `.gitlab-ci.yml` file, you will want to overide the `.recipe-matrix` job with a list of `RECIPE` and `USER` combos like the following:
```yaml
.recipe-matrix:
parallel:
matrix:
- RECIPE:
- recipe-desktop.yml
- recipe-framework-13.yml
USER: jp
- RECIPE: recipe-cp.yml
USER: cp
```
The pipeline will run 3 build jobs where:
1. The recipe used is `recipe-desktop.yml` and build will copy the `usr-jp/` directory and use `Containerfile.jp`
2. The recipe used is `recipe-framework-13.yml` and build will copy the `usr-jp/` directory and use `Containerfile.jp`
3. The recipe used is `recipe-cp.yml` and build will copy the `usr-cp/` directory and use `Containerfile.cp`
### Default Build
If a matrix is not supplied, the file `recipe.yml` will be used and the `usr/` directory will be copied and built with `Containerfile`.
## Verification ## Verification
These images are signed with sisgstore's [cosign](https://docs.sigstore.dev/cosign/overview/). You can verify the signature by running the following command: These images are signed with sisgstore's [cosign](https://docs.sigstore.dev/cosign/overview/). You can verify the signature by running the following command:
```bash ```bash
cosign verify --certificate-identity "https://gitlab.com/wunker-bunker/wunker-os//.gitlab-ci.yml@refs/heads/main" --certificate-oidc-issuer "https://gitlab.com" registry.gitlab.com/wunker-bunker/wunker-os/<USER>/<VARIANT>:<TAG> cosign verify --certificate-identity "https://gitlab.com/wunker-bunker/wunker-os//.gitlab-ci.yml@refs/heads/main" --certificate-oidc-issuer "https://gitlab.com" registry.gitlab.com/wunker-bunker/wunker-os/<VARIANT>:<TAG>
``` ```
Where `USER` is the user to match against the `usr` directory and Containerfile, `VARIANT` is the image from the recipe you choose, and `TAG` is the version of the image. Where `VARIANT` is the image from the recipe you choose, and `TAG` is the version of the image.