Enable matrix (#1)

This commit is contained in:
Igor Pečovnik
2023-02-23 09:54:25 +01:00
committed by GitHub
parent a2edba89a5
commit 21611dd0e7

View File

@@ -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