Skip to content

Make rustc available to gitlab-rails `bundle install`

Stan Hu requested to merge sh-add-rust-to-gitlab-rails into master

What does this MR do?

Gems that have Rust extensions will need to have rustc available to build. This is a follow-up to !1317 (merged), which made rustc during compile-time of the Ruby interpreter.

If we want to use a Rust extension with Ruby, we'll need to install libclang-dev since rb-sys uses bindgen, which depends on clang: https://rust-lang.github.io/rust-bindgen/requirements.html. See !1342 (closed) as a test that installs a Ruby gem with a Rust extension.

No disk space impact since rustc is only used in a multi-stage build before bundle install:

Image Size
registry.gitlab.com/gitlab-org/build/cng/gitlab-rails-ee:master 1.69 GB
registry.gitlab.com/gitlab-org/build/cng/gitlab-rails-ee:sh-add-rust-to-gitlab-rails 1.69 GB
registry.gitlab.com/gitlab-org/build/cng/gitlab-rails-ee:master-ubi8 2.42 GB
registry.gitlab.com/gitlab-org/build/cng/gitlab-rails-ee:sh-add-rust-to-gitlab-rails-ubi8 2.42 GB

Related issues

Relates to gitlab-org/charts/gitlab#4307 (closed)

Checklist

See Definition of done.

For anything in this list which will not be completed, please provide a reason in the MR discussion

Required

  • Merge Request Title, and Description are up to date, accurate, and descriptive
  • MR targeting the appropriate branch
  • MR has a green pipeline on GitLab.com

Expected (please provide an explanation if not completing)

  • Test plan indicating conditions for success has been posted and passes
  • Documentation created/updated
  • Integration tests added to GitLab QA
  • The impact any change in container size has should be evaluated
Edited by Stan Hu

Merge request reports