mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
fad08e8e23
Github Actions cache doesn't permit to overwrite cache if it does
already exist. As a trick to refresh and have fresh ccache pool,
delete the ccache cache if it does exist with the help of Github REST
API. An additional permission is needed to access this API. Add this
permittion to each user of the build workflow.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 203cc0a7ef
)
74 lines
1.8 KiB
YAML
74 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
|
|
actions: write
|
|
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
|