See all case studies

OSHI leverages FlyCI for macOS builds

OSHI Banner

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

Ddbwiddis

As 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.

Read more in GitHub 🔗

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
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

Ddbwiddis

FlyCI ran in only 40s thanks to the caching. The equivalent GitHub runner took 1m23s.

Read more in GitHub 🔗

Thank you, dbwiddis 🔗 for trusting the FlyCI services!

Do you want to try FlyCI by yourself? Check our Getting Started guide.

Why choosing FlyCI?

Faster builds

Get faster build times with our M2 runners. Up to 3x faster builds compared to Intel-based machines.

Customer support

Optimize the performance and the cost of your GitHub Actions workflows with FlyCI Professional Support.

Better pricing

Get better value for a cheaper price. Control your team's budget with our flat-rate subscription.