Skip to content

UI polish: fonts, click behavior, hide drun prompt #73

UI polish: fonts, click behavior, hide drun prompt

UI polish: fonts, click behavior, hide drun prompt #73

Workflow file for this run

name: Build ISO
on:
push:
branches: [main]
tags: ['v*']
pull_request:
branches: [main]
workflow_dispatch:
jobs:
build:
# Use self-hosted runner for main branch pushes (fast, local)
# Use GitHub cloud for PRs (safe, no access to self-hosted)
runs-on: ${{ (github.event_name == 'push' || github.event_name == 'workflow_dispatch') && 'self-hosted' || 'ubuntu-latest' }}
container:
image: archlinux:latest
options: --privileged -v /home/dan/projects/jumpdev-os/out:/host-out
# Volume mount makes ISO available on host for QEMU testing
steps:
- name: Install dependencies
run: |
pacman -Syu --noconfirm
pacman -S --noconfirm archiso git grub mtools dosfstools squashfs-tools
- name: Setup Chaotic-AUR
run: |
# Initialize pacman keyring
pacman-key --init
pacman-key --populate archlinux
# Import Chaotic-AUR key (try multiple keyservers)
pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com || \
pacman-key --recv-key 3056513887B78AEB --keyserver keys.openpgp.org || \
pacman-key --recv-key 3056513887B78AEB --keyserver pgp.mit.edu
pacman-key --lsign-key 3056513887B78AEB
# Install keyring and mirrorlist
pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
# Add Chaotic-AUR to system pacman.conf (for build environment)
echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' >> /etc/pacman.conf
# Sync repos
pacman -Sy
- name: Checkout repository
uses: actions/checkout@v4
- name: Build hyprbars plugin
run: |
# Install build dependencies
pacman -S --noconfirm base-devel cmake meson cpio hyprland hyprland-protocols hyprlang libdisplay-info hyprcursor hyprwayland-scanner aquamarine pkgconf glaze
# Clone hyprland-plugins
git clone --depth 1 https://github.com/hyprwm/hyprland-plugins.git /tmp/hyprland-plugins
# Build hyprbars using cmake
cd /tmp/hyprland-plugins/hyprbars
cmake -B build
cmake --build build
# Copy built plugin to airootfs
mkdir -p $GITHUB_WORKSPACE/archiso/airootfs/usr/lib/hyprland-plugins
cp build/libhyprbars.so $GITHUB_WORKSPACE/archiso/airootfs/usr/lib/hyprland-plugins/hyprbars.so
- name: Prepare build environment
run: |
# Copy configs directly to jump user's home (not skel - user is pre-defined)
mkdir -p archiso/airootfs/home/jump/.config
# Copy application configs
cp -r configs/hypr archiso/airootfs/home/jump/.config/
cp -r configs/waybar archiso/airootfs/home/jump/.config/
cp -r configs/kitty archiso/airootfs/home/jump/.config/
cp -r configs/nvim archiso/airootfs/home/jump/.config/
cp -r configs/rofi archiso/airootfs/home/jump/.config/
cp -r configs/scripts archiso/airootfs/home/jump/.config/
cp -r configs/yazi archiso/airootfs/home/jump/.config/ 2>/dev/null || true
cp -r configs/btop archiso/airootfs/home/jump/.config/ 2>/dev/null || true
cp -r configs/lazygit archiso/airootfs/home/jump/.config/ 2>/dev/null || true
# Starship config
cp configs/starship/starship.toml archiso/airootfs/home/jump/.config/
# Zsh configs
cp configs/zsh/.zshrc archiso/airootfs/home/jump/
cp configs/zsh/.zshenv archiso/airootfs/home/jump/
# Set ownership (jump user is uid/gid 1000)
chown -R 1000:1000 archiso/airootfs/home/jump/
# Make scripts executable (AFTER chown to ensure it sticks)
chmod +x archiso/airootfs/home/jump/.config/scripts/*.sh
- name: Build ISO
run: |
# Build directly to volume mount on self-hosted, otherwise to out/
if [ -d "/host-out" ]; then
rm -f /host-out/*.iso /host-out/SHA256SUMS
mkarchiso -v -w /tmp/archiso-work -o /host-out/ archiso/
cd /host-out && sha256sum *.iso > SHA256SUMS && cat SHA256SUMS
echo "ISO available at: /home/dan/projects/jumpdev-os/out/"
ls -lh /host-out/
# Copy to workspace for artifact upload (needed for releases)
mkdir -p $GITHUB_WORKSPACE/out
cp /host-out/*.iso /host-out/SHA256SUMS $GITHUB_WORKSPACE/out/
else
mkarchiso -v -w /tmp/archiso-work -o out/ archiso/
cd out && sha256sum *.iso > SHA256SUMS && cat SHA256SUMS
fi
- name: Upload ISO artifact
uses: actions/upload-artifact@v4
with:
name: jumpdev-os-iso
path: |
out/*.iso
out/SHA256SUMS
retention-days: 7
release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- name: Download ISO artifact
uses: actions/download-artifact@v4
with:
name: jumpdev-os-iso
path: out/
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
out/*.iso
out/SHA256SUMS
generate_release_notes: true
draft: false
prerelease: ${{ contains(github.ref, '-rc') || contains(github.ref, '-beta') || contains(github.ref, '-alpha') }}