|
32 | 32 |
|
33 | 33 | jobs: |
34 | 34 |
|
| 35 | + generate-matrix: |
| 36 | + runs-on: ubuntu-latest |
| 37 | + outputs: |
| 38 | + matrix: ${{ steps.set-matrix.outputs.matrix }} |
| 39 | + steps: |
| 40 | + - id: set-matrix |
| 41 | + run: | |
| 42 | + CODENAME="${{ inputs.codename }}" |
| 43 | + if [ "$CODENAME" = "trixie" ]; then |
| 44 | + OS_MATRIX='[ |
| 45 | + { "description": "Linux (x86_64)", "architecture": ["amd64", "linux/amd64"], "platform": "x11" }, |
| 46 | + { "description": "Raspberry Pi 3/4/5 & Zero 2 (arm64)", "architecture": ["arm64", "linux/arm64"], "platform": "rpi" } |
| 47 | + ]' |
| 48 | + else |
| 49 | + OS_MATRIX='[ |
| 50 | + { "description": "Linux (x86_64)", "architecture": ["amd64", "linux/amd64"], "platform": "x11" }, |
| 51 | + { "description": "Raspberry Pi 1 & Zero 1 (armv6)", "architecture": ["armv6", "linux/arm/v6"], "platform": "rpi" }, |
| 52 | + { "description": "Raspberry Pi 2 (armv7)", "architecture": ["armv7", "linux/arm/v7"], "platform": "rpi" }, |
| 53 | + { "description": "Raspberry Pi 3/4/5 & Zero 2 (arm64)", "architecture": ["arm64", "linux/arm64"], "platform": "rpi" } |
| 54 | + ]' |
| 55 | + fi |
| 56 | +
|
| 57 | + TARGET_LOOKUP='[{ "arm64": "arm64", "armv6": "armv6l", "armv7": "armv7l" }]' |
| 58 | + MATRIX="{\"os\": $(jq -c . <<< \"$OS_MATRIX\"), \"target_lookup\": $(jq -c . <<< \"$TARGET_LOOKUP\")}" |
| 59 | + echo "matrix=$MATRIX" >> $GITHUB_OUTPUT |
| 60 | + |
35 | 61 | debian: |
36 | | - name: ${{ matrix.os.description }} |
| 62 | + name: Build ${{ matrix.os.description }} |
| 63 | + needs: generate-matrix |
37 | 64 | runs-on: ${{ matrix.os.architecture[0] == 'amd64' && 'ubuntu-24.04' || 'ubuntu-24.04-arm' }} |
38 | 65 | strategy: |
39 | 66 | fail-fast: false |
40 | | - matrix: |
41 | | - os: [ |
42 | | - { description: Linux (x86_64), architecture: [ amd64, linux/amd64 ], platform: x11 }, |
43 | | - { description: Raspberry Pi 1 & Zero 1 (armv6), architecture: [ armv6, linux/arm/v6 ], platform: rpi }, |
44 | | - { description: Raspberry Pi 2 (armv7), architecture: [ armv7, linux/arm/v7 ], platform: rpi }, |
45 | | - { description: Raspberry Pi 3/4/5 & Zero 2 (arm64), architecture: [ arm64, linux/arm64 ], platform: rpi } |
46 | | - ] |
47 | | - target_lookup: [ |
48 | | - { 'arm64': 'arm64', 'armv6': 'armv6l', 'armv7': 'armv7l' } |
49 | | - ] |
50 | | - |
| 67 | + matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }} |
| 68 | + |
51 | 69 | steps: |
52 | 70 | - name: ⬇ Checkout |
53 | 71 | uses: actions/checkout@v4 |
|
0 commit comments