Update README

This commit is contained in:
2023-07-29 16:55:33 -04:00
parent fb5b78d79f
commit aa58baf022

View File

@@ -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/<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/<USER>/<VARIANT>:<TAG>
```
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.