aboutsummaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/toolchain.yml64
1 files changed, 64 insertions, 0 deletions
diff --git a/.github/workflows/toolchain.yml b/.github/workflows/toolchain.yml
new file mode 100644
index 0000000000..d6abab4dec
--- /dev/null
+++ b/.github/workflows/toolchain.yml
@@ -0,0 +1,64 @@
+name: Build Toolchains
+
+on:
+ pull_request:
+ paths:
+ - '.github/workflows/build.yml'
+ - '.github/workflows/toolchain.yml'
+ - 'toolchain/**'
+ push:
+ paths:
+ - '.github/workflows/build.yml'
+ - '.github/workflows/toolchain.yml'
+ - 'toolchain/**'
+
+permissions:
+ contents: read
+
+jobs:
+ determine_targets:
+ name: Set targets
+ runs-on: ubuntu-latest
+ outputs:
+ target: ${{ steps.find_targets.outputs.target }}
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Set targets
+ id: find_targets
+ run: |
+ export TARGETS="$(perl ./scripts/dump-target-info.pl targets 2>/dev/null \
+ | sort -u -t '/' -k1,1 \
+ | awk '{ print $1 }')"
+
+ JSON='['
+ FIRST=1
+ for TARGET in $TARGETS; do
+ [[ $FIRST -ne 1 ]] && JSON="$JSON"','
+ JSON="$JSON"'"'"${TARGET}"'"'
+ FIRST=0
+ done
+ JSON="$JSON"']'
+
+ echo -e "\n---- targets ----\n"
+ echo "$JSON"
+ echo -e "\n---- targets ----\n"
+
+ echo "target=$JSON" >> $GITHUB_OUTPUT
+
+ build:
+ name: Build Target Toolchain
+ needs: determine_targets
+ permissions:
+ contents: read
+ packages: read
+ strategy:
+ fail-fast: False
+ matrix:
+ target: ${{fromJson(needs.determine_targets.outputs.target)}}
+ uses: ./.github/workflows/build.yml
+ with:
+ target: ${{ matrix.target }}
+ build_toolchain: true