Build Filotimo ISO #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Filotimo ISO | |
on: | |
workflow_dispatch: | |
workflow_call: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}-iso | |
cancel-in-progress: true | |
jobs: | |
build-iso: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
id-token: write | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@v1.3.1 | |
- name: Checkout Repo | |
uses: actions/checkout@v4 | |
- name: Determine Flatpak Dependencies | |
id: flatpak_dependencies | |
shell: bash | |
run: | | |
set -ex | |
image="ghcr.io/filotimo-project/image:latest" | |
# Make temp space | |
TEMP_FLATPAK_INSTALL_DIR=$(mktemp -d -p ${{ github.workspace }} flatpak.XXX) | |
# Get list of refs from directory | |
FLATPAK_REFS_DIR=${{ github.workspace }}/flatpaks | |
FLATPAK_REFS_DIR_LIST=$(cat ${FLATPAK_REFS_DIR}/* | tr '\n' ' ' ) | |
# Generate install script | |
cat << EOF > ${TEMP_FLATPAK_INSTALL_DIR}/script.sh | |
cat /temp_flatpak_install_dir/script.sh | |
mkdir -p /flatpak/flatpak /flatpak/triggers | |
mkdir /var/tmp || true | |
chmod -R 1777 /var/tmp | |
flatpak config --system --set languages "*" | |
flatpak remote-add --system flathub https://flathub.org/repo/flathub.flatpakrepo | |
flatpak install --system -y ${FLATPAK_REFS_DIR_LIST} | |
ostree refs --repo=\${FLATPAK_SYSTEM_DIR}/repo | grep '^deploy/' | grep -v 'org\.freedesktop\.Platform\.openh264' | sed 's/^deploy\///g' > /output/flatpaks_with_deps | |
EOF | |
docker run --rm --privileged \ | |
--entrypoint bash \ | |
-e FLATPAK_SYSTEM_DIR=/flatpak/flatpak \ | |
-e FLATPAK_TRIGGERSDIR=/flatpak/triggers \ | |
--volume ${FLATPAK_REFS_DIR}:/output \ | |
--volume ${TEMP_FLATPAK_INSTALL_DIR}:/temp_flatpak_install_dir \ | |
${image} /temp_flatpak_install_dir/script.sh | |
docker rmi ${image} | |
- name: Build Container Installer | |
uses: JasonN3/build-container-installer@v1.2.2 | |
id: build | |
with: | |
arch: x86_64 | |
image_name: image | |
image_repo: ghcr.io/filotimo-project | |
image_tag: latest | |
version: 40 | |
variant: "Kinoite" | |
iso_name: filotimo-latest-40.iso | |
secure_boot_key_url: "https://github.com/ublue-os/akmods/raw/main/certs/public_key.der" | |
enable_cache_dnf: "false" | |
enable_cache_skopeo: "false" | |
flatpak_remote_refs_dir: /github/workspace/flatpaks/ | |
enrollment_password: filotimo | |
enable_flatpak_dependencies: "false" | |
web_ui: true | |
# This example is for uploading your ISO as a GitHub artifact. You can do something similar using any cloud storage, so long as you copy the output | |
- name: Upload ISO as artifact | |
id: upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ steps.build.outputs.iso_name }} | |
path: | | |
${{ steps.build.outputs.iso_path }} | |
${{ steps.build.outputs.iso_path }}-CHECKSUM | |
if-no-files-found: error | |
retention-days: 0 | |
compression-level: 0 | |
overwrite: true |