OSHI leverages FlyCI for macOS builds
![OSHI Banner](/_next/image?url=%2Fimages%2Fcase-studies%2Foshi-cover.png&w=3840&q=75)
Note
This case study relates to FlyCI macOS runners, which will be discontinued as of September 30th, 2024. As a result, it is archived and no longer reflects current FlyCI services. For more information, please refer to our announcement blog post.
OSHI↗ is a free JNA-based (native) Operating System and Hardware Information library for Java. It does not require the installation of any additional native libraries and aims to provide a cross-platform implementation to retrieve system information, such as OS version, processes, memory and CPU usage, disks and partitions, devices, sensors, etc.
OSHI source code↗ is located in a public GitHub repository having: StarFork
Testimonial
DdbwiddisAs a cross-platform, cross-architecture project, it's important for OSHI to test its code on as many different combinations of operating system and architecture as possible. Until recently, GitHub did not have runners for Apple Silicon, so it was great to see FlyCI offering an M1 runner with a generous free monthly allowance for open source projects. Installing it took only a few minutes with a single line of code and a few mouse clicks.
When GitHub made their own runners available it was good to get a side-by-side comparison of the two. Initially FlyCI appeared to be slower, but after reporting it to them they quickly found an incorrect caching configuration and updated their runners within the day. Other project's claims that they are twice as fast appear consistent with the results I'm seeing.
Note
FlyCI offers 500 min/month free for public projects in order to boost your GitHub Actions with M2 ARM64 macOS runners!
How OSHI uses FlyCI?
For OSHI leveraging FlyCI runners required just installing FlyCI GitHub app and adding a few lines of code to the corresponding macOS workflow:
jobs:
# Runs full project on multiple JDKs
testmatrix:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# Baseline support, Current LTS, Current GA, Current EA
java: [11, 17, 21]
os: [macos-11, macos-12, macos-13]
include:
- os: flyci-macos-large-latest-m1
java: 21
fail-fast: false
Experience with FlyCI macOS Runners
DdbwiddisFlyCI ran in only 40s thanks to the caching. The equivalent GitHub runner took 1m23s.
Thank you, dbwiddis↗ for trusting the FlyCI services!
Do you want to try FlyCI by yourself? Check our Getting Started guide.