From da4c3c118f3cb37f4b33adb77735cad680d681b5 Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Sun, 21 Dec 2025 13:45:08 +0100 Subject: [PATCH] Initial commit: SecuBox v1.0.0 --- .github/workflows/build-openwrt-packages.yml | 16 ++++++++++------ .github/workflows/build-secubox-images.yml | 17 ++++++++++------- build-openwrt-packages.yml | 16 ++++++++++------ build-secubox-images.yml | 17 ++++++++++------- 4 files changed, 40 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build-openwrt-packages.yml b/.github/workflows/build-openwrt-packages.yml index dfadaacc..a0a5b184 100644 --- a/.github/workflows/build-openwrt-packages.yml +++ b/.github/workflows/build-openwrt-packages.yml @@ -58,7 +58,8 @@ jobs: run: | # Full architecture matrix for OpenWrt # Format: target/subtarget -> SDK name mapping - ALL_TARGETS=$(cat << 'EOF' + + cat > /tmp/matrix.json << 'MATRIX_EOF' { "include": [ { @@ -159,20 +160,23 @@ jobs: } ] } - EOF - ) + MATRIX_EOF INPUT_ARCHS="${{ github.event.inputs.architectures }}" if [[ -z "$INPUT_ARCHS" || "$INPUT_ARCHS" == "all" ]]; then - MATRIX="$ALL_TARGETS" + MATRIX=$(cat /tmp/matrix.json | jq -c '.') else # Filter matrix based on input - MATRIX=$(echo "$ALL_TARGETS" | jq -c --arg archs "$INPUT_ARCHS" ' + MATRIX=$(cat /tmp/matrix.json | jq -c --arg archs "$INPUT_ARCHS" ' .include |= map(select(.target as $t | $archs | split(",") | map(gsub("^\\s+|\\s+$";"")) | any(. == $t or . == "all"))) ') fi - echo "matrix=$MATRIX" >> $GITHUB_OUTPUT + # Use delimiter for multiline output + echo "matrix<> $GITHUB_OUTPUT + echo "$MATRIX" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + echo "📋 Build matrix:" echo "$MATRIX" | jq '.' diff --git a/.github/workflows/build-secubox-images.yml b/.github/workflows/build-secubox-images.yml index 0e8fec5f..be15ca6d 100644 --- a/.github/workflows/build-secubox-images.yml +++ b/.github/workflows/build-secubox-images.yml @@ -46,8 +46,8 @@ jobs: run: | DEVICE="${{ github.event.inputs.device }}" - # Define all devices - ALL_DEVICES=$(cat << 'EOF' + # Define all devices in a file to avoid heredoc issues + cat > /tmp/devices.json << 'DEVICES_EOF' [ { "device": "espressobin-v7", @@ -85,17 +85,20 @@ jobs: "description": "MOCHAbin (Quad-core A72, 10G)" } ] - EOF - ) + DEVICES_EOF # Filter based on input if [[ "$DEVICE" == "all" ]]; then - MATRIX="{\"include\": $ALL_DEVICES}" + MATRIX=$(jq -c '{"include": .}' /tmp/devices.json) else - MATRIX=$(echo "$ALL_DEVICES" | jq -c "{\"include\": [.[] | select(.device == \"$DEVICE\")]}") + MATRIX=$(jq -c --arg dev "$DEVICE" '{"include": [.[] | select(.device == $dev)]}' /tmp/devices.json) fi - echo "matrix=$MATRIX" >> $GITHUB_OUTPUT + # Use delimiter for multiline output + echo "matrix<> $GITHUB_OUTPUT + echo "$MATRIX" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + echo "📋 Build matrix:" echo "$MATRIX" | jq '.' diff --git a/build-openwrt-packages.yml b/build-openwrt-packages.yml index dfadaacc..a0a5b184 100644 --- a/build-openwrt-packages.yml +++ b/build-openwrt-packages.yml @@ -58,7 +58,8 @@ jobs: run: | # Full architecture matrix for OpenWrt # Format: target/subtarget -> SDK name mapping - ALL_TARGETS=$(cat << 'EOF' + + cat > /tmp/matrix.json << 'MATRIX_EOF' { "include": [ { @@ -159,20 +160,23 @@ jobs: } ] } - EOF - ) + MATRIX_EOF INPUT_ARCHS="${{ github.event.inputs.architectures }}" if [[ -z "$INPUT_ARCHS" || "$INPUT_ARCHS" == "all" ]]; then - MATRIX="$ALL_TARGETS" + MATRIX=$(cat /tmp/matrix.json | jq -c '.') else # Filter matrix based on input - MATRIX=$(echo "$ALL_TARGETS" | jq -c --arg archs "$INPUT_ARCHS" ' + MATRIX=$(cat /tmp/matrix.json | jq -c --arg archs "$INPUT_ARCHS" ' .include |= map(select(.target as $t | $archs | split(",") | map(gsub("^\\s+|\\s+$";"")) | any(. == $t or . == "all"))) ') fi - echo "matrix=$MATRIX" >> $GITHUB_OUTPUT + # Use delimiter for multiline output + echo "matrix<> $GITHUB_OUTPUT + echo "$MATRIX" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + echo "📋 Build matrix:" echo "$MATRIX" | jq '.' diff --git a/build-secubox-images.yml b/build-secubox-images.yml index 0e8fec5f..be15ca6d 100644 --- a/build-secubox-images.yml +++ b/build-secubox-images.yml @@ -46,8 +46,8 @@ jobs: run: | DEVICE="${{ github.event.inputs.device }}" - # Define all devices - ALL_DEVICES=$(cat << 'EOF' + # Define all devices in a file to avoid heredoc issues + cat > /tmp/devices.json << 'DEVICES_EOF' [ { "device": "espressobin-v7", @@ -85,17 +85,20 @@ jobs: "description": "MOCHAbin (Quad-core A72, 10G)" } ] - EOF - ) + DEVICES_EOF # Filter based on input if [[ "$DEVICE" == "all" ]]; then - MATRIX="{\"include\": $ALL_DEVICES}" + MATRIX=$(jq -c '{"include": .}' /tmp/devices.json) else - MATRIX=$(echo "$ALL_DEVICES" | jq -c "{\"include\": [.[] | select(.device == \"$DEVICE\")]}") + MATRIX=$(jq -c --arg dev "$DEVICE" '{"include": [.[] | select(.device == $dev)]}' /tmp/devices.json) fi - echo "matrix=$MATRIX" >> $GITHUB_OUTPUT + # Use delimiter for multiline output + echo "matrix<> $GITHUB_OUTPUT + echo "$MATRIX" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + echo "📋 Build matrix:" echo "$MATRIX" | jq '.'