Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: test workflows on new arm runners #3855

Merged
merged 10 commits into from
Jan 18, 2025

Conversation

wolfgangwalther
Copy link
Member

GitHub has now made the ARM runners available for public repositories:

https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/

As a quick-and-dirty test, I just replaced all the ubuntu runners with their -arm counterparts, let's see which of the jobs build successfully and which don't.

We should be able to remove our current remote arm builder soon. Hopefully with a static binary, but if not - the regular build should still be much easier to do than those via-SSH-builds.

@wolfgangwalther
Copy link
Member Author

Hm, seems like our nix install action doesn't play well with arm runners, yet:

Fetching nix archives from https://github.com/nixbuild/nix-quick-install-action/releases/download/v29/nix-2.24.9-aarch64-linux.tar.zstd
zstd: /*stdin*\: unsupported format 

@wolfgangwalther
Copy link
Member Author

Seems like a lot less software is installed on the arm images:

  • zstd is missing, thus nix install fails
  • postgresql is missing, thus the cabal build fails

Also it's a public beta for a reason.. after changing the nix install method, we're now waiting for https://github.com/orgs/community/discussions/148648#discussioncomment-11858098 to be fixed, before we can continue.

@wolfgangwalther
Copy link
Member Author

Cabal builds for GHC 9.6 and 9.8 were successful. So we should certainly be able to do the same that we currently do on our own runner via GHA. Hopefully, we can also make the nix build work.

@wolfgangwalther
Copy link
Member Author

Hopefully, we can also make the nix build work.

Ah, right. To get the static build to work, we need to upgrade to GHC 9.6. To upgrade to that, we need to ditch Template Haskell. To do that, we need to replace OpenApi. So still a bit to work on.

So we should focus on moving over the Cabal based build for now.

Renovate doesn't seem to pick this up, because it's in a matrix
specification.
This is built on macos-14, which is running on new arm based hardware,
not the old x86_64 ones.
This should have been x86-64, only x64 is not a thing.
When macos-14 was rolled out libpq was not installed, but by now it is
by default. Thus, we don't need to do that, it only creates a warning
annotation right now.
The new GitHub arm runners are available, so we can use them to build
the ubuntu aarch64 binary instead of our custom machine.
Much easier to implement and should be easier to find, too.
This has been replaced by using the SSH key.
This is now possible, after we moved to the ARM build to the GitHub
runners.
Apparently the STACK_ROOT has been moved to C:\sr - for unknown reasons,
at least to me.

This should enable caching again and make the stack on windows builds
much faster than recently.
@wolfgangwalther
Copy link
Member Author

Ok, I've moved the ubuntu based build to the new ARM runners in this PR and fixed / improved some more of the CI on the way. It's tested in my fork / a private docker hub repo.

One more notable change: The loadtest results are now available in the test workflow's summary section. Makes the code much easier. On the main branch, this also makes the loadtest results much easier to discover, too: The whole workflow has a summary page, on which the loadtest results and all the respective binaries / artifacts are available.

@wolfgangwalther wolfgangwalther merged commit 14449bc into PostgREST:main Jan 18, 2025
24 checks passed
@wolfgangwalther wolfgangwalther deleted the ubuntu-arm branch January 18, 2025 17:01
@wolfgangwalther
Copy link
Member Author

The devel release was pushed fine, dockerhub updated as expected. Took the chance to cut another bugfix release on the v12 branch, while backporting the changes. I expect this to run through smoothly as well.

Thus, we don't use the old ARM runner anywhere anymore - you can shut that thing down, @steve-chavez!

@steve-chavez
Copy link
Member

Thus, we don't use the old ARM runner anywhere anymore - you can shut that thing down, @steve-chavez!

Done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants