13 Commits
Author SHA1 Message Date
Dallin Bland 9e51197c36 Fix automated release failures on macOS, FreeBSD, and Android libretro
The macOS packager treated each library install name as a load command, so
@executable_path self-ids failed the portability check. FreeBSD configure
requires Qt6 Charts and Svg. Android libretro could not link the prebuilt
OpenSSL archive until Poly1305 SVE2 binds locally, matching yuzu-android.
2026-09-21 13:54:02 -05:00
Dallin Bland cafc27ce01 Remove stray Python bytecode and ignore __pycache__ 2026-09-21 11:34:55 -05:00
Dallin Bland dc7037cf77 macOS vulkan fixes 2026-09-21 01:31:55 -05:00
Dallin Bland ac2a516999 Address code-quality bot: explain best-effort Windows cleanup
Replace silent except-pass in smoke_libretro with logged warnings.
FreeLibrary and dll_directory.close failures must not fail the
release after the core already passed, but they should be visible.
2026-09-21 00:58:47 -05:00
Dallin Bland e7eb021383 Fix libretro Android link and Windows verify for release
- Build OpenSSL with pic so Android arm64 shared link succeeds
  (fixes R_AARCH64_ADR_PREL_PG_HI21 relocation against
  poly1305_blocks_sve2 in libcrypto.a).
- Define SUYU_BUILD_LIBRETRO_CORE for libretro builds so ANDROID code
  can distinguish the core from the full Android app.
- video_core: use default pipeline workers for libretro Android
  instead of AndroidSettings::values (only in yuzu-android).
- common: provide local battery globals for libretro Android
  instead of externs from native.cpp.
- common/android: minimal JNI_OnLoad/JNI_OnUnload for libretro
  (RetroArch has no org/yuzu classes or InitFFmpegOnLoad).
- verify_release_artifacts: FreeLibrary Windows DLL after smoke
  test and ignore temp cleanup errors (fixes WinError 5 Access
  denied on suyu_libretro.dll).
2026-09-21 00:42:46 -05:00
Dallin Bland 4be95f86dc Make release version configurable 2026-09-20 22:53:07 -05:00
Dallin Bland a7833bc98e Prepare macOS build for signed releases 2026-09-20 15:34:43 -05:00
Dallin Bland 0694b07486 ci: harden automated release pipeline 2026-09-20 11:12:55 -05:00
Dallin Bland 6c04270e38 test(release): exercise publish gate with spaced paths 2026-09-19 23:40:01 -05:00
Dallin Bland 3abab74bf1 ci(release): harden package verification gate 2026-09-19 23:40:01 -05:00
Dallin Bland c01d5f97f7 ci(release): verify packaged applications and libretro cores 2026-09-19 23:40:01 -05:00
Dallin Bland 437b353e51 chore(release): publish GitHub artifacts as drippu-* 2026-09-16 20:53:11 -05:00
6bc64f5c79 fix(ci): gate release publish on required results (#8)
* test(ci): add release publication gate regression

Drive the Publish Release job the way GitHub Actions would. The check
evaluates job `if`/`needs` from `.github/workflows/release.yml` and runs
the job's shell against a stub `gh`. Required platform failures still
publish. The rolling `v0.04-latest` tag is deleted before the empty
artifact check. The release notes have no commit, toolchain, or checksum
metadata.

Co-authored-by: Dallin Bland <SourCreamCulture@users.noreply.github.com>

* fix(ci): gate release publish on required results

Replace if: always() with !cancelled() plus required job results so a
Windows, Linux, macOS, Android, or libretro failure cannot replace a
release. Keep FreeBSD and libretro-android optional. Stop deleting
v0.04-latest. Publish v0.04-<date>-<sha> with commit, toolchain, and
SHA-256 metadata. Call exporter smoke and the Catch2 tests from both
pull-request CI and the release needs list.

Co-authored-by: Dallin Bland <SourCreamCulture@users.noreply.github.com>

* chore(ci): drop leftover always() lecture from the gate check

Delete the module docstring that still taught if: always() after
release.yml stopped using it. GitHub's default success() wrap lives in
apply_github_default_success. Publish is forbidden from deleting a tag
at all, not only from deleting before the empty check.

Co-authored-by: Dallin Bland <SourCreamCulture@users.noreply.github.com>

* test(ci): reject gh prerelease as latest

GitHub returns HTTP 422 Latest release cannot be draft or prerelease
when gh release create passes --prerelease with --latest, then runs
cleanupDraftRelease. The gate stub now fails the same way.

Co-authored-by: Dallin Bland <SourCreamCulture@users.noreply.github.com>

* fix(ci): stop marking prereleases as latest

Remove --latest from publish_release.sh. GitHub forbids a prerelease
from being the latest release and gh then deletes the draft.

Co-authored-by: Dallin Bland <SourCreamCulture@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Dallin Bland <SourCreamCulture@users.noreply.github.com>
2026-09-15 07:39:43 +00:00