mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
117 lines
3.6 KiB
YAML
117 lines
3.6 KiB
YAML
name: unit-test
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
target:
|
|
description: "Build target (e.g. aarch64 or aarch64_minimal)"
|
|
default: "x86_64"
|
|
type: string
|
|
parallel:
|
|
description: 'Massive parallel build of each image'
|
|
default: true
|
|
type: boolean
|
|
name:
|
|
description: "Name (for spin overrides)"
|
|
default: "infix"
|
|
type: string
|
|
infix_repo:
|
|
description: 'Repo to checkout (for spin overrides)'
|
|
default: kernelkit/infix
|
|
type: string
|
|
infix_branch:
|
|
description: 'Branch/tag/commit to checkout (for spin overrides)'
|
|
default: ''
|
|
type: string
|
|
|
|
workflow_call:
|
|
inputs:
|
|
target:
|
|
required: true
|
|
type: string
|
|
name:
|
|
required: true
|
|
type: string
|
|
infix_repo:
|
|
required: false
|
|
type: string
|
|
default: kernelkit/infix
|
|
infix_branch:
|
|
required: false
|
|
type: string
|
|
default: ''
|
|
description: 'Branch/tag/commit to checkout (for spin overrides). Defaults to github.ref if not specified'
|
|
parallel:
|
|
required: false
|
|
type: boolean
|
|
default: true
|
|
pre_build_script:
|
|
required: false
|
|
type: string
|
|
default: ''
|
|
description: 'Optional script to run after checkout (for spin customization)'
|
|
secrets:
|
|
CHECKOUT_TOKEN:
|
|
required: false
|
|
description: 'Token for cross-repository access'
|
|
|
|
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 }}
|
|
INFIX_REPO: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.infix_repo || inputs.infix_repo }}
|
|
INFIX_BRANCH: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.infix_branch || inputs.infix_branch }}
|
|
|
|
jobs:
|
|
unit-tests:
|
|
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 ]
|
|
env:
|
|
PARALLEL: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.parallel == 'true' || github.event_name != 'workflow_dispatch' && inputs.parallel == true }}
|
|
strategy:
|
|
fail-fast: false
|
|
steps:
|
|
- name: Cleanup Build Folder
|
|
run: |
|
|
ls -la ./
|
|
rm -rf ./* || true
|
|
rm -rf ./.??* || true
|
|
ls -la ./
|
|
|
|
- name: Checkout infix repo
|
|
uses: actions/checkout@v6
|
|
with:
|
|
repository: ${{ env.INFIX_REPO }}
|
|
ref: ${{ env.INFIX_BRANCH != '' && env.INFIX_BRANCH || github.ref }}
|
|
clean: true
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
token: ${{ secrets.CHECKOUT_TOKEN || github.token }}
|
|
|
|
- uses: kernelkit/actions/podman-cleanup@v1
|
|
|
|
- name: Run pre-build script
|
|
if: ${{ inputs.pre_build_script != '' }}
|
|
run: |
|
|
cat > ./pre-build.sh << 'EOF'
|
|
${{ inputs.pre_build_script }}
|
|
EOF
|
|
chmod +x ./pre-build.sh
|
|
bash ./pre-build.sh
|
|
|
|
- uses: kernelkit/actions/cache-restore@v1
|
|
with:
|
|
target: ${{ env.TARGET }}
|
|
|
|
- name: Configure ${{ env.TARGET }}
|
|
run: |
|
|
make ${{ env.TARGET }}_defconfig
|
|
|
|
- name: Cleanup stale containers and ports
|
|
run: |
|
|
podman rm -af || true
|
|
pkill -9 -f rootlessport || true
|
|
|
|
- name: Unit Test ${{ env.TARGET }}
|
|
run: |
|
|
make test-unit
|