You've already forked cache-kernel
mirror of
https://github.com/armbian/cache-kernel.git
synced 2026-01-06 10:38:17 -08:00
Enable matrix (#1)
This commit is contained in:
220
.github/workflows/generate.yml
vendored
220
.github/workflows/generate.yml
vendored
@@ -7,174 +7,63 @@ on:
|
||||
|
||||
jobs:
|
||||
|
||||
"Kernel":
|
||||
prepare:
|
||||
|
||||
name: "Make JSON"
|
||||
if: ${{ github.repository_owner == 'armbian' }}
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{steps.json.outputs.JSON_CONTENT}}
|
||||
steps:
|
||||
|
||||
- name: Checkout Armbian Framework
|
||||
uses: actions/checkout@v3.3.0
|
||||
with:
|
||||
repository: armbian/build
|
||||
ref: main
|
||||
fetch-depth: 1
|
||||
clean: false # true is default. it *will* delete the hosts /dev if mounted inside.
|
||||
path: build
|
||||
|
||||
- name: Checkout Armbian OS
|
||||
uses: actions/checkout@v3.3.0
|
||||
with:
|
||||
repository: armbian/os
|
||||
ref: main
|
||||
fetch-depth: 1
|
||||
clean: false # true is default. it *will* delete the hosts /dev if mounted inside.
|
||||
path: os
|
||||
|
||||
- name: Build JSON
|
||||
id: json
|
||||
run: |
|
||||
# Make a list of valid pairs from our config
|
||||
echo 'JSON_CONTENT<<EOF' >> $GITHUB_OUTPUT
|
||||
for BRANCH in legacy current edge; do
|
||||
FILES=$(cat os/targets/*.conf | grep $BRANCH | grep -v "^$" | grep -v "^#" | sed -n $LINE'p' | cut -d " " -f1 | uniq)
|
||||
while IFS= read -r line; do
|
||||
BOARDFAMILY=$(cat build/config/boards/$line.* | grep BOARDFAMILY | cut -d'"' -f2)
|
||||
BOARD=$line
|
||||
source build/config/boards/$line.conf 2> /dev/null || true
|
||||
source build/config/boards/$line.wip 2> /dev/null || true
|
||||
source build/config/boards/$line.tvb 2> /dev/null || true
|
||||
source build/config/sources/families/${BOARDFAMILY}.conf 2> /dev/null || true
|
||||
echo "${LINUXFAMILY}:${BOARDFAMILY}:${BRANCH}:${line}:${ARCH}"
|
||||
done <<< "$FILES"
|
||||
done | sort | uniq | sort -u -t: -k1,3 | cut -d":" -f3,4 | sort | uniq | sed "s/:/ /" | awk '{ printf "%s%s\n", "{\"branch\":\""$1"\",", "\"board\":\""$2"\"}" }' | jq -s >> $GITHUB_OUTPUT
|
||||
echo 'EOF' >> $GITHUB_OUTPUT
|
||||
kernel:
|
||||
if: ${{ github.repository_owner == 'armbian' }}
|
||||
needs: [ prepare ]
|
||||
strategy:
|
||||
fail-fast: false # let other jobs try to complete if one fails
|
||||
matrix:
|
||||
include:
|
||||
- board: "rock-3a"
|
||||
branch: "legacy"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "uefi-riscv64"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
- board: "uefi-riscv64"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
- board: "onecloud"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
- board: "onecloud"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'alfa' ]
|
||||
variant: ""
|
||||
- board: "odroidhc4"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "odroidhc4"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'alfa' ]
|
||||
variant: ""
|
||||
|
||||
- board: "uefi-arm64"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'gama' ]
|
||||
variant: ""
|
||||
|
||||
- board: "uefi-arm64"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'alfa' ]
|
||||
variant: ""
|
||||
|
||||
- board: "uefi-x86"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "uefi-x86"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'gama' ]
|
||||
variant: ""
|
||||
|
||||
- board: "rock-5b"
|
||||
branch: "legacy"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "odroidm1"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'gama' ]
|
||||
variant: ""
|
||||
|
||||
- board: "rock-5b"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "rpi4b"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "rpi4b"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'gama' ]
|
||||
variant: ""
|
||||
|
||||
- board: "tinkerboard-2"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "tinkerboard-2"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'alfa' ]
|
||||
variant: ""
|
||||
|
||||
- board: "quartz64a"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "quartz64a"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'gama' ]
|
||||
variant: ""
|
||||
|
||||
- board: "tritium-h3"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "tritium-h3"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'alfa' ]
|
||||
variant: ""
|
||||
|
||||
- board: "tritium-h5"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "tritium-h5"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'gama' ]
|
||||
variant: ""
|
||||
|
||||
- board: "clearfogpro"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "clearfogpro"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'alfa' ]
|
||||
variant: ""
|
||||
|
||||
- board: "tinkerboard"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'gama' ]
|
||||
variant: ""
|
||||
|
||||
- board: "tinkerboard"
|
||||
branch: "current"
|
||||
runner_tags: [ "self-hosted", "Linux", 'alfa' ]
|
||||
variant: ""
|
||||
|
||||
- board: "uefi-riscv64"
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "visionfive" # starfive
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "visionfive2" # starfive2
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'beta' ]
|
||||
variant: ""
|
||||
|
||||
- board: "nezha" # d1
|
||||
branch: "edge"
|
||||
runner_tags: [ "self-hosted", "Linux", 'gama' ]
|
||||
variant: ""
|
||||
|
||||
runs-on: "${{ matrix.runner_tags }}"
|
||||
name: "${{ matrix.board }} ${{ matrix.branch }} (${{ matrix.variant }})"
|
||||
include: ${{ fromJSON(needs.prepare.outputs.matrix) }}
|
||||
runs-on: "alfa"
|
||||
name: "${{ matrix.board }} ${{ matrix.branch }}"
|
||||
env:
|
||||
BOARD: "${{ matrix.board }}"
|
||||
BRANCH: "${{ matrix.branch }}"
|
||||
VARIANT: "${{ matrix.variant }}"
|
||||
BOARD: "${{ matrix.board }}"
|
||||
OCI_TARGET_BASE: "ghcr.io/${{ github.repository }}/" # This is picked up by the Docker launcher automatically
|
||||
steps:
|
||||
|
||||
@@ -194,12 +83,9 @@ jobs:
|
||||
fetch-depth: 1
|
||||
clean: false # true is default. it *will* delete the hosts /dev if mounted inside.
|
||||
|
||||
- name: Build Kernel ${{env.BOARD}}:${{env.BRANCH}} (variant ${{env.VARIANT}})
|
||||
- name: Build Kernel ${{env.BOARD}}:${{env.BRANCH}}
|
||||
id: kernel
|
||||
run: |
|
||||
# BRANCH and BOARD are in the env, but Docker doesn't know that; (sudo has --preserve-env). So we need to pass them as args.
|
||||
# let VARIANT expand
|
||||
# SHARE_LOG=yes to share logs to pastebin
|
||||
bash ./compile.sh kernel \
|
||||
"BRANCH=${{env.BRANCH}}" "BOARD=${{env.BOARD}}" ${{env.VARIANT}} \
|
||||
SHARE_LOG=yes
|
||||
bash ./compile.sh kernel "BRANCH=${{env.BRANCH}}" "BOARD=${{env.BOARD}}" SHARE_LOG=yes
|
||||
|
||||
Reference in New Issue
Block a user