Commit Graph

38 Commits

Author SHA1 Message Date
Claude ab68f827ce ci(desktop): add skipVlcSetup opt-out to bypass flaky VLC downloads
get.videolan.org regularly times out from GitHub-hosted runners and
Claude Code web sandboxes, taking the desktop CI build down with it
even though the failure is unrelated to the change under review.

Wire a -PskipVlcSetup=true (env: AMETHYST_SKIP_VLC=true) opt-out in
desktopApp/build.gradle.kts that disables the vlcDownload, upxDownload,
and vlcSetup tasks. Pass it from build.yml so PR CI no longer gates on
VLC reachability, and export the env from the CCW session-start hook.

Release packaging (create-release.yml) intentionally does not set the
flag, so shipped artifacts still bundle VLC.
2026-05-05 15:41:01 +00:00
Claude c1c52aa022 fix(deb): broaden libicu Depends so .deb installs across Debian/Ubuntu
jpackage runs `dpkg-shlibdeps` against the bundled JDK runtime's native
libs (libfontmanager.so etc. link libicu) and pins Depends to the build
host's libicu version. CI builds on ubuntu-24.04, so the .deb requires
libicu74 — uninstallable on Ubuntu 22.04 (libicu70), Debian 12 (libicu72),
Debian 11 (libicu67), and Debian 13 (libicu76). Neither jpackage nor the
Compose Multiplatform DSL exposes a way to override the auto-generated
Depends.

Add scripts/relax-deb-libicu.sh which extracts the .deb with `dpkg-deb -R`,
rewrites `libicuNN` (or any alternation thereof) to
`libicu66 | libicu67 | libicu70 | libicu72 | libicu74 | libicu76 | libicu77`,
and repacks. The script is idempotent and a no-op for .debs without a
libicu Depends.

Wire it into both release legs (desktopApp + amy CLI) in
create-release.yml, and into the desktop test/build leg in build.yml so
testers downloading the CI artifact hit the same fix.
2026-04-26 10:21:07 +02:00
davotoula fd1776fd07 ci: add Android Lint as first step of the Android job
Android Lint catches API-level, deprecation, accessibility, and resource
issues that spotless and unit tests miss. Run lint on the same variants
that get assembled (fdroidBenchmark, playBenchmark) before tests so a
lint failure surfaces quickly without consuming the full test budget.

Lint reports are uploaded as artifacts for inspection.
2026-04-25 17:04:50 +02:00
davotoula 8a1b6c033f ci: use jvmTest for KMP modules in desktop leg
The bare 'test' task is ambiguous in KMP modules (candidates include
testAndroid and testAndroidHostTest). Switch quartz/commons/nestsClient
to :jvmTest so the desktop matrix unambiguously runs the JVM test
target on each OS. cli and desktopApp remain on :test (pure JVM).
2026-04-25 14:00:43 +02:00
davotoula 06668c3c5e ci: include :nestsClient:test in desktop leg
nestsClient is a KMP module with both JVM and Android targets. Add it
to the desktop matrix's explicit test list so its JVM tests run on all
three desktop OSes alongside quartz/commons/cli/desktopApp.
2026-04-25 13:19:03 +02:00
davotoula 543ea03549 ci: split android into its own job for graph visibility
The merged test-and-build matrix hid Android behind an OS-keyed matrix
leg, so the workflow graph no longer showed a distinct Android node.
Restore visibility by splitting into two parallel jobs after lint:

- build-desktop (matrix: ubuntu/macos/windows): runs JVM tests for the
  KMP/JVM modules (quartz, commons, cli, desktopApp) and packages the
  native installer per OS.
- test-and-build-android (ubuntu): runs the full test sweep and
  assembleBenchmark, uploads APKs and reports.

Trade-off: Ubuntu spins up two parallel runners instead of one, but
wall time is unchanged and Android is once again a visible node.
2026-04-25 13:18:02 +02:00
Claude ca92c5a87a ci: drop assembleDebug and its APK uploads
The release workflow builds its own signed release APKs/AABs and does
not consume the debug outputs. Testers use the Benchmark APK, which is
still built and uploaded. Dropping assembleDebug removes a redundant
APK packaging pass from every PR/main run.
2026-04-24 20:56:34 +00:00
Claude 6d930ef3cc ci: split assembleDebug and assembleBenchmark into separate gradle calls
Combining them into a single Gradle invocation caused
:amethyst:packagePlayBenchmark to fail inside AGP's
IncrementalSplitterRunnable worker — both variants share packaging
state in one task graph and the benchmark leg trips on it.

The old workflow always ran these as two separate `./gradlew` calls.
Match that pattern. They still run on the same runner with a warm
Gradle cache, so the compilation savings from sharing quartz/commons
with the test+packageDeb step are preserved; we only pay two Gradle
startups, which is trivial.
2026-04-24 20:52:19 +00:00
Claude 2c5f08a16a ci: merge test and build jobs to eliminate duplicate compilation
Previously each OS ran Gradle twice (or three times on Ubuntu): once to
compile+test, then again to build desktop packages, plus a third run on
Ubuntu for Android APKs. Merging these into a single matrix job per OS
lets Gradle build the task graph once and reuse compiled classes across
test, desktop packaging, and Android assembly.

- Combine test + build-desktop into one matrix job (test-and-build)
- Fold build-android into the same Ubuntu matrix leg
- Use --no-daemon consistently; drop the redundant --stop steps
- Raise timeout to 60 min to cover the combined work
2026-04-24 20:10:03 +00:00
dependabot[bot] f098fb4cdc chore(actions): bump the actions group with 4 updates
Bumps the actions group with 4 updates: [actions/upload-artifact](https://github.com/actions/upload-artifact), [actions/github-script](https://github.com/actions/github-script), [nick-fields/retry](https://github.com/nick-fields/retry) and [softprops/action-gh-release](https://github.com/softprops/action-gh-release).


Updates `actions/upload-artifact` from 6 to 7
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

Updates `actions/github-script` from 7 to 9
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v9)

Updates `nick-fields/retry` from 3.0.2 to 4.0.0
- [Release notes](https://github.com/nick-fields/retry/releases)
- [Commits](https://github.com/nick-fields/retry/compare/ce71cc2ab81d554ebbe88c79ab5975992d79ba08...ad984534de44a9489a53aefd81eb77f87c70dc60)

Updates `softprops/action-gh-release` from 2.6.2 to 3.0.0
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/3bb12739c298aeb8a4eeaf626c5b8d85266b0e65...b4309332981a82ec1c5618f44dd2e27cc8bfbfda)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: nick-fields/retry
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: softprops/action-gh-release
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-17 12:20:54 +00:00
davotoula 226c590c0d Revert "removed stopping of gradle since we're using other gradle cache"
This reverts commit b4c0a934b1.
2026-03-31 07:32:37 +02:00
davotoula b4c0a934b1 removed stopping of gradle since we're using other gradle cache 2026-03-30 12:30:49 +02:00
davotoula 65ad74b4bc Switching to cache: gradle in setup-java. The built-in caching automatically excludes lock files and handles cleanup properly. 2026-03-30 08:40:52 +02:00
davotoula 3f09150d80 Added ./gradlew --stop (with if: always()) after the Gradle steps in both test and build-desktop jobs 2026-03-29 15:41:40 +02:00
davotoula d707900aa0 increase android CI build to 45 minutes 2026-03-28 18:45:54 +01:00
Claude 8cbd11816e ci: add explicit permissions to workflows 2026-03-28 09:32:48 +00:00
Vitor Pamplona b0c714176a Updates versions for github actions 2026-03-16 18:46:39 -04:00
Vitor Pamplona 12c27af813 cancel other running builds in github actions when a new one comes up 2026-03-16 17:16:05 -04:00
Claude d996911cda feat: add cross-platform CI for Linux, macOS, and Windows
- Split build.yml into lint, test (matrix: 3 OS), build-android, and
  build-desktop (matrix: 3 OS with native packaging) jobs
- Tests now run on ubuntu, macos, and windows to validate cross-platform
  compatibility
- Desktop distributions (DEB, DMG, MSI) built on their native OS and
  uploaded as artifacts
- Split create-release.yml into create-release, deploy-android, and
  deploy-desktop jobs so desktop distributions are included in releases
- Android APK/AAB builds and Quartz publishing remain on Linux

https://claude.ai/code/session_016dxFUErY4P6WRir4xxhCEr
2026-03-15 21:34:18 +00:00
David Kaspar 76c6f50fa8 Rename build step for Benchmark APK in workflow 2026-03-15 20:57:02 +00:00
davotoula 00c0472155 remove second identical(?) test run 2025-09-16 18:38:46 +02:00
davotoula 8a66276755 fix benchmark apk location 2025-09-16 18:06:14 +02:00
Vitor Pamplona d4d7d58378 Maybe separate assemblies work 2025-08-05 17:42:57 -04:00
Vitor Pamplona 5d1e3e804f Trying to see if we can get benchmark flavors out of github actions 2025-08-05 17:20:25 -04:00
Vitor Pamplona 7f6435ba57 Updates build tools to java 21 2025-08-01 17:07:31 -04:00
Vitor Pamplona 7146838f63 Better names for github jobs 2024-11-04 11:56:25 -05:00
Vitor Pamplona 1037ab33e3 fixes names of uploaded files 2024-11-04 11:31:04 -05:00
Vitor Pamplona 230fd553ae fixes paths on github actions 2024-11-04 11:12:40 -05:00
Vitor Pamplona eac078c42d updates build github action to test and upload the right assets 2024-11-04 10:54:14 -05:00
Vitor Pamplona 53aa9b0017 Trying to fix upload-artifact. 2024-09-11 17:15:23 -04:00
Vitor Pamplona 8e212bbb55 changing JVM of actions to zulu to see if java/kotlin compilation errors improve. 2024-07-03 14:16:16 -04:00
Vitor Pamplona 4609d6e343 changes app directory to amethyst 2024-06-24 14:13:55 -04:00
Vitor Pamplona c6a00386c8 adds distribution to github actions 2024-01-11 12:23:36 -05:00
Vitor Pamplona 9e3aa31c25 Updates Github actions scripts. 2024-01-11 12:06:45 -05:00
Vitor Pamplona de61f7f383 Moves to spotless 2024-01-06 10:44:05 -05:00
Vitor Pamplona b28f0bff74 Updating build scripts to java 17 2023-04-19 11:24:49 -04:00
Chemaclass 2d92e1d444 Add Linder to build CI 2023-03-07 19:45:50 +01:00
Vitor Pamplona 72241e9eb1 Readme and CI 2023-01-11 15:06:02 -05:00