Comments (2)
I shared my opinion in #539 (comment).
This was also done for the previous node update (12 -> 16) and there was zero reported problem.
IMO it's far more work to update hundreds of thousands workflows to @v2
when none of them actually need that (the API of the action does not change at all), the real fix is to install node20, and that's the responsibility of whoever maintains the runner. Only them can do that.
I will not do v2, because I do not have time to maintain multiple branches and then users on v1 (i.e. all current users) would not get newer Ruby versions, while they didn't do anything wrong.
They finally added it via an environment variable
ACTIONS_RUNNER_FORCED_INTERNAL_NODE_VERSION
to support both cases, see actions/runner#2844
That seems a reasonable solution if node20 cannot easily be installed on your self-hosted runners for some reason.
Of course it's not actually tested and so not officially supported but is very likely to work.
Indeed this action doesn't really care about which node version it uses, but it should also not cause deprecation warnings like in #539 (comment).
from setup-ruby.
Some more thoughts on this:
- Bumping to node20 is a seamless change for workflows using GitHub-hosted runners. In fact it even fixes a warning.
- Self-hosted runners can never be supported fully, because they can't be tested by this action and every self-hosted runner is potentially different. The docs in https://github.com/ruby/setup-ruby/blob/master/README.md#using-self-hosted-runners says: This action might work with self-hosted runners if the Runner Image is very similar to the ones used by GitHub runners. The same node version is part of that, we could add it to make it more explicit.
- It's unfortunate that action.yml cannot specify a version constraint like
node >= 12, <= 20
(AFAIK), and that one cannot test an action easily with different node versions on GitHub-hosted runners (AFAIK). I would support a request to GitHub to make this possible, and it would be a proper solution to this issue. ACTIONS_RUNNER_FORCED_INTERNAL_NODE_VERSION
is probably the best workaround until then for self-hosted runners, if they cannot reuse https://github.com/actions/runner-images to automatically keep their runner images up-to-date.- I could add a
node16
tag or so, but not sure if it helps anything? - Semantic versioning has no good solution when it comes to changes like this. A major version bump is e.g. a bad deal for workflows using GitHub-hosted runners, these users would want to still use the latest release with a compatible API (inputs, etc) like
1.x
. Maybe a 4th digit or so would make sense, likeAPIcompatibility.dependenciesVersion.newFeature.bugFix
or so.
from setup-ruby.
Related Issues (20)
- Download link is invalid for Ruby 2.5.9 on macos 13 arm64
- Ruby version should be read from Gemfile.lock by default HOT 6
- Faild in ubuntu-24.04 runner HOT 4
- Request: Support Windows on Arm64 HOT 7
- Download link is invalid for macos-latest (macos-13) with Ruby 2.5 HOT 12
- Cannot install the `actiontext` gem with Rails 7.1 and Ruby 3.1/3.2 on the Ubuntu 22.04 runner HOT 2
- Considering to move the list of ruby versions to ruby-builder HOT 3
- Are the rubies built with, or allow using, jemalloc? HOT 1
- Bundle step does not seem to respect .bundle/config files in the CWD HOT 4
- It does work with `2.2.17`, but doesn't work with `2.1.4`. I'm not going to bisect that further, but that's the fix - you need to use a more recent Bundler on Windows than you do on other platforms, and it needs to be at least I guess `2.2` or so. HOT 1
- Add jruby-9.4.8.0 to @v1 HOT 1
- Error: Unavailable version 24.0.1 for truffleruby on windows-2022 HOT 2
- Feature request: infer the ruby version from the Gemfile's `ruby` HOT 2
- Could not locate Gemfile or .bundle/ directory HOT 1
- Permissions errors on runners with Ruby preinstalled HOT 7
- Is there
- ruby-dev-builder - macOS head - use OpenSSL 3 ? HOT 4
- When action removes gempath `bin` directory it fails to re-add it later HOT 3
- How to cache manually using the cache action?
- Docs: Please specify exactly what goes inside .ruby-version
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from setup-ruby.