bloomberg / blazingmq

A modern high-performance open source message queuing system
https://bloomberg.github.io/blazingmq/
Apache License 2.0
2.53k stars 130 forks source link

CI: add GitHub Actions check for Apple Silicon (M1) build #116

Closed 678098 closed 6 months ago

678098 commented 11 months ago

Is there an existing proposal for this?

Is your feature request related to a problem?

We don't have automatic checks for M1/M2 builds.

Describe the solution you'd like

According to this roadmap, Apple Silicon (M1) is in public beta in GitHub Actions:

https://github.com/github/roadmap/issues/528

Might be possible to use the corresponding runner to check darwin build script automatically.

Alternatives you considered

No response

Sudo-Guy commented 9 months ago

I can pick this up. Just to clarify we want to take advantage of the M1 runners to see if blazingmq builds via the darwin build script successfully?

678098 commented 9 months ago

I can pick this up. Just to clarify we want to take advantage of the M1 runners to see if blazingmq builds via the darwin build script successfully?

Hi @Sudo-Guy! That is correct, need to implement a check for the darwin build script using M1 or M2 (if available) GitHub Runner. Will assign it to you then. Thanks!

678098 commented 9 months ago

Hi @Sudo-Guy! Do you plan working on this?

Sudo-Guy commented 9 months ago

I'll get around to it this weekend. A minor issue is that I need access to an ARM Mac machine right now, and free runners are unavailable.

678098 commented 9 months ago

Thanks for the latest info @Sudo-Guy. Yes, indeed, they opened larger runners only, which are not free, on the 2nd of October, after this issue was opened. https://github.blog/2023-10-02-introducing-the-new-apple-silicon-powered-m1-macos-larger-runner-for-github-actions/ Don't know if we want to pause this task then. Will discuss it on our side and return.

678098 commented 8 months ago

@Sudo-Guy it seems that it's not possible to use free M1/M2 runners right now. https://github.com/actions/runner-images/issues/8439#issuecomment-1743463067

We discussed it and decided to wait until/if free Darwin runners are available. In the meantime, we think it's still a good idea to check if build is okay on amd64 intel MacOS.

Could you add this workflow? macos-latest runner should work for now

Sudo-Guy commented 8 months ago

Sure, sounds good.

kgantchev commented 7 months ago

...if free Darwin runners are available.

Might I make a suggestion? Feel free to use FlyCI's M1 and M2 runners. Our runners are on average 2x faster and 2x cheaper than GitHub's AND we have a free tier for OSS projects (see below).

Install Instructrions

Easily replace your M1 runners:

jobs:
 ci:
-    runs-on: macos-latest
+    runs-on: flyci-macos-large-latest-m1
   steps:
   - name: 👀 Checkout repo
     uses: actions/checkout@v4

Or try the M2 runners:

jobs:
  ci:
-    runs-on: macos-latest
+    runs-on: flyci-macos-large-latest-m2
    steps:
      - name: 👀 Checkout repo
        uses: actions/checkout@v4

Pricing

Processor vCPU RAM (GB) Storage Label Price on FlyCI Price on GitHub
M1 4 7 28 GB flyci-macos-large-latest-m1 $0.06 -
M1 8 14 28 GB flyci-macos-xlarge-latest-m1 $0.12 $0.16
M2 4 7 28 GB flyci-macos-large-latest-m2 $0.08 -
M2 8 14 28 GB flyci-macos-xlarge-latest-m2 $0.16 -

500 mins/month Free for Public Repos

If your repo is public, then FlyCI offers 500 mins/month of free M1 runner usage with the flyci-macos-large-latest-m1 runner.

Best Regards, Kiril Gantchev CEO and co-founder of FlyCI

678098 commented 7 months ago

Hi @kgantchev! Thank you for the suggestion. The proposed option is great for small open source projects. However, we have many developers who actively make changes in the repo.

Some calculations. The free quota is 500 min, consider M1/M2 runner time 20 min for each CI launch. With these assumptions, the quota will be exceeded after ~25 CI launches.

This means:

In conclusion, weekly checks could be performed, which could be good enough for us. I will discuss it with the team.

678098 commented 7 months ago

GitHub Actions: Introducing the new M1 macOS runner available to open source!

https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/

678098 commented 7 months ago

Hi @syuzvinsky, could you do this when you have time?

pniedzielski commented 7 months ago

For reference, this is how memray has done it.

678098 commented 6 months ago

https://github.com/bloomberg/blazingmq/pull/205