Skip to content

Commit 854ac41

Browse files
committed
Sync "main" from upstream
mirror_toolchain: Handle case where manifest is missing default tag (WildKernels/OnePlus_KernelSU_SUSFS@3340564) Add Support for older OnePlus kernels (WildKernels/OnePlus_KernelSU_SUSFS@5a5f0fb) Added support for older OnePlus missing OOS15 kernels. (WildKernels/OnePlus_KernelSU_SUSFS@17d032a) Add OnePlus Ace 6 Ultra OOS 16 support (WildKernels/OnePlus_KernelSU_SUSFS@8b820af) Update badges and cron job (WildKernels/OnePlus_KernelSU_SUSFS@b358f0d6) ci: download ccache once via setup job + artifact (fix parallel 504 throttling) (WildKernels/OnePlus_KernelSU_SUSFS@8b3477f) ci: clickable model links in release table + exclude ccache-binary from assets (WildKernels/OnePlus_KernelSU_SUSFS@041f75c)
1 parent 9c8452a commit 854ac41

3 files changed

Lines changed: 114 additions & 15 deletions

File tree

.github/workflows/build-kernel-release.yml

Lines changed: 103 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,28 +22,37 @@ on:
2222
- OP13S_oos16
2323
- OP13T_oos16
2424
- OP12_oos16
25+
- OP12-6.1.118_oos16
2526
- OP12r_oos16
27+
- OP12r-5.15.167_oos16
2628
- OP11_oos16
29+
- OP11-5.15.167_oos16
2730
- OP11r_oos16
2831
- OP10pro_oos16
2932
- OP-TURBO-6V_oos16
3033
- OP-TURBO-6_oos16
3134
- OP-ACE-6T_oos16
3235
- OP-ACE-6_oos16
36+
- OP-ACE-6-ULTRA_oos16
3337
- OP-ACE-5-PRO_oos16
3438
- OP-ACE-5_oos16
39+
- OP-ACE-5-6.1.118_oos16
3540
- OP-ACE-5-ULTRA_oos16
3641
- OP-ACE-5-RACE_oos16
3742
- OP-ACE-3-PRO_oos16
3843
- OP-ACE-3V_oos16
44+
- OP-ACE-3V-6.1.118_oos16
3945
- OP-ACE-3_oos16
46+
- OP-ACE-3-5.15.167_oos16
4047
- OP-ACE-2-PRO_oos16
4148
- OP-ACE-2V_oos16
4249
- OP-ACE-2_oos16
4350
- OP-NORD-6_oos16
4451
- OP-NORD-5_oos16
52+
- OP-NORD-5-6.1.118_oos16
4553
- OP-NORD-CE-5_oos16
4654
- OP-NORD-4_oos16
55+
- OP-NORD-4-6.1.118_oos16
4756
- OP-NORD-4-CE_oos16
4857
- OP-NORD-CE4-LITE_oos16
4958
- OP-PAD-4_oos16
@@ -57,47 +66,82 @@ on:
5766
- OP-PAD-MT6983_oos16
5867
- OP-PAD-LITE_oos16
5968
- OP-OPEN_oos16
69+
- OP-OPEN-5.15.167_oos16
6070
- OP-PAD-GO-2_oos16
6171
# OOS15
6272
- OP13-CPH_oos15
73+
- OP13-CPH-6.6.56_oos15
6374
- OP13-PJZ_oos15
75+
- OP13-6.6.30_oos15
6476
- OP13r_oos15
77+
- OP13r-6.1.75_oos15
6578
- OP13S_oos15
6679
- OP13T_oos15
80+
- OP13T-6.6.56_oos15
6781
- OP12_oos15
82+
- OP12-6.1.75_oos15
6883
- OP12r_oos15
84+
- OP12r-5.15.149_oos15
6985
- OP11_oos15
86+
- OP11-5.15.149_oos15
7087
- OP11r_oos15
88+
- OP11r-5.10.209_oos15
7189
- OP10t_oos15
90+
- OP10t-5.10.226_oos15
91+
- OP10t-5.10.209_oos15
7292
- OP10pro_oos15
93+
- OP10pro-5.10.209_oos15
7394
- OP10r_oos15
7495
- OP-ACE-5-PRO_oos15
96+
- OP-ACE-5-PRO-6.6.30_oos15
7597
- OP-ACE-5_oos15
98+
- OP-ACE-5-6.1.75_oos15
7699
- OP-ACE-5-ULTRA_oos15
100+
- OP-ACE-5-ULTRA-6.6.50_oos15
77101
- OP-ACE-5-RACE_oos15
78102
- OP-ACE-3-PRO_oos15
103+
- OP-ACE-3-PRO-6.1.75_oos15
79104
- OP-ACE-3V_oos15
105+
- OP-ACE-3V-6.1.75_oos15
80106
- OP-ACE-3_oos15
107+
- OP-ACE-3-5.15.149_oos15
81108
- OP-ACE-2-PRO_oos15
109+
- OP-ACE-2-PRO-5.15.149_oos15
82110
- OP-ACE-2V_oos15
111+
- OP-ACE-2V-5.10.209_oos15
83112
- OP-ACE-2_oos15
113+
- OP-ACE-2-5.10.209_oos15
84114
- OP-ACE-RACE_oos15
115+
- OP-ACE-RACE-5.10.226_oos15
116+
- OP-ACE-RACE-5.10.209_oos15
85117
- OP-ACE_oos15
118+
- OP-ACE-5.10.209_oos15
86119
- OP-NORD-5_oos15
87120
- OP-NORD-CE-5_oos15
88121
- OP-NORD-4_oos15
122+
- OP-NORD-4-6.1.75_oos15
89123
- OP-NORD-4-CE_oos15
124+
- OP-NORD-4-CE-5.15.167_oos15
125+
- OP-NORD-4-CE-5.15.149_oos15
90126
- OP-NORD-CE4-LITE_oos15
91127
- OP-NORD-3_oos15
128+
- OP-NORD-3-5.10.209_oos15
92129
- OP-NORD-N30-SE_oos15
93130
- OP-PAD-3-SM8750_oos15
131+
- OP-PAD-3-SM8750-6.6.30_oos15
94132
- OP-PAD-3-MT6897_oos15
133+
- OP-PAD-3-MT6897-6.1.75_oos15
95134
- OP-PAD-2-PRO_oos15
135+
- OP-PAD-2-PRO-6.6.30_oos15
96136
- OP-PAD-2-SM8650_oos15
137+
- OP-PAD-2-SM8650-6.1.75_oos15
97138
- OP-PAD-PRO_oos15
139+
- OP-PAD-PRO-6.1.75_oos15
98140
- OP-PAD-MT6983_oos15
141+
- OP-PAD-MT6983-5.10.209_oos15
99142
- OP-PAD-LITE_oos15
100143
- OP-OPEN_oos15
144+
- OP-OPEN-5.15.149_oos15
101145
# OOS14
102146
- OP12_oos14
103147
- OP11_oos14
@@ -445,9 +489,46 @@ jobs:
445489
uses: ./.github/workflows/mirror-toolchains.yml
446490
secrets: inherit
447491

492+
prepare_ccache:
493+
name: Prepare ccache binary (download once)
494+
runs-on: ubuntu-latest
495+
steps:
496+
# Download the custom ccache binary ONCE for the whole matrix and share it as
497+
# an artifact. Previously every parallel matrix job curl'd the same GitHub raw
498+
# URL simultaneously, which made GitHub's edge rate-limit / 504 the CI IPs and
499+
# fail the whole build (the URL is fine in a browser -- it's the ~30x parallel
500+
# hammering that triggers the throttle).
501+
- name: Download custom ccache once
502+
run: |
503+
set -uo pipefail
504+
echo "::group::Download ccache"
505+
url="https://raw.githubusercontent.com/WildKernels/kernel_patches/refs/heads/main/ccache/ccache-x86-64"
506+
ok=0
507+
for attempt in 1 2 3 4 5 6; do
508+
if curl -LfsS --connect-timeout 30 --max-time 120 -H "User-Agent: Mozilla/5.0" "$url" -o ccache && [ -s ccache ]; then
509+
ok=1; break
510+
fi
511+
echo "attempt $attempt failed (GitHub raw 504/throttle); backing off..."
512+
sleep $(( attempt * 5 + RANDOM % 6 ))
513+
done
514+
if [ "$ok" = 1 ]; then
515+
echo "✅ downloaded ccache once for all matrix jobs"
516+
else
517+
echo "::warning::custom ccache download failed; matrix jobs will fall back to the apt ccache"
518+
rm -f ccache
519+
fi
520+
echo "::endgroup::"
521+
- name: Upload ccache artifact
522+
uses: actions/upload-artifact@v7
523+
with:
524+
name: ccache-binary
525+
path: ccache
526+
retention-days: 1
527+
if-no-files-found: warn
528+
448529
build:
449530
name: build (${{ matrix.model }}, ${{ matrix.soc }}, ${{ matrix.branch }}, ${{ matrix.manifest }}, ${{ matrix.android_version }}, ${{ matrix.kernel_version }}, ${{ matrix.os_version }}, ${{ matrix.ksu_type }})
450-
needs: [set-op-model, mirror_toolchain]
531+
needs: [set-op-model, mirror_toolchain, prepare_ccache]
451532
if: |
452533
!cancelled() &&
453534
needs.set-op-model.result == 'success' &&
@@ -477,17 +558,28 @@ jobs:
477558
echo "✅ Dependencies installed"
478559
echo "::endgroup::"
479560
480-
- name: Install ccache with ECS by cctv18
481-
run: |
482-
# Install ccache with ECS by cctv18
483-
set -euo pipefail
484-
echo "::group::Install ccache with ECS"
485-
curl -LfsS --retry 5 --retry-delay 5 --retry-all-errors --connect-timeout 30 --tcp-fastopen -H "User-Agent: Mozilla/5.0" "https://github.com/WildKernels/kernel_patches/raw/refs/heads/main/ccache/ccache-x86-64" -o ccache
486-
sudo cp -f ./ccache /usr/bin/ccache
487-
sudo chmod +x /usr/bin/ccache
488-
rm -f ./ccache
561+
- name: Get prebuilt ccache (downloaded once by prepare_ccache)
562+
uses: actions/download-artifact@v8
563+
with:
564+
name: ccache-binary
565+
path: ccache-dl
566+
continue-on-error: true
489567

490-
echo "[DEBUG] Ccache version : $(ccache --version)"
568+
- name: Install ccache (ECS by cctv18, shared via artifact)
569+
run: |
570+
set -uo pipefail
571+
echo "::group::Install ccache"
572+
if [ -s ccache-dl/ccache ]; then
573+
sudo cp -f ccache-dl/ccache /usr/bin/ccache
574+
sudo chmod +x /usr/bin/ccache
575+
echo "✅ installed custom ccache from shared artifact"
576+
else
577+
# prepare_ccache could not fetch it (504/throttle); keep the apt ccache
578+
# already installed in 'Install Minimal Dependencies'.
579+
echo "::warning::shared ccache artifact unavailable; using apt ccache"
580+
fi
581+
rm -rf ccache-dl
582+
echo "[DEBUG] Ccache version : $(ccache --version | head -1)"
491583
echo "::endgroup::"
492584
493585
- name: ♻️ Configure ccache & LTO cache (bounded)

.github/workflows/clean-up.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ on:
5959
- OP-TURBO-6
6060
- OP-ACE-6T
6161
- OP-ACE-6
62+
- OP-ACE-6-ULTRA
6263
- OP-ACE-5-PRO
6364
- OP-ACE-5
6465
- OP-ACE-5-ULTRA

.github/workflows/mirror-toolchains.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
name: Mirror static toolchains to GitHub Release
1+
name: 🛠️ ToolChains Generator
22

33
permissions:
44
contents: write
55

66
on:
7+
schedule:
8+
- cron: '0 0 * * 0' # Every Sunday at 00:00 UTC
79
workflow_dispatch:
810
workflow_call:
911

@@ -123,8 +125,8 @@ jobs:
123125
root = ET.parse(xml_file).getroot()
124126
remotes = {r.get('name'): r.get('fetch').rstrip('/') for r in root.findall('remote')}
125127
default = root.find('default')
126-
def_remote = default.get('remote')
127-
def_rev = default.get('revision')
128+
def_remote = default.get('remote') if default is not None else None
129+
def_rev = default.get('revision') if default is not None else None
128130
129131
for project in root.findall('project'):
130132
name = project.get('name')
@@ -140,7 +142,11 @@ jobs:
140142
rev = project.get('revision', def_rev)
141143
base_url = remotes.get(remote_name, "").rstrip('/')
142144
cache_filename = f"{type_label}-{rev}.tar.gz"
143-
145+
146+
if not remote_name or not rev:
147+
print(f"⚠️ Skipping toolchain project '{name}' because remote or revision cannot be resolved.")
148+
continue
149+
144150
if cache_filename not in unique_toolchains:
145151
if "googlesource.com" in base_url:
146152
dl_url = f"{base_url}/{name}/+archive/{rev}.tar.gz"

0 commit comments

Comments
 (0)