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

Support Heroku-24 and ARM architecture #284

Merged
merged 4 commits into from
May 17, 2024

Conversation

schneems
Copy link
Contributor

Heroku 24 stack image supports both arm64 and amd64. The Ruby binaries are available on heroku-24 compiled to these two stacks heroku/docker-heroku-ruby-builder#38. The buildpack adds support by:

  • Updating the buildpackl.toml to include ARM architecture
  • Using architecture information to build the URL for Ubuntu 24.04 (heroku-24)
  • Integration testing on all supported Ubuntu versions

Heroku 24 stack image supports both arm64 and amd64. The Ruby binaries are available on heroku-24 compiled to these two stacks heroku/docker-heroku-ruby-builder#38. The buildpack adds support by:

- Updating the `buildpackl.toml` to include ARM architecture
- Using architecture information to build the URL for Ubuntu 24.04 (heroku-24)
- Integration testing on all supported Ubuntu versions
@schneems schneems force-pushed the schneems/heroku-24-lets-goooooooooooooooooooooo branch from 3bd7cb4 to aa74c14 Compare May 16, 2024 17:28
@schneems schneems marked this pull request as ready for review May 16, 2024 17:32
@schneems schneems requested a review from a team as a code owner May 16, 2024 17:32
@schneems schneems mentioned this pull request May 16, 2024
buildpacks/ruby/CHANGELOG.md Outdated Show resolved Hide resolved
buildpacks/ruby/CHANGELOG.md Show resolved Hide resolved
buildpacks/ruby/tests/integration_test.rs Show resolved Hide resolved
buildpacks/ruby/tests/integration_test.rs Outdated Show resolved Hide resolved
From: https://github.com/heroku/buildpacks-ruby/pull/284/files#r1603946649. The tests currently fail locally on a Mac (arm64/aarch64) because tests are always being compiled for amd64/x86. This change is a workaround to force compilation to the current target architecture.
@schneems schneems force-pushed the schneems/heroku-24-lets-goooooooooooooooooooooo branch from 8749c97 to a392d20 Compare May 17, 2024 17:18
buildpacks/ruby/tests/integration_test.rs Outdated Show resolved Hide resolved
buildpacks/ruby/tests/integration_test.rs Outdated Show resolved Hide resolved
@schneems schneems merged commit b863136 into main May 17, 2024
6 checks passed
@schneems schneems deleted the schneems/heroku-24-lets-goooooooooooooooooooooo branch May 17, 2024 19:37
heroku-linguist bot added a commit to heroku/cnb-builder-images that referenced this pull request May 20, 2024
* Update heroku/buildpacks-ruby to v3.0.0

## heroku/ruby

### Changed

- The buildpack now implements Buildpack API 0.10 instead of 0.9, and so requires `lifecycle` 0.17.x or newer. ([#283](heroku/buildpacks-ruby#283))

### Added

- Added support for Ubuntu 24.04 (and thus Heroku-24 / `heroku/builder:24`). ([#284](heroku/buildpacks-ruby#284))

* Add Ruby to heroku/builder:24

---------

Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: Ed Morley <[email protected]>
schneems added a commit to heroku/docker-heroku-jruby-builder that referenced this pull request May 23, 2024
- Rewrites the project to use a pre-built JRuby binary. Links to downloads are at https://www.jruby.org/download.
- Adds the heroku-24 base image as a build target
- Re-uses the ARM url format for S3 that was introduced in heroku/docker-heroku-ruby-builder#38. Both the Ruby classic buildpack and CNB are tightly coupled to this format and will attempt to download binaries from S3 with cpu architecture information on heroku-24. Once built and uploaded to S3 there should be no changes needed to the buildpack to acquire support for heroku-24 and ARM due to:
  - heroku/heroku-buildpack-ruby#1439
  - heroku/buildpacks-ruby#284
schneems added a commit to heroku/docker-heroku-jruby-builder that referenced this pull request May 23, 2024
* Add Heroku-24 and ARM support

- Rewrites the project to use a pre-built JRuby binary. Links to downloads are at https://www.jruby.org/download.
- Adds the heroku-24 base image as a build target
- Re-uses the ARM url format for S3 that was introduced in heroku/docker-heroku-ruby-builder#38. Both the Ruby classic buildpack and CNB are tightly coupled to this format and will attempt to download binaries from S3 with cpu architecture information on heroku-24. Once built and uploaded to S3 there should be no changes needed to the buildpack to acquire support for heroku-24 and ARM due to:
  - heroku/heroku-buildpack-ruby#1439
  - heroku/buildpacks-ruby#284

* Remove unused directory

Prior to #33 a script was generated for every Ruby version on every stack to execute docker. This is no longer needed, we can get rid of this directory.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants