diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/toolchain.yml | 64 |
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 |