Skip to content

refa(devcontainer): rework to use mise for fast switching#2948

Merged
solnic merged 24 commits into
masterfrom
refa/rework-devcontainer
May 12, 2026
Merged

refa(devcontainer): rework to use mise for fast switching#2948
solnic merged 24 commits into
masterfrom
refa/rework-devcontainer

Conversation

@solnic
Copy link
Copy Markdown
Collaborator

@solnic solnic commented May 8, 2026

This rework comes with 3 nice improvements:

1. Mise for fast switching between modern ruby versions (including jruby)

The image by default ships with the latest ruby (4.0.3 at the moment), and then switching to older rubies is super easy:

➜  sentry git:(refa/rework-devcontainer) ruby -v            
ruby 4.0.3 (2026-04-21 revision 85ddef263a) +PRISM [aarch64-linux]
➜  sentry git:(refa/rework-devcontainer) mise shell ruby@3.4
ruby@3.4.9      extract ruby-3.4.9.arm64_linux.tar.gz                                                                                                    ✔
➜  sentry git:(refa/rework-devcontainer) ruby -v 
ruby 3.4.9 (2026-03-11 revision 76cca827ab) +PRISM [aarch64-linux]
➜  sentry git:(refa/rework-devcontainer) mise shell ruby@jruby
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 38.8M  100 38.8M    0     0  86.2M      0 --:--:-- --:--:-- --:--:-- 86.4M
ruby@jruby-10.1.0.0 ==> Installed jruby-10.1.0.0 to /home/sentry/.local/share/mise/installs/ruby/jruby-10.1.0.0                                          ✔
➜  sentry git:(refa/rework-devcontainer) ruby -v
jruby 10.1.0.0 (4.0.0) 2026-04-20 32f988b78c OpenJDK 64-Bit Server VM 21.0.11+10-LTS on 21.0.11+10-LTS +indy +jit [aarch64-linux]

All that in less than 20s.

For legacy Rubies, we still use dedicated dev container builds, no way around this.

2. Improved e2e spec setup in CI

Supports running against 4.x and 3.x rubies and uses pre-built images from the build_images workflow. We also no longer depend on foreman for running e2e test apps, and instead we just use mise scripts.

3. Versioned dev container images with workflow manual trigger enabled

Our build images workflow publishes versioned images based on .devcontainer/VERSION so it's easier to maintain this setup now. Especially when a topic branch is used to make some tweaks, like this very PR/branch.

@solnic solnic changed the title Refa/rework devcontainer refa(devcontainer): rework to use mise for fast switching May 11, 2026
@solnic solnic force-pushed the refa/rework-devcontainer branch from e22e805 to 41504fa Compare May 11, 2026 09:04
@solnic solnic force-pushed the refa/rework-devcontainer branch from 048daa5 to d6cd2e6 Compare May 11, 2026 09:55
@solnic solnic force-pushed the refa/rework-devcontainer branch from 9d2348d to b6e5dbd Compare May 11, 2026 11:09
@solnic solnic marked this pull request as ready for review May 11, 2026 13:21
cursor[bot]

This comment was marked as resolved.

@dingsdax dingsdax self-requested a review May 11, 2026 13:48
Copy link
Copy Markdown
Contributor

@dingsdax dingsdax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Comment thread .devcontainer/run Outdated
cursor[bot]

This comment was marked as resolved.

@solnic solnic merged commit 581c12e into master May 12, 2026
152 checks passed
@solnic solnic deleted the refa/rework-devcontainer branch May 12, 2026 07:22
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