diff --git a/README.md b/README.md index b812770..2dd6c26 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,23 @@ # wunker-os -[![build-ublue](https://github.com/gmpinder/wunker-os/actions/workflows/build.yml/badge.svg)](https://github.com/gmpinder/wunker-os/actions/workflows/build.yml) +[![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. GitHub will build your image for you, and then host it for you on [ghcr.io](https://github.com/features/packages). You then just tell your computer to boot off of that image. GitHub keeps 90 days worth image backups for you, thanks Microsoft! +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 [uBlue homepage](https://ublue.it/) and the [main uBlue repo](https://github.com/ublue-os/main/) ## Installation -> **Warning** -> This is an experimental feature and should not be used in production, try it in a VM for a while! - To rebase an existing Silverblue/Kinoite installation to the latest build: ```bash -sudo rpm-ostree rebase ostree-unverified-registry:registry.gitlab.com/wunker-bunker/wunker-os/desktop:latest +sudo rpm-ostree rebase ostree-unverified-registry:registry.gitlab.com/wunker-bunker/wunker-os/jp/desktop:latest ``` 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/desktop:20230403 +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. @@ -56,12 +53,38 @@ After doing that, you'll be able to run the following commands: 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 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 -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/: +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//: ``` -Where `VARIANT` is the image from the recipe you choose and `TAG` is the version of the image. +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.