Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 26 additions & 15 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,24 @@ name: Build
on:
workflow_dispatch:
inputs:
target:
description: "Build target (e.g. aarch64)"
default: "x86_64"
type: string
flavor:
description: 'Optional build flavor (e.g. _minimal)'
required: false
default: ''
type: string
parallel:
description: 'Massive parallel build of each image'
required: false
default: true
type: boolean
name:
description: "Name (for spin overrides)"
default: "infix"
type: string
infix_repo:
description: 'Repo to checkout (for spin overrides)'
required: false
default: kernelkit/infix
type: string

Expand All @@ -36,14 +41,20 @@ on:
required: false
type: string
default: kernelkit/infix
parallel:
required: false
type: boolean
default: false

env:
NAME: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.name || inputs.name }}
TARGET: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target || inputs.target }}
FLV: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.flavor || inputs.flavor }}
INFIX_REPO: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.infix_repo || inputs.infix_repo }}

jobs:
build:
name: Build ${{ inputs.name }} ${{ inputs.target }}
name: Build ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.name || inputs.name }} ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target || inputs.target }}
runs-on: [ self-hosted, latest ]
strategy:
fail-fast: false
Expand Down Expand Up @@ -80,8 +91,8 @@ jobs:
| tee -a $GITHUB_OUTPUT $GITHUB_ENV
fi

target=${{ inputs.target }}
name=${{ inputs.name }}
target=${{ env.TARGET }}
name=${{ env.NAME }}
echo "dir=${name}-${target}" >> $GITHUB_OUTPUT
echo "tgz=${name}-${target}.tar.gz" >> $GITHUB_OUTPUT
echo "flv=$FLV" >> $GITHUB_OUTPUT
Expand All @@ -99,16 +110,16 @@ jobs:
uses: actions/cache@v4
with:
path: .ccache/
key: ccache-${{ inputs.target }}-${{ hashFiles('.git/modules/buildroot/HEAD', 'package/*/*.hash') }}
key: ccache-${{ env.TARGET }}-${{ hashFiles('.git/modules/buildroot/HEAD', 'package/*/*.hash') }}
restore-keys: |
ccache-${{ inputs.target }}-
ccache-${{ env.TARGET }}-
ccache-

- name: Configure ${{ inputs.target }}${{ steps.vars.outputs.flv }}
- name: Configure ${{ env.TARGET }}${{ steps.vars.outputs.flv }}
run: |
make ${{ inputs.target }}${{ steps.vars.outputs.flv }}_defconfig
make ${{ env.TARGET }}${{ steps.vars.outputs.flv }}_defconfig

- name: Unit Test ${{ inputs.target }}
- name: Unit Test ${{ env.TARGET }}
run: |
make test-unit

Expand All @@ -126,9 +137,9 @@ jobs:
fi
echo "MAKE=$MAKE" >> $GITHUB_OUTPUT

- name: Build ${{ inputs.target }}${{ steps.vars.outputs.flv }}
- name: Build ${{ env.TARGET }}${{ steps.vars.outputs.flv }}
run: |
echo "Building ${{ inputs.target }}${{ steps.vars.outputs.flv }}_defconfig ..."
echo "Building ${{ env.TARGET }}${{ steps.vars.outputs.flv }}_defconfig ..."
eval "${{ steps.parallel.outputs.MAKE }}"

- name: Check SBOM from Build
Expand All @@ -150,7 +161,7 @@ jobs:
printf "Size of output/images/: "
ls -l output/images/

- name: Prepare ${{ inputs.target }} Artifact
- name: Prepare ${{ env.TARGET }} Artifact
run: |
cd output/
mv images ${{ steps.vars.outputs.dir }}
Expand All @@ -160,4 +171,4 @@ jobs:
- uses: actions/upload-artifact@v4
with:
path: output/${{ steps.vars.outputs.tgz }}
name: artifact-${{ inputs.target }}
name: artifact-${{ env.TARGET }}