Skip to content

Build Armbian USERSPACE for HARDWARE #3

Build Armbian USERSPACE for HARDWARE

Build Armbian USERSPACE for HARDWARE #3

Workflow file for this run

name: "Build images XXX"
on:
workflow_dispatch:
inputs:
build_target:
description: 'Build config'
required: false
default: 'armbian'
build_branch:
type: choice
description: 'Framework build branch'
options:
# branches
- main
- v23.11
default: 'main'
armbian_board:
type: choice
description: 'Board'
options:
# boards
- bananapicm4io
- bananapim2pro
- bananapim2s
- bananapim5
- bigtreetech-cb1
- jethubj100
- jethubj80
- khadas-edge2
- khadas-vim1
- khadas-vim1s
- khadas-vim2
- khadas-vim3
- khadas-vim3l
- khadas-vim4
- lafrite
- lepotato
- nanopi-r4s
- nanopi-r6s
- nanopiduo
- nanopiduo2
- odroidc2
- odroidm1
- odroidn2
- odroidxu4
- olimex-teres-a64
- onecloud
- orangepi-r1
- orangepi-r1plus-lts
- orangepi4-lts
- orangepi5-plus
- orangepi5
- orangepione
- orangepiprime
- orangepizero
- orangepizero2
- orangepizeroplus
- pine64
- pinebook-pro
- radxa-zero
- renegade
- rock-3a
- rock-5b
- rockpi-4a
- rockpi-e
- rockpro64
- rpi4b
- rpi5b
- sk-am62b
- sk-am64b
- sk-tda4vm
- tinkerboard
- tritium-h3
- tritium-h5
- uefi-arm64
- uefi-x86
- xiaomi-elish
default: 'uefi-x86'
versionOverride:
description: 'Version'
required: false
default: '23.11.1'
build_runner:
description: 'GH runner'
required: false
default: 'ubuntu-latest'
env:
# For easier reuse across the multiple chunks ('armbian/build' repo)
BUILD_REPOSITORY: "armbian/build"
BUILD_REF: "${{ inputs.ref || inputs.branch || 'main' }}" # branch or tag or sha1
# For easier reuse across the multiple chunks ('armbian/os' repo)
USERPATCHES_REPOSITORY: "armbian/os"
USERPATCHES_REF: "main" # branch or tag or sha1
USERPATCHES_DIR: "userpatches" # folder inside USERPATCHES_REPOSITORY
# Github repository for releases. Normally its the one where we executing script
RELEASE_REPOSITORY: "os"
# Armbian envs. Adjust to your needs
# This makes builds faster, but only if the Docker images are up-to-date with all dependencies, Python, tools, etc. Otherwise it makes it... slower.
DOCKER_SKIP_UPDATE: "yes" # Do not apt update/install/requirements/etc during Dockerfile build, trust that images are up-to-date.
# Added to every build, even the prepare job.
EXTRA_PARAMS_ALL_BUILDS: "${{ inputs.extraParamsAllBuilds || 'UPLOAD_TO_OCI_ONLY=yes' }}"
VERSION_OVERRIDE: "${{ github.event.inputs.versionOverride }}"
# To use GitHub CLI in a GitHub Actions workflow
GH_TOKEN: "${{ secrets.ACCESS_TOKEN }}"
# Added to every image build arguments.
EXTRA_PARAMS_IMAGE: "COMPRESS_OUTPUTIMAGE=xz,sha SHOW_DEBIAN=yes SHARE_LOG=yes "
# To ensure that only a single workflow using the same concurrency group will run at a time
concurrency:
group: ${{ github.run_id }}-standard-supportstable
cancel-in-progress: false
jobs:
build:
runs-on: ${{ inputs.BUILD_RUNNER }}
steps:
- name: Update
if: inputs.BUILD_RUNNER == 'ubuntu-latest'
run: |
sudo apt update
sudo apt -y clean
- name: Free Github Runner
if: inputs.BUILD_RUNNER == 'ubuntu-latest'
uses: descriptinc/free-disk-space@main
with:
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- name: Compile the kernel
uses: igorpecovnik/build@main
with:
build_target: kernel
kernel_source: ${{ inputs.kernel_source }}