mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 14:37:57 +00:00
f5a5ce8822
Due to problem with migrating from master to main as the default branch and downstream project still requiring the master branch to be present, we currently have for push events double CI runs, one for main and one for master. To solve this ignore any push event to the master branch for every workflow that react on push events. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
73 lines
1.8 KiB
YAML
73 lines
1.8 KiB
YAML
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/**'
|
|
branches-ignore:
|
|
- master
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
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
|
|
TUPLE='{"target":"'"$(echo $TARGET | cut -d "/" -f 1)"'","subtarget":"'"$(echo $TARGET | cut -d "/" -f 2)"'"}'
|
|
[[ $FIRST -ne 1 ]] && JSON="$JSON"','
|
|
JSON="$JSON""$TUPLE"
|
|
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:
|
|
include: ${{fromJson(needs.determine_targets.outputs.target)}}
|
|
uses: ./.github/workflows/build.yml
|
|
with:
|
|
target: ${{ matrix.target }}
|
|
subtarget: ${{ matrix.subtarget }}
|
|
build_toolchain: true
|