blob: 870699e84f0e1381c8cd67c39efa4ad88decc610 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
name: Build live installer
on:
workflow_dispatch:
inputs:
image_tag:
description: "AeroCore image tag to install"
required: false
default: latest
type: string
workflow_call:
push:
branches:
- main
paths:
- "installer/**"
- "just_scripts/build-live-installer.sh"
- ".github/workflows/build-live-installer.yml"
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
build-live-installer:
name: Build KDE live installer
runs-on: ubuntu-24.04
permissions:
contents: read
packages: read
env:
IMAGE_REGISTRY: ghcr.io/${{ github.repository_owner }}
IMAGE_TAG: ${{ inputs.image_tag || 'latest' }}
BASE_IMAGE: ghcr.io/ublue-os/bazzite:stable
FEDORA_VERSION: "44"
steps:
- name: Maximize build space
uses: ublue-os/remove-unwanted-software@cc0becac701cf642c8f0a6613bbdaf5dc36b259e # v9
with:
remove-codeql: true
- name: Mount container storage BTRFS loopback
run: |
sudo truncate -s 70G /mnt/podman-storage.img
sudo mkfs.btrfs -f /mnt/podman-storage.img
sudo podman system reset --force
sudo systemctl stop podman.service
sudo mount -o compress-force=zstd:2 /mnt/podman-storage.img /var/lib/containers/storage
sudo systemctl start podman.service
- name: Checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- name: Install just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # v4
- name: Prepare image references
run: |
image_name="$(just image_name)"
image_registry="${IMAGE_REGISTRY,,}"
echo "IMAGE_NAME=${image_name,,}" >> "$GITHUB_ENV"
echo "IMAGE_REGISTRY=${image_registry}" >> "$GITHUB_ENV"
- name: Login to GHCR
run: |
echo '${{ secrets.GITHUB_TOKEN }}' | sudo podman login ghcr.io \
--username '${{ github.actor }}' --password-stdin
- name: Pull AeroCore install image
run: |
sudo podman pull "${IMAGE_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
- name: Build live installer payload
run: |
sudo podman build \
--cap-add sys_admin \
--security-opt label=disable \
--build-arg "BASE_IMAGE=${BASE_IMAGE}" \
--build-arg "INSTALL_IMAGE_PAYLOAD=${IMAGE_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}" \
--tag localhost/aerocore-live-payload:latest \
--file installer/Containerfile \
.
- name: Build ISO
id: build
uses: Zeglius/titanoboa@revamp-pr
with:
arch: x86_64
image_name: aerocore-live-payload
image_repo: localhost
variant: Kinoite
version: ${{ env.FEDORA_VERSION }}
image_tag: latest
iso_name: aerocore-os-${{ env.IMAGE_TAG }}-amd64.iso
enable_cache_dnf: "false"
enable_cache_skopeo: "false"
enable_flatpak_dependencies: "false"
additional_templates: /github/workspace/installer/lorax_templates/remove_root_password_prompt.tmpl /github/workspace/installer/lorax_templates/set_default_user.tmpl
- name: Display checksum
run: |
cat "${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}-CHECKSUM"
- name: Upload ISO artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: aerocore-os-live-installer-${{ env.IMAGE_TAG }}
path: |
${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}
${{ steps.build.outputs.iso_path }}/${{ steps.build.outputs.iso_name }}-CHECKSUM
if-no-files-found: error
compression-level: 0
|