haveno/gradle
Robbie Blaine 1a42336ba5
Add aarch64 architecture support to CI
Extend CI workflow to build for both `x86_64` and `aarch64` architectures:
- Add ARM variants for Ubuntu and macOS in the build matrix
- Skip tests on `aarch64` builds with `-x test` flag as JavaFX 21.x.x
  doesn't currently support the ARM64 architecture
- Update artifact naming to include architecture identifiers
- Configure architecture-specific build paths and release outputs

This change enables native builds for ARM-based systems like Apple Silicon
Macs and ARM servers, improving performance for users on these platforms
while maintaining full test coverage on `x86_64` where supported.

Make localnet cache OS-specific

Prevent Error: Failed to CreateArtifact: Received non-retryable
error: Failed request: (409) Conflict: an artifact with this name
already exists on the workflow run

Add a warning about `linux/aarch64` tests being skipped

Simplify GitHub Actions workflow conditions

Replace verbose condition syntax with simpler `runner.os` expressions to
improve readability and maintainability. This change:

- Uses `runner.os` instead of specific `matrix.os` version strings
- Removes unnecessary `${{ }}` expression wrappers in if conditions
- Consolidates OS-specific conditions (e.g. `ubuntu-22.04` or
  `ubuntu-22.04-arm`) into simpler checks (`runner.os == 'Linux'`)

Fix JavaFX loading on Mac ARM64 architecture

JavaFX 21.0.2 supports Mac ARM64 (Apple Silicon) but was failing to
load with `UnsatisfiedLinkError` because the build system wasn't
detecting ARM architecture properly.

This change allows the build system to correctly identify Mac ARM64
systems and use the appropriate JavaFX libraries, resolving the
compatibility issues when running on Apple Silicon Macs.

Split Build and Package Installer steps

Cleaner CI output, split Build and Package installer step into two steps
2025-05-10 22:53:18 +02:00
..
wrapper Support for open JDK 21 by updating dependencies (#647) 2024-03-09 10:36:37 -05:00
README.md downgrade Gradle wrapper to 8.2.1 2023-12-19 13:35:47 -05:00
verification-metadata.xml Add aarch64 architecture support to CI 2025-05-10 22:53:18 +02:00

How to upgrade the Gradle version

Visit the Gradle website and decide the:

  • desired version
  • desired distribution type
  • what is the sha256 for the version and type chosen above

Adjust the following command with tha arguments above and execute it twice:

./gradlew wrapper --gradle-version 8.2.1 \
    --distribution-type all \
    --gradle-distribution-sha256-sum 7c3ad722e9b0ce8205b91560fd6ce8296ac3eadf065672242fd73c06b8eeb6ee

The first execution should automatically update:

  • haveno/gradle/wrapper/gradle-wrapper.properties

The second execution should then update:

  • haveno/gradle/wrapper/gradle-wrapper.jar
  • haveno/gradlew
  • haveno/gradlew.bat

The four updated files are ready to be committed.