Skip to content

Commit

Permalink
chore(ci): build Aurora ISOs using a split workflow. (#1103)
Browse files Browse the repository at this point in the history
Co-authored-by: Jorge O. Castro <[email protected]>
Co-authored-by: Niklas Haiden <[email protected]>
Co-authored-by: Noel Miller <[email protected]>
  • Loading branch information
4 people authored Apr 10, 2024
1 parent 3393791 commit 0383801
Show file tree
Hide file tree
Showing 6 changed files with 116 additions and 80 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
name: Build Bluefin ISOs
name: Reusable Build ISOs
on:
workflow_dispatch:
workflow_call:
inputs:
brand_name:
description: "'aurora' or 'bluefin'"
required: true
type: string
fedora_version:
description: 'The Fedora release version: 38, 39, 40, etc'
required: true
type: string

concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}-iso
Expand All @@ -17,41 +25,52 @@ jobs:
strategy:
fail-fast: false
matrix:
image_name:
- bluefin
- bluefin-nvidia
- bluefin-asus
- bluefin-asus-nvidia
- bluefin-surface
- bluefin-surface-nvidia
- bluefin-dx
- bluefin-dx-nvidia
- bluefin-dx-asus
- bluefin-dx-surface
- bluefin-dx-asus-nvidia
- bluefin-dx-surface-nvidia
major_version: [38, 39]
image_flavor:
- main
- nvidia
- asus
- asus-nvidia
- surface
- surface-nvidia
base_name:
- ${{ inputs.brand_name }}
- ${{ inputs.brand_name }}-dx
fedora_version:
- ${{ inputs.fedora_version }}
exclude:
- major_version: 38
image_name: bluefin-asus
- major_version: 38
image_name: bluefin-asus-nvidia
- major_version: 38
image_name: bluefin-dx-asus
- major_version: 38
image_name: bluefin-dx-asus-nvidia
- fedora_version: 38
image_flavor: asus
- fedora_version: 38
image_flavor: asus-nvidia
- fedora_version: 38
image_flavor: surface
- fedora_version: 38
image_flavor: surface-nvidia
# Don't build version 40 yet
- fedora_version: 40
include:
- major_version: 38
- fedora_version: 38
is_gts_version: true
- major_version: 39
- fedora_version: 39
is_gts_version: false
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/[email protected]

- name: Checkout Repo
uses: actions/checkout@v4

- name: Matrix Variables
run: |
if [[ "${{ matrix.image_flavor }}" == "main" ]]; then
echo "IMAGE_NAME=${{ matrix.base_name }}" >> $GITHUB_ENV
else
echo "IMAGE_NAME=${{ format('{0}-{1}', matrix.base_name, matrix.image_flavor) }}" >> $GITHUB_ENV
fi
if [[ ${{ inputs.brand_name }} == "bluefin" ]]; then
echo "VARIANT=Silverblue" >> $GITHUB_ENV
elif [[ ${{ inputs.brand_name }} == "aurora" ]]; then
echo "VARIANT=Kinoite" >> $GITHUB_ENV
fi
- name: Set Image Tag
id: generate-tag
shell: bash
Expand All @@ -72,58 +91,27 @@ jobs:
# Would like to implement in the future. This will allow us to support image tags from a PR.
#if [[ github.event.number ]]; then
# TAG="pr-${{ github.event.number }}-${{ matrix.major_version }}"
# TAG="pr-${{ github.event.number }}-${{ matrix.fedora_version }}"
#fi
echo "tag=${TAG}" >> $GITHUB_OUTPUT
- name: Set Flatpaks Directory Shortname
id: generate-flatpak-dir-shortname
shell: bash
run: |
FLATPAK_DIR_SHORTNAME="gnome_flatpaks"
# preparing for aurora
if [[ "${{ matrix.image_name }}" =~ "aurora" ]]; then
FLATPAK_DIR_SHORTNAME="kde_flatpaks"
if [[ ${{ inputs.brand_name }} = "bluefin" ]]; then
FLATPAK_DIR_SHORTNAME="bluefin_flatpaks"
elif [[ ${{ inputs.brand_name }} = "aurora" ]]; then
FLATPAK_DIR_SHORTNAME="aurora_flatpaks"
fi
echo "flatpak-dir-shortname=${FLATPAK_DIR_SHORTNAME}" >> $GITHUB_OUTPUT
# Removing to debug, will add back once working
# - name: Determine Flatpak Dependencies
# id: flatpak_dependencies
# uses: jasonn3/build-container-installer@deps
# with:
# arch: x86_64
# image_name: ${{ matrix.image_name }}
# image_repo: ghcr.io/ublue-os
# variant: 'Silverblue'
# version: ${{ matrix.major_version }}
# image_tag: ${{ steps.generate-tag.outputs.tag }}
# secure_boot_key_url: 'https://github.com/ublue-os/akmods/raw/main/certs/public_key.der'
# enrollment_password: 'ublue-os'
# make_target: flatpaks/full_list
# enable_cache_dnf: "false"
# enable_cache_skopeo: "false"
# flatpak_remote_refs_dir: flatpaks

# - name: Filter Flatpak list
# id: filtered_flatpak_dependencies
# shell: bash
# run: |
# newlist=$(echo ${{ steps.flatpak_dependencies.outputs.flatpak_refs }} | \
# tr ' ' '\n' | \
# grep -v 'org\.freedesktop\.Platform\.openh264' | \
# tr '\n' ' ')
# echo "filtered_flatpak_refs=${newlist}" >> $GITHUB_OUTPUT

- name: Determine Flatpak Dependencies
id: flatpak_dependencies
shell: bash
run: |
set -ex
image="ghcr.io/ublue-os/${{ matrix.image_name }}:${{ steps.generate-tag.outputs.tag }}"
image="ghcr.io/ublue-os/${{ env.IMAGE_NAME }}:${{ steps.generate-tag.outputs.tag }}"
# Make temp space
TEMP_FLATPAK_INSTALL_DIR=$(mktemp -d -p ${{ github.workspace }} flatpak.XXX)
# Get list of refs from directory
Expand All @@ -150,21 +138,20 @@ jobs:
docker rmi ${image}
- name: Build ISOs
uses: jasonn3/build-container-installer@deps
uses: jasonn3/build-container-installer@main
id: build
with:
arch: x86_64
image_name: ${{ matrix.image_name }}
image_name: ${{ env.IMAGE_NAME }}
image_repo: ghcr.io/ublue-os
variant: 'Silverblue'
version: ${{ matrix.major_version }}
variant: ${{ env.VARIANT }}
version: ${{ matrix.fedora_version }}
image_tag: ${{ steps.generate-tag.outputs.tag }}
secure_boot_key_url: 'https://github.com/ublue-os/akmods/raw/main/certs/public_key.der'
enrollment_password: 'ublue-os'
iso_name: ${{ matrix.image_name }}-${{ steps.generate-tag.outputs.tag }}.iso
iso_name: ${{ env.IMAGE_NAME }}-${{ steps.generate-tag.outputs.tag }}.iso
enable_cache_dnf: "false"
enable_cache_skopeo: "false"
## flatpak_remote_refs: ${{ steps.filtered_flatpak_dependencies.outputs.filtered_flatpak_refs }}
flatpak_remote_refs_dir: ${{ steps.generate-flatpak-dir-shortname.outputs.flatpak-dir-shortname }}
enable_flatpak_dependencies: "false"

Expand All @@ -183,7 +170,7 @@ jobs:
#if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.image_name }}-${{ steps.generate-tag.outputs.tag }}-${{ matrix.major_version}}
name: ${{ steps.build.outputs.iso_name }}
path: ${{ steps.upload-directory.outputs.iso-upload-dir }}
if-no-files-found: error
retention-days: 0
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/reusable-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -287,5 +287,8 @@ jobs:
if: github.ref_name == 'testing'
# Eventually would be nice for building images in PRs
#if: ${{ endsWith(github.event.pull_request.title, '[ISO]') }}
uses: ./.github/workflows/build_iso.yml
uses: ./.github/workflows/reusable-build-iso.yml
secrets: inherit
with:
brand_name: ${{ inputs.brand_name }}
fedora_version: ${{ inputs.fedora_version }}
20 changes: 13 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
# bluefin
**This image is considered Beta**
# bluefin and aurora
**These images are considered Beta**

## Bluefin - [projectbluefin.io](https://projectbluefin.io)
![image](https://github.com/ublue-os/bluefin/assets/1264109/c0b3fa8a-f513-4bb1-b314-e134d1802e18)

> "Evolution is a process of constant branching and expansion." - Stephen Jay Gould
## [projectbluefin.io](https://projectbluefin.io)
- [Announcement Blog Post](https://www.ypsidanger.com/announcing-project-bluefin/)

A familiar(ish) Ubuntu desktop for Fedora Silverblue. It strives to cover these two use cases. For end users it provides a system as reliable as a Chromebook with near-zero maintainance, with the power of Ubuntu and Fedora fused together. For gamers we strive to deliver a world-class Flathub gaming experience. Check [Introduction to Bluefin](https://universal-blue.discourse.group/t/introduction-to-bluefin/41) for a feature walkthrough.

# Download
- [Download Bluefin](https://projectbluefin.io/#scene-picker)

## Aurora - [getaurora.dev](https://getaurora.dev)
![Screenshot_20240409_234125](https://github.com/ublue-os/bluefin/assets/1264109/08a294ba-c182-4329-aaa2-0d402a92071f)

Aurora is a delightful KDE desktop experience for end-users that are looking for reliability and developers for the most-hassle free setup. Zero maintenance included.

- [Download Aurora](https://getaurora.dev)

Use the [website image picker](https://projectbluefin.io/#scene-picker) to download an ISO to install Bluefin onto your PC!
### What's the relationship between Aurora and Bluefin?

Both Aurora and Bluefin strive to offer a curated out of the box experience for users, they only differ in the default desktop and recommended applications: Bluefin uses GNOME, Aurora uses KDE. They are both maintained and built in this repository.

# Documentation

Expand Down
15 changes: 15 additions & 0 deletions aurora_flatpaks/flatpaks
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
app/org.mozilla.Thunderbird/x86_64/stable
app/org.mozilla.firefox/x86_64/stable
app/org.kde.kcalc/x86_64/stable
app/org.kde.gwenview/x86_64/stable
app/org.kde.kontact/x86_64/stable
app/org.kde.okular/x86_64/stable
app/org.kde.kweather/x86_64/stable
app/org.kde.kclock/x86_64/stable
app/org.kde.haruna/x86_64/stable
app/org.kde.filelight/x86_64/stable
app/com.github.tchx84.Flatseal/x86_64/stable
app/io.github.dvlv.boxbuddyrs/x86_64/stable
app/io.github.flattool.Warehouse/x86_64/stable
app/org.fedoraproject.MediaWriter/x86_64/stable
app/io.missioncenter.MissionCenter/x86_64/stable
24 changes: 24 additions & 0 deletions bluefin_flatpaks/flatpaks
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
app/io.github.dvlv.boxbuddyrs/x86_64/stable
app/io.github.celluloid_player.Celluloid/x86_64/stable
app/org.fedoraproject.MediaWriter/x86_64/stable
app/com.github.tchx84.Flatseal/x86_64/stable
app/io.github.flattool.Warehouse/x86_64/stable
app/org.gnome.baobab/x86_64/stable
app/org.gnome.Calculator/x86_64/stable
app/org.gnome.Calendar/x86_64/stable
app/org.gnome.Characters/x86_64/stable
app/org.gnome.clocks/x86_64/stable
app/org.gnome.Connections/x86_64/stable
app/org.gnome.Contacts/x86_64/stable
app/org.gnome.Evince/x86_64/stable
app/com.mattjakeman.ExtensionManager/x86_64/stable
app/org.gnome.font-viewer/x86_64/stable
app/org.gnome.Logs/x86_64/stable
app/org.gnome.Loupe/x86_64/stable
app/org.gnome.Maps/x86_64/stable
app/org.gnome.NautilusPreviewer/x86_64/stable
app/org.gnome.TextEditor/x86_64/stable
app/org.gnome.Weather/x86_64/stable
app/io.missioncenter.MissionCenter/x86_64/stable
app/org.mozilla.firefox/x86_64/stable
app/org.mozilla.Thunderbird/x86_64/stable
3 changes: 2 additions & 1 deletion packages.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@
"code",
"containerd.io",
"dbus-x11",
"devpod",
"docker-ce",
"docker-ce-cli",
"docker-buildx-plugin",
Expand Down Expand Up @@ -139,6 +138,7 @@
],
"dx": [
"distrobuilder",
"devpod",
"podman-plugins"
]
},
Expand All @@ -164,6 +164,7 @@
],
"dx": [
"distrobuilder",
"devpod",
"podman-plugins"
]
},
Expand Down

0 comments on commit 0383801

Please sign in to comment.