You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f41bf4f
Browse filesBrowse the repository at this point in the historyBrowse files
ci: fail release if expected artifacts are missing, per backend family
Port the artifact-completeness gate from lemonade-sdk/llama.cpp#16 to
this repo's release job, adapted to its build matrix:
- cuda: 8 sm_* variants on ubuntu x64 + windows x64, plus sm_121-only
on ubuntu arm64 (GB10) — 17 files total.
- rocm-therock: TheRock nightly ROCm 7.13.0 on windows + ubuntu.
- rocm-hipsdk: official/legacy HIP SDK ROCm on windows (7.1.1) +
ubuntu (7.2.1) — kept separate from rocm-therock since they're
different SDKs, not just different platforms of the same backend.
- cpu: ubuntu + windows avx2 builds.
- metal: macos-14 + macos-latest builds.
Each family is all-or-nothing: if any artifact in a family is
missing, every artifact for that family is dropped from the release
so a release never contains a partial/inconsistent set (e.g. CUDA
split across sm_* or platforms). Other families are unaffected by a
gap in one. A release with zero artifacts overall is never created.
Also brings the release/upload mechanism up to parity with
llama.cpp's: an idempotent create-or-get-release step (safe to
re-run after a partial failure) and a retrying, resumable asset
upload, replacing the old anzz1/action-create-release +
github-script@v3 flow.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
# Never create or update a release with nothing to publish.
1048
+
if [ "$files" -eq 0 ]; then
1049
+
echo "::error::No release artifacts found in ./artifact — aborting before creating a release."
1050
+
exit 1
1051
+
fi
1052
+
1053
+
if [ "$total_missing" -gt 0 ]; then
1054
+
echo "$total_missing artifact(s) missing ($summary) — continuing to publish the $files artifact(s) from complete families. The job will still fail below so the gap gets noticed."
984
1055
else
985
-
echo "Tag ${TAG_NAME} does not exist in ${{ github.repository }}. Proceeding with release."
986
-
echo "exists=false" >> $GITHUB_OUTPUT
1056
+
echo "All expected artifacts present. Found $files artifact(s) ready to upload."
987
1057
fi
988
1058
989
-
- name: Create release
990
-
id: create_release
991
-
if: steps.check_tag.outputs.exists == 'false'
992
-
uses: anzz1/action-create-release@v1
1059
+
- name: Determine release summary
1060
+
id: release_summary
1061
+
run: |
1062
+
if [[ "${{ github.event_name }}" == "schedule" ]]; then
1063
+
echo "value=Nightly release for ${{ github.sha }}" >> "$GITHUB_OUTPUT"
echo "::error::${{ steps.check_artifacts.outputs.missing }} artifact(s) were missing (${{ steps.check_artifacts.outputs.summary }}) — the incomplete families were dropped from this release; other families were still published. See the 'Check release artifacts' step for the full per-file list."
0 commit comments