Update .forgejo/workflows/pgo-binary.yml

This commit is contained in:
gigirassy
2026-08-19 01:14:30 +02:00
parent 322536168c
commit 20b370b45c
+115 -13
View File
@@ -85,7 +85,7 @@ jobs:
run: |
/tmp/riptide-pgo/riptide --help
- name: Train PGO profile
- name: Train PGO profile part 1
shell: sh
env:
LLVM_PROFILE_FILE: /tmp/riptide-pgo/profiles/%m-%p.profraw
@@ -93,22 +93,38 @@ jobs:
set -eu
SITEMAP_URL='https://riptide-pgo.blitzw.in/sitemaps/sitemap.xml'
SITEMAP_URL_2='https://riptide-pgo.blitzw.in/sitemaps2/sitemap.xml'
printf 'Training with sitemap: <%s>\n' "$SITEMAP_URL"
printf 'Training round 1 with sitemap: <%s>\n' "$SITEMAP_URL"
timeout 10m \
/tmp/riptide-pgo/riptide \
--sitemap "$SITEMAP_URL" \
--output /tmp/pgo-urls.txt \
--scheme https \
--workers 16 \
--timeout-secs 30
/tmp/riptide-pgo/riptide \
--sitemap "$SITEMAP_URL" \
--output /tmp/pgo-urls.txt \
--scheme https \
--workers 16 \
--timeout-secs 30
test -s /tmp/pgo-urls.txt
echo "Training input:"
echo "Training round 1 input:"
wc -l /tmp/pgo-urls.txt
printf 'Training round 2 with sitemap: <%s>\n' "$SITEMAP_URL_2"
timeout 10m \
/tmp/riptide-pgo/riptide \
--sitemap "$SITEMAP_URL_2" \
--output /tmp/pgo-urls-2.txt \
--scheme https \
--workers 16 \
--timeout-secs 30
test -s /tmp/pgo-urls-2.txt
echo "Training round 2 input:"
wc -l /tmp/pgo-urls-2.txt
echo "Generated profiles:"
find /tmp/riptide-pgo/profiles \
-name '*.profraw' \
@@ -120,9 +136,9 @@ jobs:
-name '*.profraw' \
-type f \
-print -quit
)"
)"
- name: Merge PGO profiles
- name: Merge Round 1 of PGO profiles
shell: sh
run: |
set -eu
@@ -135,14 +151,100 @@ jobs:
test -s /tmp/riptide-pgo.profdata
- name: Build optimized Linux binary
- name: Build Linux binary 2
shell: sh
run: |
set -eu
RUSTFLAGS="
-C target-feature=+crt-static
-C profile-use=/tmp/riptide-pgo.profdata
" cargo build \
--release \
--target "$LINUX_TARGET"
mkdir -p riptide-pgo-2
cp \
"target/$LINUX_TARGET/release/riptide" \
riptide-pgo-2/riptide
chmod +x riptide-pgo-2/riptide
- name: Train PGO profile
shell: sh
env:
LLVM_PROFILE_FILE: /tmp/riptide-pgo/profiles/%m-%p.profraw
run: |
set -eu
SITEMAP_URL='https://riptide-pgo.blitzw.in/sitemaps/sitemap.xml'
SITEMAP_URL_2='https://riptide-pgo.blitzw.in/sitemaps2/sitemap.xml'
printf 'Training round 1 with sitemap: <%s>\n' "$SITEMAP_URL"
timeout 10m \
/tmp/riptide-pgo2/riptide \
--sitemap "$SITEMAP_URL" \
--output /tmp/pgo-urls3.txt \
--scheme https \
--workers 16 \
--timeout-secs 30
test -s /tmp/pgo-urls3.txt
echo "Training round 1 input:"
wc -l /tmp/pgo-urls3.txt
printf 'Training round 2 with sitemap: <%s>\n' "$SITEMAP_URL_2"
timeout 10m \
/tmp/riptide-pgo2/riptide \
--sitemap "$SITEMAP_URL_2" \
--output /tmp/pgo-urls-4.txt \
--scheme https \
--workers 16 \
--timeout-secs 30
test -s /tmp/pgo-urls-4.txt
echo "Training round 2 input:"
wc -l /tmp/pgo-urls-4.txt
echo "Generated profiles:"
find /tmp/riptide-pgo2/profiles \
-name '*.profraw' \
-type f \
-print
test -n "$(
find /tmp/riptide-pgo2/profiles \
-name '*.profraw' \
-type f \
-print -quit
)"
- name: Merge Round 2 of PGO profiles
shell: sh
run: |
set -eu
LLVM_PROFDATA="${{ steps.llvm.outputs.LLVM_BIN }}/llvm-profdata"
"$LLVM_PROFDATA" merge \
-o /tmp/riptide-pgo2.profdata \
/tmp/riptide-pgo2/profiles/*.profraw
test -s /tmp/riptide-pgo.profdata
- name: Build finalized Linux binary
shell: sh
run: |
set -eu
RUSTFLAGS="
-C target-feature=+crt-static
-C profile-use=/tmp/riptide-pgo.profdata
-C profile-use=/tmp/riptide-pgo2.profdata
" cargo build \
--release \
--target "$LINUX_TARGET"