Skip to content

feat: rewrite to shell script #159

feat: rewrite to shell script

feat: rewrite to shell script #159

Workflow file for this run

name: CI
on:
workflow_dispatch:
merge_group:
pull_request:
branches:
- main
jobs:
build:
name: Build ISO
runs-on: ${{ matrix.platform == 'amd64' && 'ubuntu-24.04' || 'ubuntu-24.04-arm' }}
strategy:
fail-fast: false
matrix:
platform: [amd64, arm64]
image:
# cool images list :)
- ghcr.io/ublue-os/bluefin:lts
include:
# big dumdums that dont have aarch64 :P
- platform: amd64
image: ghcr.io/ublue-os/bluefin:stable
- platform: amd64
image: ghcr.io/ublue-os/bluefin-nvidia-open:stable
- platform: amd64
image: ghcr.io/ublue-os/bazzite:stable
container-image: ghcr.io/ublue-os/bazzite-deck:stable
- platform: amd64
image: ghcr.io/ublue-os/aurora:stable
steps:
- name: Maximize Build Space
if: matrix.platform == 'amd64'
uses: ublue-os/remove-unwanted-software@cc0becac701cf642c8f0a6613bbdaf5dc36b259e # v9
with:
remove-codeql: true
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
- name: Build ISO
id: build-iso
uses: ./
with:
livesys: "true"
flatpaks-list: ./src/flatpaks.example.txt
container-image: ${{ matrix.container-image }}
image-ref: ${{ matrix.image }}
add-polkit: "true"
hook-pre-initramfs: ${{ github.workspace }}/.github/workflows/ci_dummy_hook_preinitramfs.sh
hook-post-rootfs: ${{ github.workspace }}/.github/workflows/ci_dummy_hook_postrootfs.sh
kargs: "NONE"
- name: Create Image Name
id: name
shell: bash
env:
IMAGE_NAME: ${{ matrix.container-image || matrix.image }}
run: |
set -eoux pipefail
IMAGE_NAME="${IMAGE_NAME##*/}"
IMAGE_NAME="${IMAGE_NAME/:/-}"
echo "IMAGE_NAME=$IMAGE_NAME" >> "$GITHUB_OUTPUT"
- name: Upload Output Artifacts
if: github.event_name != 'pull_request'
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: ${{ steps.name.outputs.IMAGE_NAME }}-${{ matrix.platform }}
retention-days: 5
if-no-files-found: error
path: |
${{ steps.build-iso.outputs.iso-dest }}
check:
name: Check all builds successful
if: always()
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Check Jobs
env:
JOBS: ${{ toJson(needs) }}
run: |
echo "Job status:"
echo $JOBS | jq -r 'to_entries[] | " - \(.key): \(.value.result)"'
for i in $(echo $JOBS | jq -r 'to_entries[] | .value.result'); do
if [ "$i" != "success" ] && [ "$i" != "skipped" ]; then
echo ""
echo "Status check not okay!"
exit 1
fi
done