Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
5773ca4
add: beginnings of um nothing bootc
Its-J Apr 15, 2026
499876f
initial ci test
Its-J Apr 15, 2026
411da98
add manifest?
Its-J Apr 15, 2026
10dae6f
disable reuse for testing purposes
Its-J Apr 15, 2026
febb57c
testtt
Its-J Apr 15, 2026
98c1fa2
remove reuse its very persistent
Its-J Apr 15, 2026
409ce08
make build run?
Its-J Apr 15, 2026
a32be60
narrow in ci big change
Its-J Apr 18, 2026
03e5256
fix containerfile syntax mistake
Its-J Apr 18, 2026
cc6f1f5
make it run the CI for my prs branch
Its-J Apr 18, 2026
02242f6
fix containerfile dir
Its-J Apr 18, 2026
0cf8dee
fix containerfile dir???
Its-J Apr 18, 2026
eb69c50
fix containerfile dir part 500
Its-J Apr 18, 2026
7918371
fix containerfile dir maybe
Its-J Apr 19, 2026
37f539b
move containerfile to root dir for testing :)
Its-J Apr 19, 2026
d247cd1
test
Its-J Apr 19, 2026
7993dd6
move containerfile back out of root dir lmao
Its-J Apr 19, 2026
04a25ee
maybe work?
Its-J Apr 19, 2026
b6d10f5
do owen suggestions
Its-J Apr 19, 2026
4b61877
fix containerfile syntax
Its-J Apr 19, 2026
8ee45c9
fix katsu dir
Its-J Apr 19, 2026
69e6755
fix unsigned commits and hardcode building with podman, need assistan…
Its-J Apr 19, 2026
be26e9f
cappy test
Its-J Apr 19, 2026
ce99777
cappy test lol
Its-J Apr 19, 2026
2ed60e9
cappy test lol p3
Its-J Apr 19, 2026
5d7f60d
sanitize branch name
Its-J Apr 19, 2026
8cf4b53
add sudo
Its-J Apr 19, 2026
f6cb340
fix sanitize
Its-J Apr 19, 2026
6a116c8
fix sanitize fr this time
Its-J Apr 19, 2026
adecf2e
fix ordering, get digest from correct step, cache
korewaChino Apr 19, 2026
e32568f
move to separate file
korewaChino Apr 19, 2026
2e29d80
move env too
korewaChino Apr 19, 2026
e39d6ca
cache tag moment
korewaChino Apr 19, 2026
604afd6
remove requirement for cache tag input
korewaChino Apr 19, 2026
2e4c209
uhh idk
korewaChino Apr 19, 2026
b822039
handle labels and annotations
korewaChino Apr 19, 2026
3106511
fix shell stuff with labeling
korewaChino Apr 19, 2026
9085273
annotations stuff
korewaChino Apr 19, 2026
2ee91d7
ok don't actually annotate the index for now
korewaChino Apr 19, 2026
e7e909b
bruh
korewaChino Apr 19, 2026
3f65c45
push only one tag
korewaChino Apr 19, 2026
1d48b71
add back variants
korewaChino Apr 19, 2026
8b43b23
oops
korewaChino Apr 19, 2026
129abde
skip if needs is not success
korewaChino Apr 19, 2026
013fd67
nothing: add root autologin for live images
korewaChino Apr 20, 2026
fa96b9a
add: build live isos with katsu
Its-J Apr 20, 2026
cd61aa6
add reuse back, fix nothing stuff, make bootc ci build by disabling s…
Its-J Apr 20, 2026
a52e836
make build run hopefully
Its-J Apr 20, 2026
bf81343
live iso workflow only runs after Build bootc images runs on main, so…
Its-J Apr 20, 2026
0fae770
test
Its-J Apr 20, 2026
9864caa
fix katsu copy template
Its-J Apr 20, 2026
2da8477
fix katsu copy template again
Its-J Apr 20, 2026
246a0ac
test
Its-J Apr 20, 2026
2dfed3d
why no longer working ugh what
Its-J Apr 20, 2026
1916c74
make it run?
Its-J Apr 20, 2026
a0e4057
fix permissions issue
Its-J Apr 20, 2026
acc8f20
fix funny katsu thing
Its-J Apr 20, 2026
594b04c
make iso builds run sooner
Its-J Apr 20, 2026
6b07e39
fix
Its-J Apr 20, 2026
add48fd
test
Its-J Apr 20, 2026
728160e
add matrix lol funny mistake
Its-J Apr 20, 2026
96c5bdf
testing
Its-J Apr 20, 2026
d9fcd3b
testing2
Its-J Apr 20, 2026
9ba8131
testing3
Its-J Apr 20, 2026
08fd891
testing4
Its-J Apr 20, 2026
1139590
testing5
Its-J Apr 20, 2026
074b18e
testing6
Its-J Apr 20, 2026
dc3bfac
fix
Its-J Apr 20, 2026
8de8ee0
remove docker sign in
Its-J May 13, 2026
f4053a2
output image tag from build job properly
korewaChino May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 0 additions & 99 deletions .github/workflows/autobuild.yml

This file was deleted.

60 changes: 60 additions & 0 deletions .github/workflows/bootc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# SPDX-FileCopyrightText: 2025 Cappy Ishihara <@cappy@fyralabs.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later

name: Build bootc images
permissions:
contents: read
packages: write
id-token: write
on:
schedule:
- cron: "0 4 * * *" # every day at 4am UTC
workflow_dispatch:
push:

jobs:
# temporarily disable to test iso builds faster
build:
permissions:
contents: read
packages: write
id-token: write
strategy:
fail-fast: false
matrix:
variant: # add new shade variants here
- name: nothing
image: ghcr.io/ultramarine-linux/shade/nothing
# - name: cinnamon
# image: ghcr.io/ultramarine-linux/shade/cinnamon
# - name: sway
# image: ghcr.io/ultramarine-linux/shade/sway
uses: ./.github/workflows/reusable-build-variant.yaml
with:
variant_name: ${{ matrix.variant.name }}
variant_image: ${{ matrix.variant.image }}
secrets: inherit

iso:
permissions:
contents: read
packages: write
id-token: write
strategy:
fail-fast: false
matrix:
variant: # add new shade variants here
- name: nothing
image: ghcr.io/ultramarine-linux/shade/nothing
# - name: cinnamon
# image: ghcr.io/ultramarine-linux/shade/cinnamon
# - name: sway
# image: ghcr.io/ultramarine-linux/shade/sway
needs: build # wait for build job to complete before running iso job
uses: ./.github/workflows/build-iso.yaml
with:
variant_name: ${{ matrix.variant.name }}
variant_image: ${{ matrix.variant.image }}
image_tag: ${{ needs.build.outputs.image_tag }} # output from reusable-build-variant.yaml's manifest job
secrets: inherit
40 changes: 0 additions & 40 deletions .github/workflows/bootstrap.yml

This file was deleted.

110 changes: 110 additions & 0 deletions .github/workflows/build-iso.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# SPDX-FileCopyrightText: 2025 Its-J <@jonah@fyralabs.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later

name: Build ISO images with katsu

on:
# schedule:
# - cron: "0 4 * * *" # every day at 4am UTC
workflow_call:
inputs:
variant_name:
description: Variant name used to locate the build context
required: true
type: string
variant_image:
description: Full image repository to build and push
required: true
type: string
image_tag:
description: Tag of the image to build
required: true
type: string

# Cancel in-progress builds when a new run is queued
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true

jobs:
build-iso:
strategy:
fail-fast: false
matrix:
arch: [x86_64, aarch64]
variant:
- name: nothing
image: ghcr.io/ultramarine-linux/nothing-bootc:${{ github.ref_name || 'main' }}

name: Build ISO images with katsu
runs-on: ${{ contains(matrix.arch, 'aarch64') && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }}

container:
image: ghcr.io/fyralabs/katsu:main
options: --privileged --security-opt seccomp=unconfined -v /usr:/hostusr -v /:/hostfs

steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4

- name: Clean up space before build
run: |
df -h
# Wipe stuff in our host /usr to make some space

# We don't need the android SDK
rm -rf /hostusr/local/lib/android
# We're a Rust shop, not a Haskell shop
rm -rf /hostusr/local/.ghcup
rm -rf /hostfs/opt/ghc
# We don't even use .NET
rm -rf /hostusr/share/dotnet
# We don't need CodeQL in this action
rm -rf /hostfs/opt/hostedtoolcache/CodeQL


echo "After cleanup:"
df -h

- name: Login to GitHub Container Registry
env:
registry: ghcr.io
shell: bash
run: |
echo "${{ secrets.GITHUB_TOKEN }}" | sudo podman login -u "${{ github.actor }}" --password-stdin "$registry"

- name: Build live ISO with Katsu
run: |
# set -x prints all commands to terminal
set -x

echo "debug: variant_image: ${{ inputs.variant_image }}"
echo "debug: image_tag: ${{ inputs.image_tag }}"

# make output directory and copy katsu manifest template there
mkdir -p output/
cp -r katsu-template/ output/katsu-live/

# replace %BASE_IMAGE with the actual image name in bootc-live.yaml manifest
# %BASE_IMAGE needs to look something like ghcr.io/ultramarine-linux/shade/nothing:sha-acc8f20
# ghcr.io/ultramarine-linux/shade/nothing is the variant_image and :main is the tag
IMAGE_NAME=${{ inputs.variant_image }}:${{ inputs.image_tag }}

echo "debug: IMAGE_NAME=${IMAGE_NAME}"

sed -i "s|%BASE_IMAGE%|${IMAGE_NAME}|g" output/katsu-live/bootc-live.yaml # makes katsu manifest

# build the live ISO using katsu with the generated manifest
katsu -o iso output/katsu-live/bootc-live.yaml

# rename the built ISO to include variant name and architecture
mv out.iso ./${{ inputs.variant_name }}-${{ matrix.arch }}.iso

- name: Upload artifact
uses: actions/upload-artifact@v7
with:
name: iso-artifact-${{ github.run_id }}-${{ inputs.variant_name }}-${{ matrix.arch }}
path: ./*.iso
archive: false
compression-level: 0
Loading
Loading