2a24d82e30ff9a75fe3f3fade335e8c2cfe77b3b
[openwrt/openwrt.git] / .github / workflows / toolchain.yml
1 name: Build Toolchains
2
3 on:
4 pull_request:
5 paths:
6 - '.github/workflows/build.yml'
7 - '.github/workflows/toolchain.yml'
8 - 'toolchain/**'
9 push:
10 paths:
11 - '.github/workflows/build.yml'
12 - '.github/workflows/toolchain.yml'
13 - 'toolchain/**'
14
15 permissions:
16 contents: read
17
18 concurrency:
19 group: ${{ github.workflow }}-${{ github.ref }}
20 cancel-in-progress: ${{ github.event_name == 'pull_request' }}
21
22 jobs:
23 determine_targets:
24 name: Set targets
25 runs-on: ubuntu-latest
26 outputs:
27 target: ${{ steps.find_targets.outputs.target }}
28
29 steps:
30 - name: Checkout
31 uses: actions/checkout@v3
32
33 - name: Set targets
34 id: find_targets
35 run: |
36 export TARGETS="$(perl ./scripts/dump-target-info.pl targets 2>/dev/null \
37 | sort -u -t '/' -k1,1 \
38 | awk '{ print $1 }')"
39
40 JSON='['
41 FIRST=1
42 for TARGET in $TARGETS; do
43 [[ $FIRST -ne 1 ]] && JSON="$JSON"','
44 JSON="$JSON"'"'"${TARGET}"'"'
45 FIRST=0
46 done
47 JSON="$JSON"']'
48
49 echo -e "\n---- targets ----\n"
50 echo "$JSON"
51 echo -e "\n---- targets ----\n"
52
53 echo "target=$JSON" >> $GITHUB_OUTPUT
54
55 build:
56 name: Build Target Toolchain
57 needs: determine_targets
58 permissions:
59 contents: read
60 packages: read
61 strategy:
62 fail-fast: False
63 matrix:
64 target: ${{fromJson(needs.determine_targets.outputs.target)}}
65 uses: ./.github/workflows/build.yml
66 with:
67 target: ${{ matrix.target }}
68 build_toolchain: true