Compare commits

..
174 Commits
Author SHA1 Message Date
ruby-builder-bot 32110d4e31 Update CRuby releases on Windows 2025-02-15 22:53:04 +01:00
ruby-builder-bot 28d088d34a Add ruby-3.4.2 2025-02-15 14:05:01 +01:00
Benoit Daloze f2f42b7848 Skip test failing on JRuby on Windows
* See https://github.com/jruby/jruby/issues/8623
2025-02-12 12:08:15 +01:00
ruby-builder-bot 5547c873c2 Add jruby-9.4.12.0 2025-02-12 12:00:14 +01:00
ruby-builder-bot d781c1b4ed Update CRuby releases on Windows 2025-02-05 22:56:33 +01:00
Benoit Daloze 8711a86ab6 Shorten to avoid horizontal scrolling 2025-02-05 11:11:17 +01:00
Marcel HoppeandBenoit Daloze ef45abe478 Add support for mise.toml (#700)
Co-authored-by: Benoit Daloze <eregontp@gmail.com>
2025-02-05 11:09:26 +01:00
ruby-builder-bot 8388f20e6a Add ruby-3.2.7 2025-02-04 20:28:28 +01:00
ruby-builder-bot 2654679fe7 Add jruby-9.4.11.0 2025-01-30 10:40:46 +01:00
ruby-builder-bot 1287d2b408 Add truffleruby-24.1.2,truffleruby+graalvm-24.1.2 2025-01-27 14:00:22 +01:00
ruby-builder-bot 84b14e9e47 Add jruby-9.4.10.0 2025-01-27 13:40:48 +01:00
Benoit Daloze 28c4deda89 ubuntu-22.04-arm64 and ubuntu-24.04-arm64 support is complete
* *-head builds just need to complete.
2025-01-18 23:43:10 +01:00
Benoit Daloze fbaef13682 Add support for ubuntu-22.04-arm64 and ubuntu-24.04-arm64 2025-01-18 23:33:18 +01:00
ruby-builder-bot f72249c5c9 Update CRuby releases on Windows 2025-01-18 22:06:31 +01:00
MSP-Greg 87b48937c9 test.yml -add windows-2025 2025-01-18 13:13:22 +01:00
MSP-Greg fd2daeae79 common.js - add windows-2025 2025-01-18 13:13:22 +01:00
MSP-Greg 1d542747a7 yarn.lock - Remove @actions/core 1.10.1, use @actions/core 1.11.1
Update index.js
2025-01-17 20:51:41 +01:00
Benoit Daloze 7a6302104f Workaround missing require 'logger' in Rails 2025-01-17 10:00:35 +01:00
Bassem Dghaidi 8e51ba9a0a Upgrade @actions/cache to 4.0.0 2025-01-17 10:00:35 +01:00
ruby-builder-bot 868b3f0884 Add ruby-3.3.7 2025-01-15 21:52:39 +01:00
ruby-builder-bot 4a9ddd6f33 Update CRuby releases on Windows 2024-12-30 20:44:12 +01:00
ruby-builder-bot bfefad842b Add ruby-3.4.0,ruby-3.4.1 2024-12-26 12:46:26 +01:00
Shizuo Fujita 540484a3c0 Fixes the latest rubygems installation error with Ruby 3.0
If set up `rubygems: latest` in workflow,
it will cause the error with Ruby 3.0 because the latest rubygems does not support Ruby 3.0.

Ref. https://rubygems.org/gems/rubygems-update

### Error message
```
Updating RubyGems
  /opt/hostedtoolcache/Ruby/3.0.7/x64/bin/gem --version
  3.2.33
  Default RubyGems version is 3.2.33
  Updating RubyGems to latest version
  /opt/hostedtoolcache/Ruby/3.0.7/x64/bin/gem update --system
  ERROR:  Error installing rubygems-update:
  	rubygems-update-3.6.1 requires Ruby version >= 3.1.0. The current ruby version is 3.0.7.220.
  ERROR:  While executing gem ... (NoMethodError)
      undefined method `version' for nil:NilClass
  Updating rubygems-update
  Took   2.86 seconds
Error: The process '/opt/hostedtoolcache/Ruby/3.0.7/x64/bin/gem' failed with exit code 1
```

### How to reproduce
```
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.0"
          rubygems: latest
```
2024-12-23 19:21:18 +01:00
ruby-builder-bot 401c19e14f Add ruby-3.4.0-rc1 2024-12-13 20:31:53 +01:00
Benoit Daloze 2a18b06812 Require macos-13+ for macos-amd64 as builds from now on will be on 13 and 12 can no longer be tested 2024-12-06 22:33:53 +01:00
Benoit Daloze 2e3487c00e No more macos-12 runners, minimum for macos-amd64 is now macos-13 2024-12-06 22:29:00 +01:00
Benoit Daloze 6825c765eb Clarify 2024-11-21 14:11:38 +01:00
Benoit Daloze 9a9fe58c47 Clarify all macOS versions from 12 are supported 2024-11-20 20:58:51 +01:00
ruby-builder-bot a2bbe5b1b2 Update CRuby releases on Windows 2024-11-09 16:33:51 +01:00
ruby-builder-bot 46ca53beb3 Update CRuby releases on Windows 2024-11-07 14:39:39 +01:00
Benoit Daloze 217c988b8c Skip which bundle test on mingw, mswin and ucrt
* See https://github.com/ruby/setup-ruby/issues/658
2024-11-05 12:06:00 +01:00
ruby-builder-bot c6d4d2ab97 Add ruby-3.3.6 2024-11-05 12:02:48 +01:00
ruby-builder-bot 8c27ea3449 Add jruby-9.4.9.0 2024-11-05 11:59:57 +01:00
ruby-builder-bot 7d3497fd78 Update CRuby releases on Windows 2024-10-31 20:40:36 +01:00
ruby-builder-bot 98aefb3c83 Add ruby-3.2.6 2024-10-30 20:46:56 +01:00
ruby-builder-bot 7bae1d00b5 Add truffleruby-24.1.1,truffleruby+graalvm-24.1.1 2024-10-17 21:33:08 +02:00
Benoit Daloze 4d521eadc8 Fix exclusion 2024-10-11 11:59:43 +02:00
Benoit Daloze 1d9686e3ef Mention the new ruby-asan under Supported Versions
* Remove the ASan Debugging section for now as it seems mostly redundant.
  Native extensions are automatically compiled with ASan, so there is nothing special to do to use it.
2024-10-11 11:58:05 +02:00
Samuel Williams bea2fb915c Add some details about using asan build. 2024-10-11 11:58:05 +02:00
Benoit Daloze f269373437 Test the last 3.4 preview in CI 2024-10-07 20:33:19 +02:00
ruby-builder-bot 784fcda67f Add ruby-3.4.0-preview2 2024-10-07 20:20:58 +02:00
Benoit Daloze f6e05710ec Update README.md 2024-10-05 20:53:31 +02:00
Benoit Daloze 207a39969b Move the link to the list together with other text about builds 2024-10-05 20:51:36 +02:00
Samuel Williams 086ffb1a20 Update the dist/index.js. 2024-10-05 20:46:21 +02:00
Samuel Williams 27ceac8081 Add asan to the test matrix. 2024-10-05 20:46:21 +02:00
Samuel Williams aac0c64812 Add asan as a head version of Ruby. 2024-10-05 20:46:21 +02:00
Samuel Williams 727fd4feab Update ruby-builder-versions.json 2024-10-05 20:46:21 +02:00
Stavros Ntentos 79c01b8847 README.md: Mention link to supported Ruby versions for GitHub-hosted runners
Fixes https://github.com/ruby/setup-ruby/issues/650

Signed-off-by: Stavros Ntentos <133706+stdedos@users.noreply.github.com>
2024-10-02 22:26:31 +02:00
Benoit Daloze c04af2bb72 Replace macos-release by (parseInt(os.version()) - 9)
* That way we don't need to update that dependency to work with newer macOS releases.
2024-09-25 22:01:07 +02:00
Benoit Daloze 17f5c914a0 Add support for macos-15 and all future macos runners
* Fixes https://github.com/ruby/setup-ruby/issues/647
2024-09-25 22:00:58 +02:00
Benoit Daloze 5496baa6db Update macos-release to 3.3.0 so it recognizes macos-15 2024-09-25 21:40:23 +02:00
Benoit Daloze 0ec4904dc7 Better error for TruffleRuby on Windows
* Fixes https://github.com/ruby/setup-ruby/issues/619
2024-09-25 21:02:29 +02:00
ruby-builder-bot f321cf5a4d Add truffleruby-24.1.0,truffleruby+graalvm-24.1.0 2024-09-17 16:56:52 +02:00
MSP-Greg 6af8267b44 README.md - Windows - clarify installed packages, 2022 vs 2019 2024-09-16 22:18:39 +02:00
ruby-builder-bot a6b46b8a08 Update CRuby releases on Windows 2024-09-16 15:52:34 +02:00
ruby-builder-bot 52753b7da8 Add ruby-3.3.5 2024-09-03 21:45:07 +02:00
ruby-builder-bot a6e6f86333 Update CRuby releases on Windows 2024-07-27 15:01:55 +02:00
ruby-builder-bot bc2ba926aa Add ruby-3.2.5 2024-07-27 13:22:02 +02:00
Rui Chen 371544706a docs: update ruby-version comment 2024-07-24 23:02:41 +02:00
ruby-builder-bot 50ba3386b0 Add truffleruby-24.0.2,truffleruby+graalvm-24.0.2 2024-07-22 13:01:40 +02:00
ruby-builder-bot 161cd54b69 Update CRuby releases on Windows 2024-07-10 23:01:53 +02:00
ruby-builder-bot 2a9a743e19 Add ruby-3.3.4 2024-07-09 17:13:03 +02:00
Benoit Daloze 3a77c29278 Fix updating the v1 branch on automated releases
* Fixes https://github.com/ruby/setup-ruby/issues/618
2024-07-06 11:54:45 +02:00
Hiroshi SHIBATA 382d786c8a Removed macos-arm-oss from GitHub Actions 2024-07-05 12:11:07 +02:00
ruby-builder-bot 97e35c5302 Add jruby-9.4.8.0 2024-07-03 10:42:25 +02:00
Benoit Daloze 1d0e911f61 Fully remove macos-11 since new builds will be on macos-12 2024-06-30 12:49:37 +02:00
Benoit Daloze c48bc1e88d macos-11 is no longer available 2024-06-30 12:41:55 +02:00
Benoit Daloze 713e0f1ab5 Update CONTRIBUTING.md 2024-06-27 15:46:14 +02:00
Benoit Daloze af43264f2b GH_REPO and GH_TOKEN must be set 2024-06-27 15:41:42 +02:00
Benoit Daloze 3251c5c21b Add workflow to automatically create a release 2024-06-27 15:23:12 +02:00
ruby-builder-bot 21a479f2d7 Add jruby-9.3.15.0 2024-06-27 15:01:18 +02:00
ruby-builder-bot 3783f195e2 Update CRuby releases on Windows 2024-06-17 20:49:34 +02:00
ruby-builder-bot ff740bc00a Add ruby-3.3.3 2024-06-12 11:56:31 +02:00
Benoit Daloze 78c01b705f Improve error message for CRuby < 2.6 on macos-arm64
* Is this the best error message ever?
2024-06-08 13:39:56 +02:00
ruby-builder-bot d5fb7a202f Update CRuby releases on Windows 2024-06-03 12:03:15 +02:00
Benoit Daloze 0cde4689ba Clearer 2024-05-30 15:10:04 +02:00
Benoit Daloze a56d16ef33 Refine errors text 2024-05-30 15:06:36 +02:00
Benoit Daloze 12dfa2bb47 Better error for 404 2024-05-30 15:01:16 +02:00
Benoit Daloze 68b705993a Fix condition 2024-05-30 14:47:21 +02:00
Benoit Daloze d046db60e3 Fail clearly for CRuby < 2.6 on macos-arm64 2024-05-30 14:41:43 +02:00
Benoit Daloze d4138ebc47 Do not validate the version for self-hosted 2024-05-30 14:41:31 +02:00
Benoit Daloze 049eae0450 Remove trailing space 2024-05-30 12:56:58 +02:00
ruby-builder-bot ff22bbb25f Add ruby-3.1.6,ruby-3.3.2 2024-05-30 12:29:44 +02:00
Benoit Daloze 943103cae7 Use downloadAndExtract() for truffleruby+graalvm too
* Simpler and more consistent that way.
* Avoids rerunning the post-install hook every time.
2024-05-22 00:08:22 +09:00
Kenichi Kamiya 7dc18ff0ca Exclude ruby 1.9 and 2.2 test for ubuntu-24.04
https://github.com/ruby/setup-ruby/pull/596#discussion_r1606047680
2024-05-20 17:46:39 +08:00
Kenichi Kamiya 00a1085dff Update README about ubuntu-24.04 2024-05-20 17:46:39 +08:00
Kenichi Kamiya 868b8c0873 Test against ubuntu-24.04 runner 2024-05-20 17:46:39 +08:00
Kenichi Kamiya 4f20bb7102 Support ubuntu-24.04-x64 2024-05-20 17:46:39 +08:00
ruby-builder-bot 6615b4b8a0 Add ruby-3.4.0-preview1 2024-05-17 16:58:23 +09:00
Benoit Daloze 82dd21cb95 Remove leftover test files
* The corresponding tests were removed in e16528e678.
  They could be re-added but should generate these files dynamically to avoid confusion.
2024-05-06 19:16:43 +02:00
ruby-builder-bot cacc9f1c0b Add jruby-9.4.7.0 2024-05-03 12:07:05 +02:00
ruby-builder-bot 1198b07430 Update CRuby releases on Windows 2024-04-26 11:20:31 +02:00
ruby-builder-bot 70da3bbf44 Add ruby-3.0.7,ruby-3.1.5,ruby-3.2.4,ruby-3.3.1 2024-04-23 18:56:06 +02:00
ruby-builder-bot 6bd3d993c6 Add truffleruby-24.0.1,truffleruby+graalvm-24.0.1 2024-04-16 18:16:08 +02:00
ruby-builder-bot 5f19ec79ce Add truffleruby-24.0.0,truffleruby+graalvm-24.0.0 2024-03-19 17:12:25 +01:00
ruby-builder-bot d4526a5553 Add jruby-9.3.14.0,jruby-9.4.6.0 2024-02-21 11:49:15 +01:00
Benoit Daloze e9d41d6cc1 Added dependabot for GitHub Actions 2024-02-17 12:27:49 +01:00
Benoit Daloze 22fdc77bf4 Clarify comment in test.yml 2024-01-31 16:00:45 +01:00
なつき 98f8f7e659 Update README.md 2024-01-31 15:57:37 +01:00
なつき 56dbe84af1 Add support for macos-14-x64 GitHub runners 2024-01-31 15:57:37 +01:00
なつき e8677f0f39 Add support for macos-14-arm64 GitHub runners 2024-01-31 15:57:37 +01:00
Ståle Storø Hauknes 7f2d473c10 Update url 2024-01-31 12:20:18 +01:00
Benoit Daloze bd03e04863 Test 3.3 on Windows 2024-01-25 17:18:05 +01:00
ruby-builder-bot 9c6c84224a Update CRuby releases on Windows 2024-01-25 17:17:32 +01:00
Benoit Daloze 5daca16544 Remove default in action.yml for windows-toolchain
* Otherwise it shows up in every usage of the action even if not set.
* Consistent with other non-required inputs.
2024-01-22 11:08:37 +01:00
MSP-Greg 558057564b Add windows-toolchain input 2024-01-22 11:07:31 +01:00
ruby-builder-bot 432702e864 Add ruby-3.2.3 2024-01-19 11:31:38 +01:00
Benoit Daloze b203567269 Workaround bug in XCode 14.2 linker not respecting RTLD_LAZY
* See https://github.com/oracle/truffleruby/issues/3390
2024-01-16 16:42:00 +01:00
ruby-builder-bot c6e5aea595 Add truffleruby-23.1.2,truffleruby+graalvm-23.1.2 2024-01-16 16:21:06 +01:00
Benoit Daloze 360dc864d5 Shorten job title to fit in GH UI 2023-12-28 12:21:45 +01:00
MSP-Greg 251b9047a8 Fixup rubygems: latest to work with Rubies < 2.3 2023-12-28 13:20:54 +02:00
Benoit Daloze 961f85197f Rename workflow and variable for clarity 2023-12-27 20:27:45 +01:00
MSP-Greg 28f930222f Fixup Rubygems latest 2023-12-27 21:23:02 +02:00
ruby-builder-bot df99e806d4 Update CRuby releases on Windows 2023-12-27 15:38:49 +02:00
m-nakamura145 ff4c96868c Update sample ruby version in README.md 2023-12-27 15:37:28 +02:00
ruby-builder-bot b256bd96bb Add ruby-3.3.0 2023-12-25 21:48:06 +01:00
ruby-builder-bot af848b40be Add ruby-3.3.0-rc1 2023-12-11 16:12:18 +01:00
ruby-builder-bot 8575951200 Add ruby-3.3.0-preview3 2023-11-13 16:01:45 +01:00
Benoit Daloze 036ef458dd Explicitly exit after this action runs to not wait for hanging promises
* See https://github.com/ruby/setup-ruby/issues/543
2023-11-07 19:05:04 +01:00
ruby-builder-bot 552f83fe52 Add jruby-9.3.13.0,jruby-9.4.5.0 2023-11-07 18:53:58 +01:00
Róbert Papp 54a18e26db Update deprecated Node 16 to 20 2023-10-26 15:25:49 +02:00
ruby-builder-bot cd48c8e227 Add truffleruby-23.1.1,truffleruby+graalvm-23.1.1 2023-10-25 12:21:54 +02:00
Benoit Daloze a05e47355e Java is now available on macos-arm-oss 2023-10-21 12:52:54 +02:00
ruby-builder-bot eba3a0f992 Add jruby-9.4.4.0 2023-10-21 12:48:45 +02:00
Benoit Daloze 679e23d4a3 Improve documentation about the self-hosted input
* Fixes https://github.com/ruby/setup-ruby/issues/535
2023-10-12 13:33:38 +02:00
Benoit Daloze 9f4cc09ff9 3.1 is now available on macos-arm64 2023-10-12 12:54:54 +02:00
Benoit Daloze 4d745286b4 Cleanup 2023-10-12 01:43:00 +02:00
Benoit Daloze 5cfe23c062 Add support for macos-13-arm64 GitHub runners 2023-10-11 18:58:56 +02:00
Benoit Daloze f887fb3d0e Update versions-strings-for-builder.rb 2023-10-11 18:52:53 +02:00
Benoit Daloze b1c3bf6751 Rename getVirtualEnvironmentName() to getOSNameVersion() for clarity 2023-10-11 18:52:53 +02:00
r7kamura d37167af45 Consider BUNDLE_ONLY in cache key 2023-10-08 11:45:20 +02:00
ruby-builder-bot 52b8784594 Add truffleruby-23.1.0,truffleruby+graalvm-23.1.0 2023-09-19 16:13:37 +02:00
Benoit Daloze 9aede54d98 Exclude known failing combination
* See https://github.com/ruby/setup-ruby/issues/496
2023-09-19 12:28:45 +02:00
Benoit Daloze 24a61db157 yarn upgrade 2023-09-19 12:26:46 +02:00
ruby-builder-bot 5311f05890 Add jruby-9.3.11.0 2023-09-14 12:36:28 +02:00
ruby-builder-bot cb3f1e45ed Add ruby-3.3.0-preview2 2023-09-14 12:34:53 +02:00
Lorenzo Zabot 4f1c6a74a7 Update actions/checkout to v4 2023-09-06 11:47:06 +02:00
Rotzbua b252db7f27 Update ruby version in README.md
Use current ruby version in examples.
2023-08-23 13:20:36 +02:00
ruby-builder-bot 250fcd6a74 Add truffleruby-23.0.0,truffleruby+graalvm-23.0.0 2023-06-14 11:28:44 +02:00
ruby-builder-bot bc1dd263b6 Add jruby-9.4.3.0 2023-06-08 11:15:41 +02:00
MSP-Greg 8a45918450 Update 'setup-ruby-bundler-cache-v5' to 'setup-ruby-bundler-cache-v6'
Needed to allow cache save when lock file hash is unchanged
2023-05-20 15:09:49 +02:00
MSP-Greg 92a3389c13 Fix cache with @actions/cache 2023-05-20 15:09:49 +02:00
Benoit Daloze 7d546f4868 Test 3.3 preview 2023-05-14 14:27:22 +02:00
ruby-builder-bot 4e64415f09 Add ruby-3.3.0-preview1 2023-05-14 14:27:22 +02:00
Benoit Daloze d2b39ad0b5 Consider truffleruby preview releases to be stable versions 2023-04-28 17:06:17 +02:00
ruby-builder-bot e939497f6f Add truffleruby-23.0.0-preview1,truffleruby+graalvm-23.0.0-preview1 2023-04-28 17:01:21 +02:00
Benoit Daloze 6cecb48364 Use ubuntu-20.04 for test using Ruby 2.2
* https://github.com/ruby/setup-ruby/issues/496#issuecomment-1520667671
2023-04-24 22:02:59 +02:00
Dan Federman 4d88f85d08 Add support for macos-13 (#501) 2023-04-24 21:44:28 +02:00
ruby-builder-bot 55283cc231 Update CRuby releases on Windows 2023-04-04 17:55:30 +08:00
ruby-builder-bot 904f3fef85 Add ruby-2.7.8,ruby-3.0.6,ruby-3.1.4,ruby-3.2.2 2023-03-31 23:32:47 +08:00
MSP-Greg ec02537da5 Lock @actions/cache to 3.0.6, later versions break bundler caching 2023-03-20 16:55:33 +01:00
Benoit Daloze 089557fc38 Require a public workflow run URL for issues 2023-03-20 16:52:53 +01:00
MSP-Greg e6689b4deb Update yarn.lock, remove Windows mswin ssl cert related code 2023-03-16 18:55:42 +01:00
ruby-builder-bot 9669f3ee51 Add jruby-9.4.2.0 2023-03-09 22:37:36 +01:00
Benoit Daloze 31a7f6d628 No longer remove the prefix before extraction, extracting should be idempotent
* Fixes https://github.com/ruby/setup-ruby/issues/191
2023-03-05 15:39:16 +01:00
Benoit Daloze 59b5745c73 Use tc.find() with the effective tool cache path
* So it finds already-download prebuilt Ruby in the GH-hosted tool cache path
  on self-hosted, where $RUNNER_TOOL_CACHE is often different than on GH-hosted.
* See #475.
* This relies on tc.find() looking up the env var every time:
  https://github.com/actions/toolkit/blob/1f4b3fac06/packages/tool-cache/src/tool-cache.ts#L522
2023-03-05 14:56:02 +01:00
Benoit Daloze d03a71de6e Fix tc.find() calls to use the proper name on self-hosted 2023-03-05 14:56:02 +01:00
Benoit Daloze ddde3938f5 Use the default tool cache path on self-hosted runners matching a GH-hosted runner image
* See https://github.com/ruby/setup-ruby/issues/475
* Semantically reverts 377a94bc68
2023-03-05 14:56:02 +01:00
Benoit Daloze 5a73aa9f67 Explain why it was detected as self-hosted 2023-03-03 18:01:46 +01:00
Benoit Daloze d01c52ad8b Add a self-hosted input to force considering the current runner as self-hosted
* Since checking for self-hosted is based on guessing as there is
  no proper predicate for it in GitHub Actions (AFAIK).
2023-03-03 18:01:46 +01:00
Benoit Daloze 377a94bc68 Consider a different $RUNNER_TOOL_CACHE than the default as a self-hosted runner
* Fixes https://github.com/ruby/setup-ruby/issues/242
2023-03-03 18:01:46 +01:00
Benoit Daloze 66dc012cc3 Detect self-hosted runners not matching a GitHub-hosted runner image
* And give instructions for that case.
* Get the OS and OS version ourselves since some users set ImageOS incorrectly.
* This partially reverts commit ad1ebae995.
2023-03-03 16:33:57 +01:00
Benoit Daloze 2789f85824 Update bug_report.yml 2023-03-03 13:39:36 +01:00
Benoit Daloze fbb865d04d Update bug_report.yml 2023-03-03 13:36:11 +01:00
Benoit Daloze 96ac949ea0 Update bug_report.yml 2023-03-03 13:33:53 +01:00
Hiroshi SHIBATA 92aece5fc9 Also removed deprecated ubuntu-18.04 2023-02-27 19:56:46 +01:00
Hiroshi SHIBATA db791aad7b Removed macos-10.15 because it will be removed at 2023-03-31 2023-02-27 19:56:46 +01:00
ruby-builder-bot d3c9825d67 Update CRuby releases on Windows 2023-02-14 18:20:01 +01:00
Benoit Daloze f60ef1e808 Include working directory, $BUNDLE_WITH and $BUNDLE_WITHOUT in cache key
* Fixes https://github.com/ruby/setup-ruby/issues/350
* Fixes https://github.com/ruby/setup-ruby/issues/176
2023-02-11 14:17:29 +01:00
Benoit Daloze bc4e585e26 Don't show timing on error for clearer error output 2023-02-11 13:48:39 +01:00
Benoit Daloze 2cf593d66b Don't group bundle install output
* So any error from Bundler is immediately shown.
* Some users do not realize they should expand the group apparently.
2023-02-11 13:45:25 +01:00
Benoit Daloze a26e1fb6b3 Do not show a stacktrace if a process failed, only the message
* The stacktrace is confusing and rarely useful in that case.
2023-02-11 13:39:22 +01:00
ruby-builder-bot 4d060a10e6 Add ruby-3.2.1 2023-02-09 18:20:44 +00:00
ruby-builder-bot 77fe3b48b7 Add jruby-9.4.1.0 2023-02-08 10:26:25 +00:00
23 changed files with 13013 additions and 6409 deletions
+7 -14
View File
@@ -3,7 +3,12 @@ description: Create a report to help us improve
body: body:
- type: markdown - type: markdown
attributes: attributes:
value: Please note we will close your issue without comment if you do not fill out the requested information. value: |
First, take some time to think whether this is really an issue of ruby/setup-ruby and whether it is fixable in this action.
This action basically just downloads a prebuilt Ruby and adds it to `PATH`, so it is unlikely the bug is in this action.
Give some thoughts whether it could be an issue in your workflow, in the gems you use, in GitHub Actions, in Ruby, RubyGems, Bundler, etc.
This is NOT the place to ask help about your workflow failing (ask that on [GitHub Community](https://github.com/orgs/community/discussions/categories/actions) or [Discussions](https://github.com/ruby/setup-ruby/discussions) instead), it is only to report issues about ruby/setup-ruby.
Please note we will close your issue without comment if you do not fill out the requested information.
- type: checkboxes - type: checkboxes
attributes: attributes:
label: Ensure the following before filing this issue label: Ensure the following before filing this issue
@@ -26,21 +31,9 @@ body:
- self-hosted runner - self-hosted runner
validations: validations:
required: true required: true
- type: textarea
attributes:
render: yaml
label: The workflow code or a link to the workflow file
validations:
required: true
- type: input - type: input
attributes: attributes:
label: Link to the log of a failed workflow job, or to a gist with the output label: Link to the failed workflow job (must be a public workflow job, so the necessary information is available)
validations:
required: true
- type: textarea
attributes:
render: shell
label: The command and output of the failing step
validations: validations:
required: true required: true
- type: textarea - type: textarea
+6
View File
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
+14 -7
View File
@@ -1,17 +1,24 @@
name: Update the v1 branch when a release is published name: Create a Release
on: on:
release: workflow_dispatch:
types: [published]
permissions: permissions:
contents: read contents: write # for creating release
jobs: jobs:
release: release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: env:
contents: write # for git push GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
- uses: ./
with:
ruby-version: '3.3'
- run: ruby release.rb
# The same as the update-v1-branch.yml workflow.
# That workflow is not triggered by the release created above because of
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow
- run: git push origin HEAD:v1 - run: git push origin HEAD:v1
+101 -30
View File
@@ -17,9 +17,9 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-18.04, ubuntu-20.04, ubuntu-22.04, macos-10.15, macos-11, macos-12, windows-2019, windows-2022 ] os: [ ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, ubuntu-22.04-arm, ubuntu-24.04-arm, macos-13, macos-14, macos-15, windows-2019, windows-2022, windows-2025 ]
ruby: [ ruby: [
'1.9', '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', ruby-head, '1.9', '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4', ruby-head,
jruby, jruby-head, jruby, jruby-head,
truffleruby, truffleruby-head, truffleruby, truffleruby-head,
truffleruby+graalvm, truffleruby+graalvm-head truffleruby+graalvm, truffleruby+graalvm-head
@@ -30,24 +30,63 @@ jobs:
- { os: windows-2022, ruby: mingw } - { os: windows-2022, ruby: mingw }
- { os: windows-2022, ruby: mswin } - { os: windows-2022, ruby: mswin }
- { os: windows-2022, ruby: ucrt } - { os: windows-2022, ruby: ucrt }
- { os: windows-2025, ruby: mingw }
- { os: windows-2025, ruby: mswin }
- { os: windows-2025, ruby: ucrt }
- { os: ubuntu-24.04, ruby: asan }
exclude: exclude:
# https://github.com/ruby/setup-ruby/issues/496
- { os: ubuntu-22.04, ruby: '2.2' }
- { os: ubuntu-24.04, ruby: '1.9' }
- { os: ubuntu-24.04, ruby: '2.2' }
# These old Rubies fail to compile on macOS arm64
- { os: macos-14, ruby: '1.9' }
- { os: macos-14, ruby: '2.0' }
- { os: macos-14, ruby: '2.1' }
- { os: macos-14, ruby: '2.2' }
- { os: macos-14, ruby: '2.3' }
- { os: macos-14, ruby: '2.4' }
- { os: macos-14, ruby: '2.5' }
- { os: macos-15, ruby: '1.9' }
- { os: macos-15, ruby: '2.0' }
- { os: macos-15, ruby: '2.1' }
- { os: macos-15, ruby: '2.2' }
- { os: macos-15, ruby: '2.3' }
- { os: macos-15, ruby: '2.4' }
- { os: macos-15, ruby: '2.5' }
# These old Rubies fail to compile or segfault on Linux arm64
- { os: ubuntu-22.04-arm, ruby: '1.9' }
- { os: ubuntu-22.04-arm, ruby: '2.0' }
- { os: ubuntu-22.04-arm, ruby: '2.1' }
- { os: ubuntu-22.04-arm, ruby: '2.2' }
- { os: ubuntu-24.04-arm, ruby: '1.9' }
- { os: ubuntu-24.04-arm, ruby: '2.0' }
- { os: ubuntu-24.04-arm, ruby: '2.1' }
- { os: ubuntu-24.04-arm, ruby: '2.2' }
# Windows (note: previews are not available on Windows)
- { os: windows-2019, ruby: '1.9' } - { os: windows-2019, ruby: '1.9' }
- { os: windows-2019, ruby: debug }
- { os: windows-2019, ruby: truffleruby }
- { os: windows-2019, ruby: truffleruby-head }
- { os: windows-2019, ruby: truffleruby+graalvm }
- { os: windows-2019, ruby: truffleruby+graalvm-head }
- { os: windows-2022, ruby: '1.9' } - { os: windows-2022, ruby: '1.9' }
- { os: windows-2025, ruby: '1.9' }
- { os: windows-2019, ruby: debug }
- { os: windows-2022, ruby: debug } - { os: windows-2022, ruby: debug }
- { os: windows-2025, ruby: debug }
- { os: windows-2019, ruby: truffleruby }
- { os: windows-2022, ruby: truffleruby } - { os: windows-2022, ruby: truffleruby }
- { os: windows-2025, ruby: truffleruby }
- { os: windows-2019, ruby: truffleruby-head }
- { os: windows-2022, ruby: truffleruby-head } - { os: windows-2022, ruby: truffleruby-head }
- { os: windows-2025, ruby: truffleruby-head }
- { os: windows-2019, ruby: truffleruby+graalvm }
- { os: windows-2022, ruby: truffleruby+graalvm } - { os: windows-2022, ruby: truffleruby+graalvm }
- { os: windows-2025, ruby: truffleruby+graalvm }
- { os: windows-2019, ruby: truffleruby+graalvm-head }
- { os: windows-2022, ruby: truffleruby+graalvm-head } - { os: windows-2022, ruby: truffleruby+graalvm-head }
- { os: windows-2025, ruby: truffleruby+graalvm-head }
name: ${{ matrix.os }} ${{ matrix.ruby }} name: ${{ matrix.os }} ${{ matrix.ruby }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
@@ -120,9 +159,14 @@ jobs:
env: env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/gem_from_github.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/gem_from_github.gemfile
- name: which ruby, bundle - name: which ruby
shell: bash shell: bash
run: which -a ruby bundle run: which -a ruby
- name: which bundle
shell: bash
run: which -a bundle
# https://github.com/ruby/setup-ruby/issues/658
if: "matrix.ruby != 'mingw' && matrix.ruby != 'mswin' && matrix.ruby != 'ucrt'"
- name: which rake - name: which rake
run: which -a rake run: which -a rake
if: "!startsWith(matrix.os, 'windows')" if: "!startsWith(matrix.os, 'windows')"
@@ -141,14 +185,15 @@ jobs:
shell: bash shell: bash
run: echo ~ && bundle install run: echo ~ && bundle install
- name: Windows JRuby - name: Windows JRuby
if: startsWith(matrix.os, 'windows') && startsWith(matrix.ruby, 'jruby') # Should be startsWith(matrix.ruby, 'jruby') but broken on jruby-head: https://github.com/jruby/jruby/issues/8623
if: startsWith(matrix.os, 'windows') && matrix.ruby == 'jruby'
run: gem install sassc run: gem install sassc
testNoGemfile: testNoGemfile:
name: "Test with no Gemfile" name: "Test with no Gemfile"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- run: rm Gemfile - run: rm Gemfile
- uses: ./ - uses: ./
with: with:
@@ -156,21 +201,32 @@ jobs:
- run: ruby -v - run: ruby -v
testLatestRubygemsVersion: testLatestRubygemsVersion:
name: "Test rubygems: latest upgrades the default RubyGems version" name: "Test rubygems: latest on ${{ matrix.ruby }}"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- { ruby: '3.2', expected_rubygems_version: '3.6.1' }
- { ruby: '3.0', expected_rubygems_version: '3.5.23' }
- { ruby: '2.7', expected_rubygems_version: '3.4.22' }
- { ruby: '2.6', expected_rubygems_version: '3.4.22' }
- { ruby: '2.5', expected_rubygems_version: '3.3.27' }
- { ruby: '2.3', expected_rubygems_version: '3.3.27' }
- { ruby: '2.0', expected_rubygems_version: '2.7.11' }
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.6' ruby-version: ${{ matrix.ruby }}
rubygems: latest rubygems: latest
- run: ruby -e "exit(Gem.rubygems_version > Gem::Version.new('3.0.3'))" - run: ruby -e 'puts Gem::VERSION; exit(Gem.rubygems_version >= Gem::Version.new("${{ matrix.expected_rubygems_version }}"))'
testFixedRubygemsVersionUpgrades: testFixedRubygemsVersionUpgrades:
name: "Test rubygems: version upgrades RubyGems to that version if the default is older" name: "Test rubygems: version upgrades RubyGems to that version if the default is older"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.6' ruby-version: '2.6'
@@ -181,7 +237,7 @@ jobs:
name: "Test rubygems: version noops if the default is newer" name: "Test rubygems: version noops if the default is newer"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '3.1.0' ruby-version: '3.1.0'
@@ -192,7 +248,7 @@ jobs:
name: "Test rubygems: version uses the Bundler installed by the rubygems update" name: "Test rubygems: version uses the Bundler installed by the rubygems update"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '3.1.0' ruby-version: '3.1.0'
@@ -202,9 +258,9 @@ jobs:
testFixedBundlerVersionForOldRuby: testFixedBundlerVersionForOldRuby:
name: "Test bundler: 1.x for old Ruby" name: "Test bundler: 1.x for old Ruby"
runs-on: ubuntu-latest runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.2' ruby-version: '2.2'
@@ -215,7 +271,7 @@ jobs:
name: "Test with a major Bundler version" name: "Test with a major Bundler version"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.6' ruby-version: '2.6'
@@ -226,7 +282,7 @@ jobs:
name: "Test with a minor Bundler version" name: "Test with a minor Bundler version"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.6' ruby-version: '2.6'
@@ -237,7 +293,7 @@ jobs:
name: "Test with an exact Bundler version" name: "Test with an exact Bundler version"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.6' ruby-version: '2.6'
@@ -248,7 +304,7 @@ jobs:
name: "Test with a Bundler pre/rc version" name: "Test with a Bundler pre/rc version"
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.6' ruby-version: '2.6'
@@ -261,7 +317,7 @@ jobs:
env: env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler-dev.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler-dev.gemfile
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: ruby-head ruby-version: ruby-head
@@ -273,7 +329,7 @@ jobs:
env: env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.7' ruby-version: '2.7'
@@ -291,12 +347,14 @@ jobs:
env: env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: '2.6' ruby-version: '2.6'
bundler-cache: true bundler-cache: true
- run: bundle exec rails --version - run: bundle exec rails --version
env:
RUBYOPT: '-rlogger' # Rails 6 is missing a require 'logger' in active_support/logger_thread_safe_level.rb
testTruffleRubyNokogiri: testTruffleRubyNokogiri:
name: "Test installing a Gemfile with nokogiri on TruffleRuby" name: "Test installing a Gemfile with nokogiri on TruffleRuby"
@@ -304,17 +362,30 @@ jobs:
env: env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ./ - uses: ./
with: with:
ruby-version: truffleruby-head ruby-version: truffleruby-head
bundler-cache: true bundler-cache: true
- run: bundle list | grep nokogiri - run: bundle list | grep nokogiri
testWindowsToolchain:
name: "Test windows-toolchain: none"
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: ./
with:
ruby-version: '2.7'
windows-toolchain: none
bundler: none
- name: C:/msys64/mingw64/bin/gcc.exe not installed
run: ruby -e "abort if File.exist?('C:/msys64/mingw64/bin/gcc.exe')"
lint: lint:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- run: yarn install - run: yarn install
- run: yarn run package - run: yarn run package
- name: Check generated files are up to date - name: Check generated files are up to date
+15
View File
@@ -0,0 +1,15 @@
name: Update the v1 branch when a release is published manually
on:
release:
types: [published]
permissions:
contents: write # for git push
jobs:
update_branch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- run: git push origin HEAD:v1
-1
View File
@@ -1 +0,0 @@
ruby-2.6.5
-2
View File
@@ -1,2 +0,0 @@
nodejs 16.0.0
ruby 2.7.0
+4
View File
@@ -24,3 +24,7 @@ $ cp pre-commit .git/hooks/pre-commit
This is entirely automated now since [this issue](https://github.com/ruby/setup-ruby/issues/254). This is entirely automated now since [this issue](https://github.com/ruby/setup-ruby/issues/254).
If you do not see a new version more than 24 hours after it was released feel free to file an issue. If you do not see a new version more than 24 hours after it was released feel free to file an issue.
## Release
Maintainers can create a release automatically by running [this workflow](https://github.com/ruby/setup-ruby/actions/workflows/release.yml).
+31 -23
View File
@@ -15,12 +15,16 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
| Interpreter | Versions | | Interpreter | Versions |
| ----------- | -------- | | ----------- | -------- |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.2.0, head, debug, mingw, mswin, ucrt | | `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.4.2, head, debug, mingw, mswin, ucrt |
| `jruby` | 9.1.17.0 - 9.4.0.0, head | | `jruby` | 9.1.17.0 - 9.4.12.0, head |
| `truffleruby` | 19.3.0 - 22.3.1, head | | `truffleruby` | 19.3.0 - 24.1.2, head |
| `truffleruby+graalvm` | 21.2.0 - 22.3.1, head | | `truffleruby+graalvm` | 21.2.0 - 24.1.2, head |
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`). `ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
`ruby-asan` is the same as `ruby-head` but with AddressSanitizer (ASan) enabled, helpful for finding memory issues in native extensions.
Native extensions are automatically compiled with AddressSanitizer when using `ruby-asan`.
`ruby-asan` is currently only available on `ubuntu-24.04`.
Regarding Windows ruby master builds, `mingw` is a MSYS2/MinGW build, `head` & `ucrt` are MSYS2/UCRT64 Regarding Windows ruby master builds, `mingw` is a MSYS2/MinGW build, `head` & `ucrt` are MSYS2/UCRT64
builds, and `mswin` is a MSVC/VS 2022 build. builds, and `mswin` is a MSVC/VS 2022 build.
@@ -38,12 +42,12 @@ which means Ruby ≤ 2.4 is unmaintained and considered insecure.
### Supported Platforms ### Supported Platforms
The action works on these [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) images. Runner images not listed below are not supported yet. `$OS-latest` just alias to one of these images. The action works on these [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) images. Runner images not listed below are not supported yet. `$OS-latest` just alias to one of these images.
| Operating System | Supported | | Operating System | Supported |
| ---------------- | --------- | | ---------------- | --------- |
| Ubuntu | `ubuntu-18.04`, `ubuntu-20.04`, `ubuntu-22.04` | | Ubuntu | `ubuntu-20.04`, `ubuntu-22.04`, `ubuntu-24.04`, `ubuntu-22.04-arm`, `ubuntu-24.04-arm` |
| macOS | `macos-10.15`, `macos-11`, `macos-12` | | macOS | `macos-13` and newer versions |
| Windows | `windows-2019`, `windows-2022` | | Windows | `windows-2019`, `windows-2022` |
The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder) The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder)
@@ -51,10 +55,10 @@ and on Windows by [RubyInstaller2](https://github.com/oneclick/rubyinstaller2).
The `mingw`, `ucrt` and `mswin` builds are generated by [ruby-loco](https://github.com/MSP-Greg/ruby-loco). The `mingw`, `ucrt` and `mswin` builds are generated by [ruby-loco](https://github.com/MSP-Greg/ruby-loco).
`ruby-head` is generated by [ruby-dev-builder](https://github.com/ruby/ruby-dev-builder), `ruby-head` is generated by [ruby-dev-builder](https://github.com/ruby/ruby-dev-builder),
`jruby-head` is generated by [jruby-dev-builder](https://github.com/ruby/jruby-dev-builder), `jruby-head` is generated by [jruby-dev-builder](https://github.com/ruby/jruby-dev-builder),
`truffleruby-head` is generated by [truffleruby-dev-builder](https://github.com/ruby/truffleruby-dev-builder) `truffleruby-head` and `truffleruby+graalvm-head` are generated by [truffleruby-dev-builder](https://github.com/ruby/truffleruby-dev-builder).
and `truffleruby+graalvm` is generated by [graalvm-ce-dev-builds](https://github.com/graalvm/graalvm-ce-dev-builds). The full list of available Ruby versions can be seen in [ruby-builder-versions.json](ruby-builder-versions.json) for Ubuntu and macOS
The full list of available Ruby versions can be seen in [ruby-builder-versions.json](ruby-builder-versions.json) (although some combinations are not available, see [the full list](https://github.com/ruby/ruby-builder/releases/tag/toolcache))
for Ubuntu and macOS and in [windows-versions.json](windows-versions.json) for Windows. and in [windows-versions.json](windows-versions.json) for Windows.
## Usage ## Usage
@@ -67,10 +71,10 @@ jobs:
test: test:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@v1
with: with:
ruby-version: '3.0' # Not needed with a .ruby-version file ruby-version: '3.3' # Not needed with a .ruby-version, .tool-versions or mise.toml
bundler-cache: true # runs 'bundle install' and caches installed gems automatically bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- run: bundle exec rake - run: bundle exec rake
``` ```
@@ -89,10 +93,10 @@ jobs:
matrix: matrix:
os: [ubuntu-latest, macos-latest] os: [ubuntu-latest, macos-latest]
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0' # Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
ruby: ['2.7', '3.0', '3.1', head, jruby, jruby-head, truffleruby, truffleruby-head] ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', head, jruby, jruby-head, truffleruby, truffleruby-head]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@v1
with: with:
ruby-version: ${{ matrix.ruby }} ruby-version: ${{ matrix.ruby }}
@@ -115,10 +119,10 @@ jobs:
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@v1
with: with:
ruby-version: '3.0' ruby-version: '3.3'
bundler-cache: true # runs 'bundle install' and caches installed gems automatically bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- run: bundle exec rake - run: bundle exec rake
``` ```
@@ -135,11 +139,12 @@ and the [condition and expression syntax](https://help.github.com/en/actions/ref
* engine only like `ruby` and `truffleruby`, uses the latest stable release of that implementation * engine only like `ruby` and `truffleruby`, uses the latest stable release of that implementation
* `.ruby-version` reads from the project's `.ruby-version` file * `.ruby-version` reads from the project's `.ruby-version` file
* `.tool-versions` reads from the project's `.tool-versions` file * `.tool-versions` reads from the project's `.tool-versions` file
* If the `ruby-version` input is not specified, `.ruby-version` is tried first, followed by `.tool-versions` * `mise.toml` reads from the project's `mise.toml` file
* If the `ruby-version` input is not specified, `.ruby-version` is tried first, followed by `.tool-versions`, followed by `mise.toml`
### Working Directory ### Working Directory
The `working-directory` input can be set to resolve `.ruby-version`, `.tool-versions` and `Gemfile.lock` The `working-directory` input can be set to resolve `.ruby-version`, `.tool-versions`, `mise.toml` and `Gemfile.lock`
if they are not at the root of the repository, see [action.yml](action.yml) for details. if they are not at the root of the repository, see [action.yml](action.yml) for details.
### RubyGems ### RubyGems
@@ -233,6 +238,7 @@ It is recommended to first get your build working on Ubuntu and macOS before try
* For Ruby < 2.4, the DevKit MSYS tools are installed and prepended to the `Path`. * For Ruby < 2.4, the DevKit MSYS tools are installed and prepended to the `Path`.
* Use JRuby 9.2.20+ on Windows (older versions have [bugs](https://github.com/ruby/setup-ruby/issues/18#issuecomment-889072695)). * Use JRuby 9.2.20+ on Windows (older versions have [bugs](https://github.com/ruby/setup-ruby/issues/18#issuecomment-889072695)).
* JRuby on Windows has multiple issues ([jruby/jruby#7106](https://github.com/jruby/jruby/issues/7106), [jruby/jruby#7182](https://github.com/jruby/jruby/issues/7182)). * JRuby on Windows has multiple issues ([jruby/jruby#7106](https://github.com/jruby/jruby/issues/7106), [jruby/jruby#7182](https://github.com/jruby/jruby/issues/7182)).
* When compiling extension code, note that the packages required to build Ruby are included when using Windows 2022, but that Windows 2019 does not include all of them, and may require installing package(s). This can be done with [setup-ruby-pkgs](https://github.com/ruby/setup-ruby-pkgs) or via MSYS2's pacman. These packages may be required when installing or updating Ruby std-lib extension gems.
## Versioning ## Versioning
@@ -252,7 +258,6 @@ This action might work with [self-hosted runners](https://docs.github.com/en/act
if the [Runner Image](https://github.com/actions/runner-images) is very similar to the ones used by GitHub runners. Notably: if the [Runner Image](https://github.com/actions/runner-images) is very similar to the ones used by GitHub runners. Notably:
* Make sure to use the same operating system and version. * Make sure to use the same operating system and version.
* Set the environment variable `ImageOS` on the runner to the corresponding value on GitHub-hosted runners (e.g. `ubuntu18`/`macos1015`/`win19`). This is necessary to detect the operating system and version.
* Make sure to use the same version of libssl. * Make sure to use the same version of libssl.
* Make sure that the operating system has `libyaml-0` and [`libgmp`](https://stackoverflow.com/questions/26555902/ruby-v-dyld-library-not-loaded-usr-local-lib-libgmp-10-dylib) installed * Make sure that the operating system has `libyaml-0` and [`libgmp`](https://stackoverflow.com/questions/26555902/ruby-v-dyld-library-not-loaded-usr-local-lib-libgmp-10-dylib) installed
* The default tool cache directory (`/opt/hostedtoolcache` on Linux, `/Users/runner/hostedtoolcache` on macOS, * The default tool cache directory (`/opt/hostedtoolcache` on Linux, `/Users/runner/hostedtoolcache` on macOS,
@@ -260,9 +265,12 @@ if the [Runner Image](https://github.com/actions/runner-images) is very similar
This is necessary since the Ruby builds embed the install path when built and cannot be moved around. This is necessary since the Ruby builds embed the install path when built and cannot be moved around.
* `/home/runner` must be writable by the `runner` user. * `/home/runner` must be writable by the `runner` user.
In other cases, please use a system Ruby or [install Ruby manually](https://github.com/postmodern/chruby/wiki#installing-rubies) instead. In other cases, you will need to install Ruby in the runner tool cache as shown by the action when it detects that case
(run it so it will show you where to install Ruby).
You could of course also not use this action and e.g. use Ruby from a system package or use a Docker image instead.
On a self-hosted runner you need to define the `ImageOs` as an evironment variable on the host, you can do this in the `~/actions-runner/.env` file (See [#230](https://github.com/ruby/setup-ruby/issues/230)). See also the [`self-hosted:` input](action.yml).
You can set it to `true` if you want to use custom-built Rubies in your self-hosted toolcache instead of prebuild Rubies.
## History ## History
+19 -4
View File
@@ -6,13 +6,14 @@ branding:
icon: download icon: download
inputs: inputs:
ruby-version: ruby-version:
description: 'Engine and version to use, see the syntax in the README. Reads from .ruby-version or .tool-versions if unset.' description: 'Engine and version to use, see the syntax in the README. Reads from .ruby-version, .tool-versions or mise.toml if unset.'
default: 'default' default: 'default'
rubygems: rubygems:
description: | description: |
The version of RubyGems to use. Either 'default' (the default), 'latest', or a version number (e.g., 3.3.5). The version of RubyGems to use. Either 'default' (the default), 'latest', or a version number (e.g., 3.3.5).
For 'default', no action is taken and the version of RubyGems that comes with Ruby by default is used. For 'default', no action is taken and the version of RubyGems that comes with Ruby by default is used.
For 'latest', `gem update --system` is run to update to the latest RubyGems version. For 'latest', `gem update --system` is run to update to the latest compatible RubyGems version.
Ruby head/master builds will not be updated.
Similarly, if a version number is given, `gem update --system <version>` is run to update to that version of RubyGems, as long as that version is newer than the one provided by default. Similarly, if a version number is given, `gem update --system <version>` is run to update to that version of RubyGems, as long as that version is newer than the one provided by default.
bundler: bundler:
description: | description: |
@@ -25,14 +26,28 @@ inputs:
description: 'Run "bundle install", and cache the result automatically. Either true or false.' description: 'Run "bundle install", and cache the result automatically. Either true or false.'
default: 'false' default: 'false'
working-directory: working-directory:
description: 'The working directory to use for resolving paths for .ruby-version, .tool-versions and Gemfile.lock.' description: 'The working directory to use for resolving paths for .ruby-version, .tool-versions, mise.toml and Gemfile.lock.'
cache-version: cache-version:
description: | description: |
Arbitrary string that will be added to the cache key of the bundler cache. Set or change it if you need Arbitrary string that will be added to the cache key of the bundler cache. Set or change it if you need
to invalidate the cache. to invalidate the cache.
self-hosted:
description: |
Consider the runner as a self-hosted runner, which means not using prebuilt Ruby binaries which only work
on GitHub-hosted runners or self-hosted runners with a very similar image to the ones used by GitHub runners.
The default is to detect this automatically based on the OS, OS version and architecture.
windows-toolchain:
description: |
This input allows to override the default toolchain setup on Windows.
The default setting ('default') installs a toolchain based on the selected Ruby.
Specifically, it installs MSYS2 if not already there and installs mingw/ucrt/mswin build tools and packages.
It also sets environment variables using 'ridk' or 'vcvars64.bat' based on the selected Ruby.
At present, the only other setting than 'default' is 'none', which only adds Ruby to PATH.
No build tools or packages are installed, nor are any ENV setting changed to activate them.
outputs: outputs:
ruby-prefix: ruby-prefix:
description: 'The prefix of the installed ruby' description: 'The prefix of the installed ruby'
runs: runs:
using: 'node16' using: 'node20'
main: 'dist/index.js' main: 'dist/index.js'
+12 -4
View File
@@ -80,7 +80,7 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
if (bundlerVersion === 'default') { if (bundlerVersion === 'default') {
if (common.isBundler2dot2Default(engine, rubyVersion)) { if (common.isBundler2dot2Default(engine, rubyVersion)) {
if (common.windows && engine === 'ruby' && (common.isStableVersion(rubyVersion) || rubyVersion === 'head')) { if (common.windows && engine === 'ruby' && (common.isStableVersion(engine, rubyVersion) || rubyVersion === 'head')) {
// https://github.com/ruby/setup-ruby/issues/371 // https://github.com/ruby/setup-ruby/issues/371
console.log(`Installing latest Bundler for ${engine}-${rubyVersion} on Windows because bin/bundle does not work in bash otherwise`) console.log(`Installing latest Bundler for ${engine}-${rubyVersion} on Windows because bin/bundle does not work in bash otherwise`)
bundlerVersion = 'latest' bundlerVersion = 'latest'
@@ -191,7 +191,8 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
// restore cache & install // restore cache & install
let cachedKey = null let cachedKey = null
try { try {
cachedKey = await cache.restoreCache(paths, key, restoreKeys) // .slice() to workaround https://github.com/actions/toolkit/issues/1377
cachedKey = await cache.restoreCache(paths.slice(), key, restoreKeys)
} catch (error) { } catch (error) {
if (error.name === cache.ValidationError.name) { if (error.name === cache.ValidationError.name) {
throw error; throw error;
@@ -232,8 +233,15 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
} }
async function computeBaseKey(platform, engine, version, lockFile, cacheVersion) { async function computeBaseKey(platform, engine, version, lockFile, cacheVersion) {
const cacheVersionSuffix = DEFAULT_CACHE_VERSION === cacheVersion ? '' : `-cachever:${cacheVersion}` const cwd = process.cwd()
let key = `setup-ruby-bundler-cache-v4-${platform}-${engine}-${version}${cacheVersionSuffix}` const bundleWith = process.env['BUNDLE_WITH'] || ''
const bundleWithout = process.env['BUNDLE_WITHOUT'] || ''
const bundleOnly = process.env['BUNDLE_ONLY'] || ''
let key = `setup-ruby-bundler-cache-v6-${common.getOSNameVersionArch()}-${engine}-${version}-wd-${cwd}-with-${bundleWith}-without-${bundleWithout}-only-${bundleOnly}`
if (cacheVersion !== DEFAULT_CACHE_VERSION) {
key += `-v-${cacheVersion}`
}
if (common.isHeadVersion(version)) { if (common.isHeadVersion(version)) {
if (engine !== 'jruby') { if (engine !== 'jruby') {
+183 -53
View File
@@ -5,12 +5,18 @@ const util = require('util')
const stream = require('stream') const stream = require('stream')
const crypto = require('crypto') const crypto = require('crypto')
const core = require('@actions/core') const core = require('@actions/core')
const tc = require('@actions/tool-cache')
const { performance } = require('perf_hooks') const { performance } = require('perf_hooks')
const linuxOSInfo = require('linux-os-info')
export const windows = (os.platform() === 'win32') export const windows = (os.platform() === 'win32')
// Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14 // Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14
export const drive = (windows ? (process.env['GITHUB_WORKSPACE'] || 'C')[0] : undefined) export const drive = (windows ? (process.env['GITHUB_WORKSPACE'] || 'C')[0] : undefined)
export const inputs = {
selfHosted: undefined
}
export function partition(string, separator) { export function partition(string, separator) {
const i = string.indexOf(separator) const i = string.indexOf(separator)
if (i === -1) { if (i === -1) {
@@ -47,12 +53,28 @@ export async function measure(name, block) {
} }
} }
export function isHeadVersion(rubyVersion) { // Same as mesaure() but without the group, and no time shown on error
return ['head', 'debug', 'mingw', 'mswin', 'ucrt'].includes(rubyVersion) export async function time(name, block) {
console.log(`> ${name}`)
const start = performance.now()
const value = await block()
const end = performance.now()
const duration = (end - start) / 1000.0
console.log(`Took ${duration.toFixed(2).padStart(6)} seconds`)
return value
} }
export function isStableVersion(rubyVersion) { export function isHeadVersion(rubyVersion) {
return /^\d+(\.\d+)*$/.test(rubyVersion) return ['head', 'debug', 'mingw', 'mswin', 'ucrt', 'asan'].includes(rubyVersion)
}
export function isStableVersion(engine, rubyVersion) {
if (engine.startsWith('truffleruby')) {
return /^\d+(\.\d+)*(-preview\d+)?$/.test(rubyVersion)
} else {
return /^\d+(\.\d+)*$/.test(rubyVersion)
}
} }
export function hasBundlerDefaultGem(engine, rubyVersion) { export function hasBundlerDefaultGem(engine, rubyVersion) {
@@ -139,75 +161,182 @@ export async function hashFile(file) {
return hash.digest('hex') return hash.digest('hex')
} }
function getImageOS() { // macos is not listed explicitly, see below
const imageOS = process.env['ImageOS'] const GitHubHostedPlatforms = [
if (!imageOS) { 'ubuntu-20.04-x64',
throw new Error('The environment variable ImageOS must be set') 'ubuntu-22.04-x64',
} 'ubuntu-22.04-arm64',
return imageOS 'ubuntu-24.04-x64',
} 'ubuntu-24.04-arm64',
'windows-2019-x64',
export const supportedPlatforms = [ 'windows-2022-x64',
'ubuntu-18.04', 'windows-2025-x64',
'ubuntu-20.04',
'ubuntu-22.04',
'macos-10.15',
'macos-11',
'macos-12',
'windows-2019',
'windows-2022',
] ]
export function getVirtualEnvironmentName() { // Precisely: whether we have builds for that platform and there are GitHub-hosted runners to test it
const imageOS = getImageOS() function isSupportedPlatform() {
const platform = getOSName()
switch (platform) {
case 'ubuntu':
return GitHubHostedPlatforms.includes(getOSNameVersionArch())
case 'macos':
// See https://github.com/ruby/ruby-builder/blob/master/README.md#naming
// 13 on arm64 because of old macos-arm-oss runners
return (os.arch() === 'x64' && parseInt(getOSVersion()) >= 13) ||
(os.arch() === 'arm64' && parseInt(getOSVersion()) >= 13)
case 'windows':
return GitHubHostedPlatforms.includes(getOSNameVersionArch())
}
}
let match = imageOS.match(/^ubuntu(\d+)/) // e.g. ubuntu18 // Actually a self-hosted runner for which the OS and OS version does not correspond to a GitHub-hosted runner image,
if (match) { export function isSelfHostedRunner() {
return `ubuntu-${match[1]}.04` if (inputs.selfHosted === undefined) {
throw new Error('inputs.selfHosted should have been already set')
} }
match = imageOS.match(/^macos(\d{2})(\d+)?/) // e.g. macos1015, macos11 return inputs.selfHosted === 'true' || !isSupportedPlatform()
if (match) { }
if (match[2]) {
return `macos-${match[1]}.${match[2]}` export function selfHostedRunnerReason() {
} else { if (inputs.selfHosted === 'true') {
return `macos-${match[1]}` return 'the self-hosted input was set'
} } else if (!isSupportedPlatform()) {
return 'the platform does not match a GitHub-hosted runner image (or that image is deprecated and no longer supported)'
} else {
return 'unknown reason'
}
}
let osName = undefined
let osVersion = undefined
export function getOSName() {
if (osName !== undefined) {
return osName
} }
match = imageOS.match(/^win(\d+)/) // e.g. win19 const platform = os.platform()
if (match) { if (platform === 'linux') {
return `windows-20${match[1]}` const info = linuxOSInfo({mode: 'sync'})
osName = info.id
} else if (platform === 'darwin') {
osName = 'macos'
} else if (platform === 'win32') {
osName = 'windows'
} else {
throw new Error(`Unknown platform ${platform}`)
} }
throw new Error(`Unknown ImageOS ${imageOS}`) return osName
}
export function getOSVersion() {
if (osVersion !== undefined) {
return osVersion
}
const platform = os.platform()
if (platform === 'linux') {
const info = linuxOSInfo({mode: 'sync'})
osVersion = info.version_id
} else if (platform === 'darwin') {
// See https://github.com/sindresorhus/macos-release/blob/main/index.js
const darwinVersion = parseInt(os.release().match(/^\d+/)[0])
osVersion = `${darwinVersion - 9}`
} else if (platform === 'win32') {
osVersion = findWindowsVersion()
} else {
throw new Error(`Unknown platform ${platform}`)
}
return osVersion
}
export function getOSNameVersion() {
return `${getOSName()}-${getOSVersion()}`
}
export function getOSNameVersionArch() {
return `${getOSName()}-${getOSVersion()}-${os.arch()}`
}
function findWindowsVersion() {
const version = os.version()
const match = version.match(/^Windows Server (\d+) Datacenter/)
if (match) {
return match[1]
} else {
throw new Error('Could not find Windows version')
}
} }
export function shouldUseToolCache(engine, version) { export function shouldUseToolCache(engine, version) {
return engine === 'ruby' && !isHeadVersion(version) return (engine === 'ruby' && !isHeadVersion(version)) || isSelfHostedRunner()
} }
function getPlatformToolCache(platform) { export function getToolCachePath() {
// Hardcode paths rather than using $RUNNER_TOOL_CACHE because the prebuilt Rubies cannot be moved anyway if (isSelfHostedRunner()) {
if (platform.startsWith('ubuntu-')) { return getRunnerToolCache()
return '/opt/hostedtoolcache'
} else if (platform.startsWith('macos-')) {
return '/Users/runner/hostedtoolcache'
} else if (platform.startsWith('windows-')) {
return 'C:/hostedtoolcache/windows'
} else { } else {
throw new Error('Unknown platform') // Rubies prebuilt by this action embed this path rather than using $RUNNER_TOOL_CACHE
// so use that path if not isSelfHostedRunner()
return getDefaultToolCachePath()
} }
} }
export function getToolCacheRubyPrefix(platform, version) { export function getRunnerToolCache() {
const toolCache = getPlatformToolCache(platform) const runnerToolCache = process.env['RUNNER_TOOL_CACHE']
return path.join(toolCache, 'Ruby', version, 'x64') if (!runnerToolCache) {
throw new Error('$RUNNER_TOOL_CACHE must be set')
}
return runnerToolCache
}
// Rubies prebuilt by this action embed this path rather than using $RUNNER_TOOL_CACHE
function getDefaultToolCachePath() {
const platform = getOSName()
switch (platform) {
case 'ubuntu':
return '/opt/hostedtoolcache'
case 'macos':
return '/Users/runner/hostedtoolcache'
case 'windows':
return 'C:\\hostedtoolcache\\windows'
}
}
// tc.find() but using RUNNER_TOOL_CACHE=getToolCachePath()
export function toolCacheFind(engine, version) {
const originalToolCache = getToolCachePath()
process.env['RUNNER_TOOL_CACHE'] = getToolCachePath()
try {
return tc.find(engineToToolCacheName(engine), version)
} finally {
process.env['RUNNER_TOOL_CACHE'] = originalToolCache
}
}
function engineToToolCacheName(engine) {
return {
ruby: 'Ruby',
jruby: 'JRuby',
truffleruby: 'TruffleRuby',
"truffleruby+graalvm": 'TruffleRubyGraalVM'
}[engine]
}
export function getToolCacheRubyPrefix(platform, engine, version) {
const toolCache = getToolCachePath()
return path.join(toolCache, engineToToolCacheName(engine), version, os.arch())
}
export function toolCacheCompleteFile(toolCacheRubyPrefix) {
return `${toolCacheRubyPrefix}.complete`
} }
export function createToolCacheCompleteFile(toolCacheRubyPrefix) { export function createToolCacheCompleteFile(toolCacheRubyPrefix) {
const completeFile = `${toolCacheRubyPrefix}.complete` fs.writeFileSync(toolCacheCompleteFile(toolCacheRubyPrefix), '')
fs.writeFileSync(completeFile, '')
} }
// convert windows path like C:\Users\runneradmin to /c/Users/runneradmin // convert windows path like C:\Users\runneradmin to /c/Users/runneradmin
@@ -247,7 +376,8 @@ export function setupPath(newPathEntries) {
// Then add new path entries using core.addPath() // Then add new path entries using core.addPath()
let newPath let newPath
if (windows) { const windowsToolchain = core.getInput('windows-toolchain')
if (windows && windowsToolchain !== 'none') {
// main Ruby dll determines whether mingw or ucrt build // main Ruby dll determines whether mingw or ucrt build
msys2Type = rubyIsUCRT(newPathEntries[0]) ? 'ucrt64' : 'mingw64' msys2Type = rubyIsUCRT(newPathEntries[0]) ? 'ucrt64' : 'mingw64'
Generated Vendored
+12136 -6023
View File
File diff suppressed because one or more lines are too long
+57 -10
View File
@@ -16,6 +16,8 @@ const inputDefaults = {
'bundler-cache': 'false', 'bundler-cache': 'false',
'working-directory': '.', 'working-directory': '.',
'cache-version': bundler.DEFAULT_CACHE_VERSION, 'cache-version': bundler.DEFAULT_CACHE_VERSION,
'self-hosted': 'false',
'windows-toolchain': 'default',
} }
// entry point when this action is run on its own // entry point when this action is run on its own
@@ -23,8 +25,15 @@ export async function run() {
try { try {
await setupRuby() await setupRuby()
} catch (error) { } catch (error) {
core.setFailed(error.stack) if (/\bprocess\b.+\bfailed\b/.test(error.message)) {
core.setFailed(error.message)
} else {
core.setFailed(error.stack)
}
} }
// Explicit process.exit() to not wait hanging promises,
// see https://github.com/ruby/setup-ruby/issues/543
process.exit()
} }
// entry point when this action is run from other actions // entry point when this action is run from other actions
@@ -35,28 +44,35 @@ export async function setupRuby(options = {}) {
inputs[key] = core.getInput(key) || inputDefaults[key] inputs[key] = core.getInput(key) || inputDefaults[key]
} }
} }
common.inputs.selfHosted = inputs['self-hosted']
process.chdir(inputs['working-directory']) process.chdir(inputs['working-directory'])
const platform = common.getVirtualEnvironmentName() const platform = common.getOSNameVersion()
const [engine, parsedVersion] = parseRubyEngineAndVersion(inputs['ruby-version']) const [engine, parsedVersion] = parseRubyEngineAndVersion(inputs['ruby-version'])
let installer let installer
if (platform.startsWith('windows-') && engine === 'ruby') { if (platform.startsWith('windows-') && engine === 'ruby' && !common.isSelfHostedRunner()) {
installer = require('./windows') installer = require('./windows')
} else { } else {
installer = require('./ruby-builder') installer = require('./ruby-builder')
} }
const engineVersions = installer.getAvailableVersions(platform, engine) let version
const version = validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVersion) if (common.isSelfHostedRunner()) {
// The list of available Rubies in the hostedtoolcache is unrelated to getAvailableVersions()
version = parsedVersion
} else {
const engineVersions = installer.getAvailableVersions(platform, engine)
version = validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVersion)
}
createGemRC(engine, version) createGemRC(engine, version)
envPreInstall() envPreInstall()
// JRuby can use compiled extension code, so make sure gcc exists. // JRuby can use compiled extension code, so make sure gcc exists.
// As of Jan-2022, JRuby compiles against msvcrt. // As of Jan-2022, JRuby compiles against msvcrt.
if (platform.startsWith('windows') && (engine === 'jruby') && if (platform.startsWith('windows') && engine === 'jruby' &&
!fs.existsSync('C:\\msys64\\mingw64\\bin\\gcc.exe')) { !fs.existsSync('C:\\msys64\\mingw64\\bin\\gcc.exe')) {
await require('./windows').installJRubyTools() await require('./windows').installJRubyTools()
} }
@@ -69,7 +85,7 @@ export async function setupRuby(options = {}) {
const rubygemsInputSet = inputs['rubygems'] !== 'default' const rubygemsInputSet = inputs['rubygems'] !== 'default'
if (rubygemsInputSet) { if (rubygemsInputSet) {
await common.measure('Updating RubyGems', async () => await common.measure('Updating RubyGems', async () =>
rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix)) rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix, platform, engine, version))
} }
// When setup-ruby is used by other actions, this allows code in them to run // When setup-ruby is used by other actions, this allows code in them to run
@@ -88,7 +104,7 @@ export async function setupRuby(options = {}) {
} }
if (inputs['bundler-cache'] === 'true') { if (inputs['bundler-cache'] === 'true') {
await common.measure('bundle install', async () => await common.time('bundle install', async () =>
bundler.bundleInstall(gemfile, lockFile, platform, engine, version, bundlerVersion, inputs['cache-version'])) bundler.bundleInstall(gemfile, lockFile, platform, engine, version, bundlerVersion, inputs['cache-version']))
} }
@@ -101,6 +117,8 @@ function parseRubyEngineAndVersion(rubyVersion) {
rubyVersion = '.ruby-version' rubyVersion = '.ruby-version'
} else if (fs.existsSync('.tool-versions')) { } else if (fs.existsSync('.tool-versions')) {
rubyVersion = '.tool-versions' rubyVersion = '.tool-versions'
} else if (fs.existsSync('mise.toml')) {
rubyVersion = 'mise.toml'
} else { } else {
throw new Error('input ruby-version needs to be specified if no .ruby-version or .tool-versions file exists') throw new Error('input ruby-version needs to be specified if no .ruby-version or .tool-versions file exists')
} }
@@ -114,6 +132,11 @@ function parseRubyEngineAndVersion(rubyVersion) {
const rubyLine = toolVersions.split(/\r?\n/).filter(e => /^ruby\s/.test(e))[0] const rubyLine = toolVersions.split(/\r?\n/).filter(e => /^ruby\s/.test(e))[0]
rubyVersion = rubyLine.match(/^ruby\s+(.+)$/)[1] rubyVersion = rubyLine.match(/^ruby\s+(.+)$/)[1]
console.log(`Using ${rubyVersion} as input from file .tool-versions`) console.log(`Using ${rubyVersion} as input from file .tool-versions`)
} else if (rubyVersion === 'mise.toml') { // Read from mise.toml
const toolVersions = fs.readFileSync('mise.toml', 'utf8').trim()
const rubyLine = toolVersions.split(/\r?\n/).filter(e => /^ruby\s*=\s*/.test(e))[0]
rubyVersion = rubyLine.match(/^ruby\s*=\s*['"](.+)['"]$/)[1]
console.log(`Using ${rubyVersion} as input from file mise.toml`)
} }
let engine, version let engine, version
@@ -139,7 +162,7 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
if (!engineVersions.includes(parsedVersion)) { if (!engineVersions.includes(parsedVersion)) {
const latestToFirstVersion = engineVersions.slice().reverse() const latestToFirstVersion = engineVersions.slice().reverse()
// Try to match stable versions first, so an empty version (engine-only) matches the latest stable version // Try to match stable versions first, so an empty version (engine-only) matches the latest stable version
let found = latestToFirstVersion.find(v => common.isStableVersion(v) && v.startsWith(parsedVersion)) let found = latestToFirstVersion.find(v => common.isStableVersion(engine, v) && v.startsWith(parsedVersion))
if (!found) { if (!found) {
// Exclude head versions, they must be exact matches // Exclude head versions, they must be exact matches
found = latestToFirstVersion.find(v => !common.isHeadVersion(v) && v.startsWith(parsedVersion)) found = latestToFirstVersion.find(v => !common.isHeadVersion(v) && v.startsWith(parsedVersion))
@@ -149,11 +172,35 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
version = found version = found
} else { } else {
throw new Error(`Unknown version ${parsedVersion} for ${engine} on ${platform} throw new Error(`Unknown version ${parsedVersion} for ${engine} on ${platform}
available versions for ${engine} on ${platform}: ${engineVersions.join(', ')} Available versions for ${engine} on ${platform}: ${engineVersions.join(', ')}
Make sure you use the latest version of the action with - uses: ruby/setup-ruby@v1`) Make sure you use the latest version of the action with - uses: ruby/setup-ruby@v1`)
} }
} }
// Well known version-platform combinations which do not work:
if (engine === 'ruby' && platform.startsWith('macos') && os.arch() === 'arm64' && common.floatVersion(version) < 2.6) {
throw new Error(`CRuby < 2.6 does not support macos-arm64.
Either use a newer Ruby version or use a macOS image running on amd64, e.g., macos-13.
Note that GitHub changed the meaning of macos-latest from macos-12 (amd64) to macos-14 (arm64):
https://github.blog/changelog/2024-04-01-macos-14-sonoma-is-generally-available-and-the-latest-macos-runner-image/
If you are using a matrix of Ruby versions, a good solution is to run only < 2.6 on amd64, like so:
matrix:
ruby: ['2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3']
os: [ ubuntu-latest, macos-latest ]
# CRuby < 2.6 does not support macos-arm64, so test those on amd64 instead
exclude:
- { os: macos-latest, ruby: '2.4' }
- { os: macos-latest, ruby: '2.5' }
include:
- { os: macos-13, ruby: '2.4' }
- { os: macos-13, ruby: '2.5' }
But of course you should consider dropping support for these long-EOL Rubies, which cannot even be built on recent macOS machines.`)
} else if (engine === 'truffleruby' && platform.startsWith('windows')) {
throw new Error('TruffleRuby does not currently support Windows.')
}
return version return version
} }
+3 -2
View File
@@ -22,11 +22,12 @@
}, },
"homepage": "https://github.com/ruby/setup-ruby", "homepage": "https://github.com/ruby/setup-ruby",
"dependencies": { "dependencies": {
"@actions/cache": "^3", "@actions/cache": "^4.0.0",
"@actions/core": "^1.10.0", "@actions/core": "^1.11.1",
"@actions/exec": "^1.1.1", "@actions/exec": "^1.1.1",
"@actions/io": "^1.1.2", "@actions/io": "^1.1.2",
"@actions/tool-cache": "^2", "@actions/tool-cache": "^2",
"linux-os-info": "^2.0.0",
"semver": "^7.3.7" "semver": "^7.3.7"
}, },
"devDependencies": { "devDependencies": {
+17
View File
@@ -0,0 +1,17 @@
require 'json'
def run(command_line)
puts "$ #{command_line}"
output = `#{command_line}`
puts output
raise $?.inspect unless $?.success?
output
end
latest_release_tag = run 'gh release view --json tagName'
latest_release_tag = JSON.load(latest_release_tag).fetch('tagName')
raise latest_release_tag unless latest_release_tag =~ /\Av(\d+).(\d+).(\d+)\z/
tag = "v#{$1}.#{Integer($2)+1}.0"
run "gh release create --generate-notes --latest #{tag}"
+13 -7
View File
@@ -8,17 +8,19 @@
"2.4.0", "2.4.1", "2.4.2", "2.4.3", "2.4.4", "2.4.5", "2.4.6", "2.4.7", "2.4.9", "2.4.10", "2.4.0", "2.4.1", "2.4.2", "2.4.3", "2.4.4", "2.4.5", "2.4.6", "2.4.7", "2.4.9", "2.4.10",
"2.5.0", "2.5.1", "2.5.2", "2.5.3", "2.5.4", "2.5.5", "2.5.6", "2.5.7", "2.5.8", "2.5.9", "2.5.0", "2.5.1", "2.5.2", "2.5.3", "2.5.4", "2.5.5", "2.5.6", "2.5.7", "2.5.8", "2.5.9",
"2.6.0", "2.6.1", "2.6.2", "2.6.3", "2.6.4", "2.6.5", "2.6.6", "2.6.7", "2.6.8", "2.6.9", "2.6.10", "2.6.0", "2.6.1", "2.6.2", "2.6.3", "2.6.4", "2.6.5", "2.6.6", "2.6.7", "2.6.8", "2.6.9", "2.6.10",
"2.7.0", "2.7.1", "2.7.2", "2.7.3", "2.7.4", "2.7.5", "2.7.6", "2.7.7", "2.7.0", "2.7.1", "2.7.2", "2.7.3", "2.7.4", "2.7.5", "2.7.6", "2.7.7", "2.7.8",
"3.0.0-preview1", "3.0.0-preview2", "3.0.0-rc1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.0-preview1", "3.0.0-preview2", "3.0.0-rc1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7",
"3.1.0-preview1", "3.1.0", "3.1.1", "3.1.2", "3.1.3", "3.1.0-preview1", "3.1.0", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6",
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1", "3.2.2", "3.2.3", "3.2.4", "3.2.5", "3.2.6", "3.2.7",
"head", "debug" "3.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0", "3.3.1", "3.3.2", "3.3.3", "3.3.4", "3.3.5", "3.3.6", "3.3.7",
"3.4.0-preview1", "3.4.0-preview2", "3.4.0-rc1", "3.4.0", "3.4.1", "3.4.2",
"head", "debug", "asan"
], ],
"jruby": [ "jruby": [
"9.1.17.0", "9.1.17.0",
"9.2.9.0", "9.2.10.0", "9.2.11.0", "9.2.11.1", "9.2.12.0", "9.2.13.0", "9.2.14.0", "9.2.15.0", "9.2.16.0", "9.2.17.0", "9.2.18.0", "9.2.19.0", "9.2.20.0", "9.2.20.1", "9.2.21.0", "9.2.9.0", "9.2.10.0", "9.2.11.0", "9.2.11.1", "9.2.12.0", "9.2.13.0", "9.2.14.0", "9.2.15.0", "9.2.16.0", "9.2.17.0", "9.2.18.0", "9.2.19.0", "9.2.20.0", "9.2.20.1", "9.2.21.0",
"9.3.0.0", "9.3.1.0", "9.3.2.0", "9.3.3.0", "9.3.4.0", "9.3.6.0", "9.3.7.0", "9.3.8.0", "9.3.9.0", "9.3.10.0", "9.3.0.0", "9.3.1.0", "9.3.2.0", "9.3.3.0", "9.3.4.0", "9.3.6.0", "9.3.7.0", "9.3.8.0", "9.3.9.0", "9.3.10.0", "9.3.11.0", "9.3.13.0", "9.3.14.0", "9.3.15.0",
"9.4.0.0", "9.4.0.0", "9.4.1.0", "9.4.2.0", "9.4.3.0", "9.4.4.0", "9.4.5.0", "9.4.6.0", "9.4.7.0", "9.4.8.0", "9.4.9.0", "9.4.10.0", "9.4.11.0", "9.4.12.0",
"head" "head"
], ],
"truffleruby": [ "truffleruby": [
@@ -26,11 +28,15 @@
"20.0.0", "20.1.0", "20.2.0", "20.3.0", "20.0.0", "20.1.0", "20.2.0", "20.3.0",
"21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.3.0", "21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.3.0",
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1", "22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1", "23.1.2",
"24.0.0", "24.0.1", "24.0.2", "24.1.0", "24.1.1", "24.1.2",
"head" "head"
], ],
"truffleruby+graalvm": [ "truffleruby+graalvm": [
"21.2.0", "21.3.0", "21.2.0", "21.3.0",
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1", "22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
"23.0.0-preview1", "23.0.0", "23.1.0", "23.1.1", "23.1.2",
"24.0.0", "24.0.1", "24.0.2", "24.1.0", "24.1.1", "24.1.2",
"head" "head"
] ]
} }
+52 -41
View File
@@ -1,6 +1,7 @@
const os = require('os') const os = require('os')
const fs = require('fs') const fs = require('fs')
const path = require('path') const path = require('path')
const core = require('@actions/core')
const exec = require('@actions/exec') const exec = require('@actions/exec')
const io = require('@actions/io') const io = require('@actions/io')
const tc = require('@actions/tool-cache') const tc = require('@actions/tool-cache')
@@ -13,21 +14,31 @@ const releasesURL = 'https://github.com/ruby/ruby-builder/releases'
const windows = common.windows const windows = common.windows
export function getAvailableVersions(platform, engine) { export function getAvailableVersions(platform, engine) {
if (!common.supportedPlatforms.includes(platform)) {
throw new Error(`Unsupported platform ${platform}`)
}
return rubyBuilderVersions[engine] return rubyBuilderVersions[engine]
} }
export async function install(platform, engine, version) { export async function install(platform, engine, version) {
let rubyPrefix, inToolCache let rubyPrefix, inToolCache
if (common.shouldUseToolCache(engine, version)) { if (common.shouldUseToolCache(engine, version)) {
inToolCache = tc.find('Ruby', version) inToolCache = common.toolCacheFind(engine, version)
if (inToolCache) { if (inToolCache) {
rubyPrefix = inToolCache rubyPrefix = inToolCache
} else { } else {
rubyPrefix = common.getToolCacheRubyPrefix(platform, version) const toolCacheRubyPrefix = common.getToolCacheRubyPrefix(platform, engine, version)
if (common.isSelfHostedRunner()) {
const rubyBuildDefinition = engine === 'ruby' ? version : `${engine}-${version}`
core.error(
`The current runner (${common.getOSNameVersionArch()}) was detected as self-hosted because ${common.selfHostedRunnerReason()}.\n` +
`In such a case, you should install Ruby in the $RUNNER_TOOL_CACHE yourself, for example using https://github.com/rbenv/ruby-build\n` +
`You can take inspiration from this workflow for more details: https://github.com/ruby/ruby-builder/blob/master/.github/workflows/build.yml\n` +
`$ ruby-build ${rubyBuildDefinition} ${toolCacheRubyPrefix}\n` +
`Once that completes successfully, mark it as complete with:\n` +
`$ touch ${common.toolCacheCompleteFile(toolCacheRubyPrefix)}\n` +
`It is your responsibility to ensure installing Ruby like that is not done in parallel.\n`)
process.exit(1)
} else {
rubyPrefix = toolCacheRubyPrefix
}
} }
} else if (windows) { } else if (windows) {
rubyPrefix = path.join(`${common.drive}:`, `${engine}-${version}`) rubyPrefix = path.join(`${common.drive}:`, `${engine}-${version}`)
@@ -39,48 +50,30 @@ export async function install(platform, engine, version) {
common.setupPath([path.join(rubyPrefix, 'bin')]) common.setupPath([path.join(rubyPrefix, 'bin')])
if (!inToolCache) { if (!inToolCache) {
await preparePrefix(rubyPrefix) await io.mkdirP(rubyPrefix)
if (engine === 'truffleruby+graalvm') { await downloadAndExtract(platform, engine, version, rubyPrefix)
await installWithRubyBuild(engine, version, rubyPrefix)
} else {
await downloadAndExtract(platform, engine, version, rubyPrefix)
}
} }
return rubyPrefix return rubyPrefix
} }
async function preparePrefix(rubyPrefix) {
const parentDir = path.dirname(rubyPrefix)
await io.rmRF(rubyPrefix)
if (!(fs.existsSync(parentDir) && fs.statSync(parentDir).isDirectory())) {
await io.mkdirP(parentDir)
}
}
async function installWithRubyBuild(engine, version, rubyPrefix) {
const tmp = process.env['RUNNER_TEMP'] || os.tmpdir()
const rubyBuildDir = path.join(tmp, 'ruby-build-for-setup-ruby')
await common.measure('Cloning ruby-build', async () => {
await exec.exec('git', ['clone', 'https://github.com/rbenv/ruby-build.git', rubyBuildDir])
})
const rubyName = `${engine}-${version === 'head' ? 'dev' : version}`
await common.measure(`Installing ${engine}-${version} with ruby-build`, async () => {
await exec.exec(`${rubyBuildDir}/bin/ruby-build`, [rubyName, rubyPrefix])
})
await io.rmRF(rubyBuildDir)
}
async function downloadAndExtract(platform, engine, version, rubyPrefix) { async function downloadAndExtract(platform, engine, version, rubyPrefix) {
const parentDir = path.dirname(rubyPrefix) const parentDir = path.dirname(rubyPrefix)
const downloadPath = await common.measure('Downloading Ruby', async () => { const downloadPath = await common.measure('Downloading Ruby', async () => {
const url = getDownloadURL(platform, engine, version) const url = getDownloadURL(platform, engine, version)
console.log(url) console.log(url)
return await tc.downloadTool(url) try {
return await tc.downloadTool(url)
} catch (error) {
if (error.message.includes('404')) {
throw new Error(`Unavailable version ${version} for ${engine} on ${platform}
You can request it at https://github.com/ruby/setup-ruby/issues
Cause: ${error.message}`)
} else {
throw error
}
}
}) })
await common.measure('Extracting Ruby', async () => { await common.measure('Extracting Ruby', async () => {
@@ -98,11 +91,25 @@ async function downloadAndExtract(platform, engine, version, rubyPrefix) {
} }
function getDownloadURL(platform, engine, version) { function getDownloadURL(platform, engine, version) {
let builderPlatform = platform let builderPlatform = null
if (platform.startsWith('windows-')) { if (platform.startsWith('windows-') && os.arch() === 'x64') {
builderPlatform = 'windows-latest' builderPlatform = 'windows-latest'
} else if (platform.startsWith('macos-')) { } else if (platform.startsWith('macos-')) {
builderPlatform = 'macos-latest' if (os.arch() === 'x64') {
builderPlatform = 'macos-latest'
} else if (os.arch() === 'arm64') {
builderPlatform = 'macos-13-arm64'
}
} else if (platform.startsWith('ubuntu-')) {
if (os.arch() === 'x64') {
builderPlatform = platform
} else if (os.arch() === 'arm64') {
builderPlatform = `${platform}-arm64`
}
}
if (builderPlatform === null) {
throw new Error(`Unknown download URL for platform ${platform}`)
} }
if (common.isHeadVersion(version)) { if (common.isHeadVersion(version)) {
@@ -113,5 +120,9 @@ function getDownloadURL(platform, engine, version) {
} }
function getLatestHeadBuildURL(platform, engine, version) { function getLatestHeadBuildURL(platform, engine, version) {
return `https://github.com/ruby/${engine}-dev-builder/releases/latest/download/${engine}-${version}-${platform}.tar.gz` var repo = `${engine}-dev-builder`
if (engine === 'truffleruby+graalvm') {
repo = 'truffleruby-dev-builder'
}
return `https://github.com/ruby/${repo}/releases/latest/download/${engine}-${version}-${platform}.tar.gz`
} }
+32 -2
View File
@@ -1,8 +1,9 @@
const common = require('./common')
const path = require('path') const path = require('path')
const exec = require('@actions/exec') const exec = require('@actions/exec')
const semver = require('semver') const semver = require('semver')
export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) { export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix, platform, engine, rubyVersion) {
const gem = path.join(rubyPrefix, 'bin', 'gem') const gem = path.join(rubyPrefix, 'bin', 'gem')
let gemVersion = '' let gemVersion = ''
@@ -18,7 +19,7 @@ export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
if (rubygemsVersionInput === 'latest') { if (rubygemsVersionInput === 'latest') {
console.log('Updating RubyGems to latest version') console.log('Updating RubyGems to latest version')
await exec.exec(gem, ['update', '--system']) await rubygemsLatest(gem, platform, engine, rubyVersion)
} else if (semver.gt(rubygemsVersionInput, gemVersion)) { } else if (semver.gt(rubygemsVersionInput, gemVersion)) {
console.log(`Updating RubyGems to ${rubygemsVersionInput}`) console.log(`Updating RubyGems to ${rubygemsVersionInput}`)
await exec.exec(gem, ['update', '--system', rubygemsVersionInput]) await exec.exec(gem, ['update', '--system', rubygemsVersionInput])
@@ -28,3 +29,32 @@ export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
return true return true
} }
// Older RubyGems versions do not account for 'required_ruby_version' when
// running 'gem update --system', so we have to force a compatible version of
// rubygems-update. See https://github.com/ruby/setup-ruby/pull/551 and
// https://github.com/rubygems/rubygems/issues/7329
async function rubygemsLatest(gem, platform, engine, rubyVersion) {
if (engine === 'ruby') {
const floatVersion = common.floatVersion(rubyVersion)
if (common.isHeadVersion(rubyVersion)) {
console.log('Ruby master builds use included RubyGems')
} else if (floatVersion >= 3.1) {
await exec.exec(gem, ['update', '--system'])
} else if (floatVersion >= 3.0) {
await exec.exec(gem, ['update', '--system', '3.5.23'])
} else if (floatVersion >= 2.6) {
await exec.exec(gem, ['update', '--system', '3.4.22'])
} else if (floatVersion >= 2.3) {
await exec.exec(gem, ['update', '--system', '3.3.27'])
} else if (floatVersion >= 1.9) {
await exec.exec(`${gem} install rubygems-update -v 2.7.11 --no-document`)
await exec.exec('update_rubygems')
} else {
console.log(`Cannot update RubyGems for Ruby version ${rubyVersion}`)
}
} else {
// non MRI Rubies (TruffleRuby and JRuby)
await exec.exec(gem, ['update', '--system'])
}
}
+7 -4
View File
@@ -4,15 +4,18 @@ versions = JSON.load(hash).transform_keys(&:to_sym)
by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] } by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] }
(1..7).each do |minor| by_minor.each_pair do |minor, versions|
p by_minor["2.#{minor}"].map { |v| "ruby-#{v}" } puts versions.map { |v| "ruby-#{v}" }.join(', ') if minor
end end
puts puts
p (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" } puts (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }.join(', ')
puts puts
p (versions[:jruby] - %w[head]).map { |v| "jruby-#{v}" } puts (versions[:"truffleruby+graalvm"] - %w[head]).map { |v| "truffleruby+graalvm-#{v}" }.join(', ')
puts
puts (versions[:jruby] - %w[head]).map { |v| "jruby-#{v}" }.join(', ')
(versions[:jruby] - %w[head]).each do |v| (versions[:jruby] - %w[head]).each do |v|
puts "- { os: windows-latest, jruby-version: #{v}, ruby: jruby-#{v} }" puts "- { os: windows-latest, jruby-version: #{v}, ruby: jruby-#{v} }"
+23
View File
@@ -41,17 +41,40 @@
"2.7.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.5-1/rubyinstaller-2.7.5-1-x64.7z", "2.7.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.5-1/rubyinstaller-2.7.5-1-x64.7z",
"2.7.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.6-1/rubyinstaller-2.7.6-1-x64.7z", "2.7.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.6-1/rubyinstaller-2.7.6-1-x64.7z",
"2.7.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.7-1/rubyinstaller-2.7.7-1-x64.7z", "2.7.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.7-1/rubyinstaller-2.7.7-1-x64.7z",
"2.7.8": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.7.8-1/rubyinstaller-2.7.8-1-x64.7z",
"3.0.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.0-1/rubyinstaller-3.0.0-1-x64.7z", "3.0.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.0-1/rubyinstaller-3.0.0-1-x64.7z",
"3.0.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.1-1/rubyinstaller-3.0.1-1-x64.7z", "3.0.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.1-1/rubyinstaller-3.0.1-1-x64.7z",
"3.0.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.2-1/rubyinstaller-3.0.2-1-x64.7z", "3.0.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.2-1/rubyinstaller-3.0.2-1-x64.7z",
"3.0.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.3-1/rubyinstaller-3.0.3-1-x64.7z", "3.0.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.3-1/rubyinstaller-3.0.3-1-x64.7z",
"3.0.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.4-1/rubyinstaller-3.0.4-1-x64.7z", "3.0.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.4-1/rubyinstaller-3.0.4-1-x64.7z",
"3.0.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.5-1/rubyinstaller-3.0.5-1-x64.7z", "3.0.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.5-1/rubyinstaller-3.0.5-1-x64.7z",
"3.0.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.6-1/rubyinstaller-3.0.6-1-x64.7z",
"3.0.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.0.7-1/rubyinstaller-3.0.7-1-x64.7z",
"3.1.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.0-1/rubyinstaller-3.1.0-1-x64.7z", "3.1.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.0-1/rubyinstaller-3.1.0-1-x64.7z",
"3.1.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.1-1/rubyinstaller-3.1.1-1-x64.7z", "3.1.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.1-1/rubyinstaller-3.1.1-1-x64.7z",
"3.1.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.2-1/rubyinstaller-3.1.2-1-x64.7z", "3.1.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.2-1/rubyinstaller-3.1.2-1-x64.7z",
"3.1.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.3-1/rubyinstaller-3.1.3-1-x64.7z", "3.1.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.3-1/rubyinstaller-3.1.3-1-x64.7z",
"3.1.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.4-1/rubyinstaller-3.1.4-1-x64.7z",
"3.1.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.5-1/rubyinstaller-3.1.5-1-x64.7z",
"3.1.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.1.6-1/rubyinstaller-3.1.6-1-x64.7z",
"3.2.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.0-1/rubyinstaller-3.2.0-1-x64.7z", "3.2.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.0-1/rubyinstaller-3.2.0-1-x64.7z",
"3.2.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.1-1/rubyinstaller-3.2.1-1-x64.7z",
"3.2.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.2-1/rubyinstaller-3.2.2-1-x64.7z",
"3.2.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.3-1/rubyinstaller-3.2.3-1-x64.7z",
"3.2.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.4-1/rubyinstaller-3.2.4-1-x64.7z",
"3.2.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.5-1/rubyinstaller-3.2.5-1-x64.7z",
"3.2.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.6-1/rubyinstaller-3.2.6-1-x64.7z",
"3.2.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.7-1/rubyinstaller-3.2.7-1-x64.7z",
"3.3.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.0-1/rubyinstaller-3.3.0-1-x64.7z",
"3.3.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.1-1/rubyinstaller-3.3.1-1-x64.7z",
"3.3.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.2-1/rubyinstaller-3.3.2-1-x64.7z",
"3.3.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.3-1/rubyinstaller-3.3.3-1-x64.7z",
"3.3.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.4-1/rubyinstaller-3.3.4-1-x64.7z",
"3.3.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.5-1/rubyinstaller-3.3.5-1-x64.7z",
"3.3.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.6-2/rubyinstaller-3.3.6-2-x64.7z",
"3.3.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.7-1/rubyinstaller-3.3.7-1-x64.7z",
"3.4.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.1-2/rubyinstaller-3.4.1-2-x64.7z",
"3.4.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.2-1/rubyinstaller-3.4.2-1-x64.7z",
"head": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z", "head": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z",
"mingw": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mingw.7z", "mingw": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mingw.7z",
"mswin": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z", "mswin": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z",
+19 -37
View File
@@ -20,20 +20,20 @@ const msys2GCCReleaseURI = 'https://github.com/ruby/setup-msys2-gcc/releases/do
const msys2BasePath = process.env['GHCUP_MSYS2'] const msys2BasePath = process.env['GHCUP_MSYS2']
const vcPkgBasePath = process.env['VCPKG_INSTALLATION_ROOT'] const vcPkgBasePath = process.env['VCPKG_INSTALLATION_ROOT']
// needed for Ruby 2.0-2.3, and mswin, cert file used by Git for Windows // needed for Ruby 2.0-2.3, cert file used by Git for Windows
const certFile = 'C:\\Program Files\\Git\\mingw64\\ssl\\cert.pem' let certFile = 'C:\\Program Files\\Git\\mingw64\\etc\\ssl\\cert.pem'
if (!fs.existsSync(certFile)) {
certFile = 'C:\\Program Files\\Git\\mingw64\\ssl\\cert.pem'
if (!fs.existsSync(certFile)) {
throw new Error("Cannot find Git's cert file")
}
}
// location & path for old RubyInstaller DevKit (MSYS1), used with Ruby 2.0-2.3 // location & path for old RubyInstaller DevKit (MSYS1), used with Ruby 2.0-2.3
const msys1 = `${drive}:\\DevKit64` const msys1 = `${drive}:\\DevKit64`
const msysPathEntries = [`${msys1}\\mingw\\x86_64-w64-mingw32\\bin`, `${msys1}\\mingw\\bin`, `${msys1}\\bin`] const msysPathEntries = [`${msys1}\\mingw\\x86_64-w64-mingw32\\bin`, `${msys1}\\mingw\\bin`, `${msys1}\\bin`]
const virtualEnv = common.getVirtualEnvironmentName()
export function getAvailableVersions(platform, engine) { export function getAvailableVersions(platform, engine) {
if (!common.supportedPlatforms.includes(platform)) {
throw new Error(`Unsupported platform ${platform}`)
}
if (engine === 'ruby') { if (engine === 'ruby') {
return Object.keys(rubyInstallerVersions) return Object.keys(rubyInstallerVersions)
} else { } else {
@@ -46,7 +46,7 @@ export async function install(platform, engine, version) {
// The windows-2016 and windows-2019 images have MSYS2 build tools (C:/msys64/usr) // The windows-2016 and windows-2019 images have MSYS2 build tools (C:/msys64/usr)
// and MinGW build tools installed. The windows-2022 image has neither. // and MinGW build tools installed. The windows-2022 image has neither.
const hasMSYS2PreInstalled = ['windows-2019', 'windows-2016'].includes(virtualEnv) const hasMSYS2PreInstalled = ['windows-2019', 'windows-2016'].includes(platform)
if (!url.endsWith('.7z')) { if (!url.endsWith('.7z')) {
throw new Error(`URL should end in .7z: ${url}`) throw new Error(`URL should end in .7z: ${url}`)
@@ -55,22 +55,27 @@ export async function install(platform, engine, version) {
let rubyPrefix, inToolCache let rubyPrefix, inToolCache
if (common.shouldUseToolCache(engine, version)) { if (common.shouldUseToolCache(engine, version)) {
inToolCache = tc.find('Ruby', version) inToolCache = common.toolCacheFind(engine, version)
if (inToolCache) { if (inToolCache) {
rubyPrefix = inToolCache rubyPrefix = inToolCache
} else { } else {
rubyPrefix = common.getToolCacheRubyPrefix(platform, version) rubyPrefix = common.getToolCacheRubyPrefix(platform, engine, version)
} }
} else { } else {
rubyPrefix = `${drive}:\\${base}` rubyPrefix = `${drive}:\\${base}`
} }
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
if (!inToolCache) { if (!inToolCache) {
await downloadAndExtract(engine, version, url, base, rubyPrefix); await downloadAndExtract(engine, version, url, base, rubyPrefix);
} }
const windowsToolchain = core.getInput('windows-toolchain')
if (windowsToolchain === 'none') {
common.setupPath([`${rubyPrefix}\\bin`])
return rubyPrefix
}
let toolchainPaths = (version === 'mswin') ? await setupMSWin() : await setupMingw(version)
const msys2Type = common.setupPath([`${rubyPrefix}\\bin`, ...toolchainPaths]) const msys2Type = common.setupPath([`${rubyPrefix}\\bin`, ...toolchainPaths])
// install msys2 tools for all Ruby versions, only install mingw or ucrt for Rubies >= 2.4 // install msys2 tools for all Ruby versions, only install mingw or ucrt for Rubies >= 2.4
@@ -103,7 +108,7 @@ async function installGCCTools(type, version) {
// 2022-Dec ruby/msys2-gcc-pkgs now uses a suffix to delineate different archive versions. // 2022-Dec ruby/msys2-gcc-pkgs now uses a suffix to delineate different archive versions.
// At present, the only use is to indicate the included OpenSSL version. // At present, the only use is to indicate the included OpenSSL version.
// With no suffix, archives include OpenSSL 1.1.1, with a '-3.0' suffix, they include // With no suffix, archives include OpenSSL 1.1.1, with a '-3.0' suffix, they include
// OpenSSL 3.0.x. Note that the mswin archive uses OpenSSL 3. // OpenSSL 3.0.x. Note that the mswin archive uses OpenSSL 3.
// As of Jan-2023, OpenSSL 3 is used in Ruby 3.2 & all head versions. MSYS2 updated // As of Jan-2023, OpenSSL 3 is used in Ruby 3.2 & all head versions. MSYS2 updated
// to OpenSSL 3 on 14-Jan-2023. // to OpenSSL 3 on 14-Jan-2023.
let suffix = '' let suffix = ''
@@ -212,29 +217,6 @@ async function installMSYS1(version) {
async function setupMSWin() { async function setupMSWin() {
core.exportVariable('MAKE', 'nmake.exe') core.exportVariable('MAKE', 'nmake.exe')
// Pre-installed OpenSSL use C:\Program Files\Common Files\SSL
let certsDir = 'C:\\Program Files\\Common Files\\SSL\\certs'
if (!fs.existsSync(certsDir)) {
fs.mkdirSync(certsDir, { recursive: true })
}
// cert.pem location is hard-coded by OpenSSL msvc builds
let cert = 'C:\\Program Files\\Common Files\\SSL\\cert.pem'
if (!fs.existsSync(cert)) {
fs.copyFileSync(certFile, cert)
}
// vcpkg openssl uses packages\openssl_x64-windows\certs
certsDir = `${vcPkgBasePath}\\packages\\openssl_x64-windows\\certs`
if (!fs.existsSync(certsDir)) {
fs.mkdirSync(certsDir, { recursive: true })
}
// vcpkg openssl uses packages\openssl_x64-windows\cert.pem
cert = `${vcPkgBasePath}\\packages\\openssl_x64-windows\\cert.pem`
fs.copyFileSync(certFile, cert)
return await common.measure('Setting up MSVC environment', async () => addVCVARSEnv()) return await common.measure('Setting up MSVC environment', async () => addVCVARSEnv())
} }
Generated
+262 -145
View File
@@ -2,29 +2,30 @@
# yarn lockfile v1 # yarn lockfile v1
"@actions/cache@^3": "@actions/cache@^4.0.0":
version "3.0.6" version "4.0.0"
resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-3.0.6.tgz#b76c51a78c927fcf0eb631b96a07e34f575c422b" resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-4.0.0.tgz#24845cced4326b11b6115fd3e2cff8e7ea3afed2"
integrity sha512-Tttit+nqmxgb2M5Ufj5p8Lwd+fx329HOTLzxMrY4aaaZqBzqetgWlEfszMyiXfX4cJML+bzLJbyD9rNYt8TJ8g== integrity sha512-WIuxjnZ44lNYtIS4fqSaYvF00hORdy3cSin+jx8xNgBVGWnNIAiCBHjlwusVQlcgExoQC9pHXGrDsZyZr7rCDQ==
dependencies: dependencies:
"@actions/core" "^1.10.0" "@actions/core" "^1.11.1"
"@actions/exec" "^1.0.1" "@actions/exec" "^1.0.1"
"@actions/glob" "^0.1.0" "@actions/glob" "^0.1.0"
"@actions/http-client" "^2.0.1" "@actions/http-client" "^2.1.1"
"@actions/io" "^1.0.1" "@actions/io" "^1.0.1"
"@azure/abort-controller" "^1.1.0" "@azure/abort-controller" "^1.1.0"
"@azure/ms-rest-js" "^2.6.0" "@azure/ms-rest-js" "^2.6.0"
"@azure/storage-blob" "^12.8.0" "@azure/storage-blob" "^12.13.0"
semver "^6.1.0" "@protobuf-ts/plugin" "^2.9.4"
uuid "^3.3.3" semver "^6.3.1"
twirp-ts "^2.5.0"
"@actions/core@^1.10.0", "@actions/core@^1.2.6": "@actions/core@^1.11.1", "@actions/core@^1.2.6":
version "1.10.0" version "1.11.1"
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.0.tgz#44551c3c71163949a2f06e94d9ca2157a0cfac4f" resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.11.1.tgz#ae683aac5112438021588030efb53b1adb86f172"
integrity sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug== integrity sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==
dependencies: dependencies:
"@actions/exec" "^1.1.1"
"@actions/http-client" "^2.0.1" "@actions/http-client" "^2.0.1"
uuid "^8.3.2"
"@actions/exec@^1.0.0", "@actions/exec@^1.0.1", "@actions/exec@^1.1.1": "@actions/exec@^1.0.0", "@actions/exec@^1.0.1", "@actions/exec@^1.1.1":
version "1.1.1" version "1.1.1"
@@ -41,17 +42,17 @@
"@actions/core" "^1.2.6" "@actions/core" "^1.2.6"
minimatch "^3.0.4" minimatch "^3.0.4"
"@actions/http-client@^2.0.1": "@actions/http-client@^2.0.1", "@actions/http-client@^2.1.1":
version "2.0.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c" resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.1.1.tgz#a8e97699c315bed0ecaeaaeb640948470d4586a0"
integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw== integrity sha512-qhrkRMB40bbbLo7gF+0vu+X+UawOvQQqNAA/5Unx774RS8poaOhThDOG6BGmxvAnxhQnDp2BG/ZUm65xZILTpw==
dependencies: dependencies:
tunnel "^0.0.6" tunnel "^0.0.6"
"@actions/io@^1.0.1", "@actions/io@^1.1.1", "@actions/io@^1.1.2": "@actions/io@^1.0.1", "@actions/io@^1.1.1", "@actions/io@^1.1.2":
version "1.1.2" version "1.1.3"
resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.2.tgz#766ac09674a289ce0f1550ffe0a6eac9261a8ea9" resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71"
integrity sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw== integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==
"@actions/tool-cache@^2": "@actions/tool-cache@^2":
version "2.0.1" version "2.0.1"
@@ -73,17 +74,18 @@
tslib "^2.2.0" tslib "^2.2.0"
"@azure/core-auth@^1.1.4", "@azure/core-auth@^1.3.0": "@azure/core-auth@^1.1.4", "@azure/core-auth@^1.3.0":
version "1.4.0" version "1.5.0"
resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.4.0.tgz#6fa9661c1705857820dbc216df5ba5665ac36a9e" resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.5.0.tgz#a41848c5c31cb3b7c84c409885267d55a2c92e44"
integrity sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ== integrity sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==
dependencies: dependencies:
"@azure/abort-controller" "^1.0.0" "@azure/abort-controller" "^1.0.0"
"@azure/core-util" "^1.1.0"
tslib "^2.2.0" tslib "^2.2.0"
"@azure/core-http@^2.0.0": "@azure/core-http@^3.0.0":
version "2.3.1" version "3.0.3"
resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-2.3.1.tgz#eed8a7d012ba8c576c557828f66af0fc4e52b23a" resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-3.0.3.tgz#792c0af7d8ebec7d34a99bbd7108aa370cd49948"
integrity sha512-cur03BUwV0Tbv81bQBOLafFB02B6G++K6F2O3IMl8pSE2QlXm3cu11bfyBNlDUKi5U+xnB3GC63ae3athhkx6Q== integrity sha512-QMib3wXotJMFhHgmJBPUF9YsyErw34H0XDFQd9CauH7TPB+RGcyl9Ayy7iURtJB04ngXhE6YwrQsWDXlSLrilg==
dependencies: dependencies:
"@azure/abort-controller" "^1.0.0" "@azure/abort-controller" "^1.0.0"
"@azure/core-auth" "^1.3.0" "@azure/core-auth" "^1.3.0"
@@ -95,25 +97,25 @@
form-data "^4.0.0" form-data "^4.0.0"
node-fetch "^2.6.7" node-fetch "^2.6.7"
process "^0.11.10" process "^0.11.10"
tough-cookie "^4.0.0"
tslib "^2.2.0" tslib "^2.2.0"
tunnel "^0.0.6" tunnel "^0.0.6"
uuid "^8.3.0" uuid "^8.3.0"
xml2js "^0.4.19" xml2js "^0.5.0"
"@azure/core-lro@^2.2.0": "@azure/core-lro@^2.2.0":
version "2.4.0" version "2.5.4"
resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.4.0.tgz#e3fdff797b045ee753aab25c3d2ecc0aa3e0a539" resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.5.4.tgz#b21e2bcb8bd9a8a652ff85b61adeea51a8055f90"
integrity sha512-F65+rYkll1dpw3RGm8/SSiSj+/QkMeYDanzS/QKlM1dmuneVyXbO46C88V1MRHluLGdMP6qfD3vDRYALn0z0tQ== integrity sha512-3GJiMVH7/10bulzOKGrrLeG/uCBH/9VtxqaMcB9lIqAeamI/xYQSHJL/KcsLDuH+yTjYpro/u6D/MuRe4dN70Q==
dependencies: dependencies:
"@azure/abort-controller" "^1.0.0" "@azure/abort-controller" "^1.0.0"
"@azure/core-util" "^1.2.0"
"@azure/logger" "^1.0.0" "@azure/logger" "^1.0.0"
tslib "^2.2.0" tslib "^2.2.0"
"@azure/core-paging@^1.1.1": "@azure/core-paging@^1.1.1":
version "1.4.0" version "1.5.0"
resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.4.0.tgz#b04a73ad18149733a848c3089a5e5ed144592338" resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.5.0.tgz#5a5b09353e636072e6a7fc38f7879e11d0afb15f"
integrity sha512-tabFtZTg8D9XqZKEfNUOGh63SuYeOxmvH4GDcOJN+R1bZWZ1FZskctgY9Pmuwzhn+0Xvq9rmimK9hsvtLkeBsw== integrity sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==
dependencies: dependencies:
tslib "^2.2.0" tslib "^2.2.0"
@@ -125,43 +127,42 @@
"@opentelemetry/api" "^1.0.1" "@opentelemetry/api" "^1.0.1"
tslib "^2.2.0" tslib "^2.2.0"
"@azure/core-util@^1.1.1": "@azure/core-util@^1.1.0", "@azure/core-util@^1.1.1", "@azure/core-util@^1.2.0":
version "1.1.1" version "1.4.0"
resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.1.1.tgz#8f87b3dd468795df0f0849d9f096c3e7b29452c1" resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.4.0.tgz#c120a56b3e48a9e4d20619a0b00268ae9de891c7"
integrity sha512-A4TBYVQCtHOigFb2ETiiKFDocBoI1Zk2Ui1KpI42aJSIDexF7DHQFpnjonltXAIU/ceH+1fsZAWWgvX6/AKzog== integrity sha512-eGAyJpm3skVQoLiRqm/xPa+SXi/NPDdSHMxbRAz2lSprd+Zs+qrpQGQQ2VQ3Nttu+nSZR4XoYQC71LbEI7jsig==
dependencies: dependencies:
"@azure/abort-controller" "^1.0.0" "@azure/abort-controller" "^1.0.0"
tslib "^2.2.0" tslib "^2.2.0"
"@azure/logger@^1.0.0": "@azure/logger@^1.0.0":
version "1.0.3" version "1.0.4"
resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96" resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.4.tgz#28bc6d0e5b3c38ef29296b32d35da4e483593fa1"
integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g== integrity sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==
dependencies: dependencies:
tslib "^2.2.0" tslib "^2.2.0"
"@azure/ms-rest-js@^2.6.0": "@azure/ms-rest-js@^2.6.0":
version "2.6.2" version "2.7.0"
resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.6.2.tgz#185a9d643ea55c696134af76a5c6026c94e26217" resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.7.0.tgz#8639065577ffdf4946951e1d246334ebfd72d537"
integrity sha512-0/8rOxAoR9M3qKUdbGOIYtHtQkm4m5jdoDNdxTU0DkOr84KwyAdJuW/RfjJinGyig4h73DNF0rdCl6XowgCYcg== integrity sha512-ngbzWbqF+NmztDOpLBVDxYM+XLcUj7nKhxGbSU9WtIsXfRB//cf2ZbAG5HkOrhU9/wd/ORRB6lM/d69RKVjiyA==
dependencies: dependencies:
"@azure/core-auth" "^1.1.4" "@azure/core-auth" "^1.1.4"
abort-controller "^3.0.0" abort-controller "^3.0.0"
form-data "^2.5.0" form-data "^2.5.0"
node-fetch "^2.6.7" node-fetch "^2.6.7"
tough-cookie "^3.0.1"
tslib "^1.10.0" tslib "^1.10.0"
tunnel "0.0.6" tunnel "0.0.6"
uuid "^8.3.2" uuid "^8.3.2"
xml2js "^0.4.19" xml2js "^0.5.0"
"@azure/storage-blob@^12.8.0": "@azure/storage-blob@^12.13.0":
version "12.12.0" version "12.16.0"
resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.12.0.tgz#25e277c885692d5adcd8c2a949789b2837a74c59" resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.16.0.tgz#c41fb1e538d6f6e2a6756bfcc69382eededf4fa1"
integrity sha512-o/Mf6lkyYG/eBW4/hXB9864RxVNmAkcKHjsGR6Inlp5hupa3exjSyH2KjO3tLO//YGA+tS+17hM2bxRl9Sn16g== integrity sha512-jz33rUSUGUB65FgYrTRgRDjG6hdPHwfvHe+g/UrwVG8MsyLqSxg9TaW7Yuhjxu1v1OZ5xam2NU6+IpCN0xJO8Q==
dependencies: dependencies:
"@azure/abort-controller" "^1.0.0" "@azure/abort-controller" "^1.0.0"
"@azure/core-http" "^2.0.0" "@azure/core-http" "^3.0.0"
"@azure/core-lro" "^2.2.0" "@azure/core-lro" "^2.2.0"
"@azure/core-paging" "^1.1.1" "@azure/core-paging" "^1.1.1"
"@azure/core-tracing" "1.0.0-preview.13" "@azure/core-tracing" "1.0.0-preview.13"
@@ -170,22 +171,58 @@
tslib "^2.2.0" tslib "^2.2.0"
"@opentelemetry/api@^1.0.1": "@opentelemetry/api@^1.0.1":
version "1.3.0" version "1.6.0"
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.3.0.tgz#27c6f776ac3c1c616651e506a89f438a0ed6a055" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.6.0.tgz#de2c6823203d6f319511898bb5de7e70f5267e19"
integrity sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ== integrity sha512-OWlrQAnWn9577PhVgqjUvMr1pg57Bc4jv0iL4w0PRuOSRvq67rvHW9Ie/dZVMvCzhSCB+UxhcY/PmCmFj33Q+g==
"@protobuf-ts/plugin-framework@^2.0.7", "@protobuf-ts/plugin-framework@^2.9.4":
version "2.9.4"
resolved "https://registry.yarnpkg.com/@protobuf-ts/plugin-framework/-/plugin-framework-2.9.4.tgz#d7a617dedda4a12c568fdc1db5aa67d5e4da2406"
integrity sha512-9nuX1kjdMliv+Pes8dQCKyVhjKgNNfwxVHg+tx3fLXSfZZRcUHMc1PMwB9/vTvc6gBKt9QGz5ERqSqZc0++E9A==
dependencies:
"@protobuf-ts/runtime" "^2.9.4"
typescript "^3.9"
"@protobuf-ts/plugin@^2.9.4":
version "2.9.4"
resolved "https://registry.yarnpkg.com/@protobuf-ts/plugin/-/plugin-2.9.4.tgz#4e593e59013aaad313e7abbabe6e61964ef0ca28"
integrity sha512-Db5Laq5T3mc6ERZvhIhkj1rn57/p8gbWiCKxQWbZBBl20wMuqKoHbRw4tuD7FyXi+IkwTToaNVXymv5CY3E8Rw==
dependencies:
"@protobuf-ts/plugin-framework" "^2.9.4"
"@protobuf-ts/protoc" "^2.9.4"
"@protobuf-ts/runtime" "^2.9.4"
"@protobuf-ts/runtime-rpc" "^2.9.4"
typescript "^3.9"
"@protobuf-ts/protoc@^2.9.4":
version "2.9.4"
resolved "https://registry.yarnpkg.com/@protobuf-ts/protoc/-/protoc-2.9.4.tgz#a92262ee64d252998540238701d2140f4ffec081"
integrity sha512-hQX+nOhFtrA+YdAXsXEDrLoGJqXHpgv4+BueYF0S9hy/Jq0VRTVlJS1Etmf4qlMt/WdigEes5LOd/LDzui4GIQ==
"@protobuf-ts/runtime-rpc@^2.9.4":
version "2.9.4"
resolved "https://registry.yarnpkg.com/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.9.4.tgz#d6ab2316c0ba67ce5a08863bb23203a837ff2a3b"
integrity sha512-y9L9JgnZxXFqH5vD4d7j9duWvIJ7AShyBRoNKJGhu9Q27qIbchfzli66H9RvrQNIFk5ER7z1Twe059WZGqERcA==
dependencies:
"@protobuf-ts/runtime" "^2.9.4"
"@protobuf-ts/runtime@^2.9.4":
version "2.9.4"
resolved "https://registry.yarnpkg.com/@protobuf-ts/runtime/-/runtime-2.9.4.tgz#db8a78b1c409e26d258ca39464f4757d804add8f"
integrity sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg==
"@types/node-fetch@^2.5.0": "@types/node-fetch@^2.5.0":
version "2.6.2" version "2.6.5"
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.5.tgz#972756a9a0fe354b2886bf3defe667ddb4f0d30a"
integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== integrity sha512-OZsUlr2nxvkqUFLSaY2ZbA+P1q22q+KrlxWOn/38RX+u5kTkYL2mTujEpzUhGkS+K/QCYp9oagfXG39XOzyySg==
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
form-data "^3.0.0" form-data "^4.0.0"
"@types/node@*": "@types/node@*":
version "18.11.9" version "20.6.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.2.tgz#a065925409f59657022e9063275cd0b9bd7e1b12"
integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== integrity sha512-Y+/1vGBHV/cYk6OI1Na/LHzwnlNCAfU3ZNGrc1LdRe/LAIbdDPTTv/HU3M7yXN448aTVDq3eKRm2cg7iKLb8gw==
"@types/tunnel@^0.0.3": "@types/tunnel@^0.0.3":
version "0.0.3" version "0.0.3"
@@ -224,6 +261,14 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0" balanced-match "^1.0.0"
concat-map "0.0.1" concat-map "0.0.1"
camel-case@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
dependencies:
pascal-case "^3.1.2"
tslib "^2.0.3"
combined-stream@^1.0.6, combined-stream@^1.0.8: combined-stream@^1.0.6, combined-stream@^1.0.8:
version "1.0.8" version "1.0.8"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -231,6 +276,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8:
dependencies: dependencies:
delayed-stream "~1.0.0" delayed-stream "~1.0.0"
commander@^6.1.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
concat-map@0.0.1: concat-map@0.0.1:
version "0.0.1" version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -241,6 +291,14 @@ delayed-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
dot-object@^2.1.4:
version "2.1.5"
resolved "https://registry.yarnpkg.com/dot-object/-/dot-object-2.1.5.tgz#0ff0f1bff42c47ff06272081b208658c0a0231c2"
integrity sha512-xHF8EP4XH/Ba9fvAF2LDd5O3IITVolerVV6xvkxoM8zlGEiCUrggpAnHyOoKJKCrhvPcGATFAUwIujj7bRG5UA==
dependencies:
commander "^6.1.0"
glob "^7.1.6"
event-target-shim@^5.0.0: event-target-shim@^5.0.0:
version "5.0.1" version "5.0.1"
resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
@@ -260,15 +318,6 @@ form-data@^2.5.0:
combined-stream "^1.0.6" combined-stream "^1.0.6"
mime-types "^2.1.12" mime-types "^2.1.12"
form-data@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"
form-data@^4.0.0: form-data@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
@@ -278,10 +327,52 @@ form-data@^4.0.0:
combined-stream "^1.0.8" combined-stream "^1.0.8"
mime-types "^2.1.12" mime-types "^2.1.12"
ip-regex@^2.1.0: fs.realpath@^1.0.0:
version "2.1.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
glob@^7.1.6:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.1.1"
once "^1.3.0"
path-is-absolute "^1.0.0"
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
dependencies:
once "^1.3.0"
wrappy "1"
inherits@2:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
linux-os-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/linux-os-info/-/linux-os-info-2.0.0.tgz#32a251077c13af1a69dbcb36a168901208e32776"
integrity sha512-ZopyH4kT2Ehnmix8iUgS/41pfv7fSlUV1JukIn3DB3qD3byvhBNtgCbUApoAtiqcHRLKXCY3zakXlJgiExm2Qg==
lodash@^4.17.15:
version "4.17.21"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
lower-case@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
dependencies:
tslib "^2.0.3"
lru-cache@^6.0.0: lru-cache@^6.0.0:
version "6.0.0" version "6.0.0"
@@ -302,115 +393,131 @@ mime-types@^2.1.12:
dependencies: dependencies:
mime-db "1.52.0" mime-db "1.52.0"
minimatch@^3.0.4: minimatch@^3.0.4, minimatch@^3.1.1:
version "3.1.2" version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies: dependencies:
brace-expansion "^1.1.7" brace-expansion "^1.1.7"
no-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
dependencies:
lower-case "^2.0.2"
tslib "^2.0.3"
node-fetch@^2.6.7: node-fetch@^2.6.7:
version "2.6.7" version "2.7.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
dependencies: dependencies:
whatwg-url "^5.0.0" whatwg-url "^5.0.0"
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
pascal-case@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
dependencies:
no-case "^3.0.4"
tslib "^2.0.3"
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
path-to-regexp@^6.2.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.3.0.tgz#2b6a26a337737a8e1416f9272ed0766b1c0389f4"
integrity sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==
prettier@^2.5.1:
version "2.8.8"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
process@^0.11.10: process@^0.11.10:
version "0.11.10" version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
psl@^1.1.28, psl@^1.1.33:
version "1.9.0"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
punycode@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
querystringify@^2.1.1:
version "2.2.0"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
requires-port@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
sax@>=0.6.0: sax@>=0.6.0:
version "1.2.4" version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
semver@^6.1.0: semver@^6.1.0, semver@^6.3.1:
version "6.3.0" version "6.3.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.3.7: semver@^7.3.7:
version "7.3.8" version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
dependencies: dependencies:
lru-cache "^6.0.0" lru-cache "^6.0.0"
tough-cookie@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
dependencies:
ip-regex "^2.1.0"
psl "^1.1.28"
punycode "^2.1.1"
tough-cookie@^4.0.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874"
integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==
dependencies:
psl "^1.1.33"
punycode "^2.1.1"
universalify "^0.2.0"
url-parse "^1.5.3"
tr46@~0.0.3: tr46@~0.0.3:
version "0.0.3" version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
ts-poet@^4.5.0:
version "4.15.0"
resolved "https://registry.yarnpkg.com/ts-poet/-/ts-poet-4.15.0.tgz#637145fa554d3b27c56541578df0ce08cd9eb328"
integrity sha512-sLLR8yQBvHzi9d4R1F4pd+AzQxBfzOSSjfxiJxQhkUoH5bL7RsAC6wgvtVUQdGqiCsyS9rT6/8X2FI7ipdir5g==
dependencies:
lodash "^4.17.15"
prettier "^2.5.1"
tslib@^1.10.0: tslib@^1.10.0:
version "1.14.1" version "1.14.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.0.3:
version "2.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
tslib@^2.2.0: tslib@^2.2.0:
version "2.4.1" version "2.6.2"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
tunnel@0.0.6, tunnel@^0.0.6: tunnel@0.0.6, tunnel@^0.0.6:
version "0.0.6" version "0.0.6"
resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
universalify@^0.2.0: twirp-ts@^2.5.0:
version "0.2.0" version "2.5.0"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" resolved "https://registry.yarnpkg.com/twirp-ts/-/twirp-ts-2.5.0.tgz#b43f09e95868d68ecd5c755ecbb08a7e51388504"
integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== integrity sha512-JTKIK5Pf/+3qCrmYDFlqcPPUx+ohEWKBaZy8GL8TmvV2VvC0SXVyNYILO39+GCRbqnuP6hBIF+BVr8ZxRz+6fw==
url-parse@^1.5.3:
version "1.5.10"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
dependencies: dependencies:
querystringify "^2.1.1" "@protobuf-ts/plugin-framework" "^2.0.7"
requires-port "^1.0.0" camel-case "^4.1.2"
dot-object "^2.1.4"
path-to-regexp "^6.2.0"
ts-poet "^4.5.0"
yaml "^1.10.2"
uuid@^3.3.2, uuid@^3.3.3: typescript@^3.9:
version "3.9.10"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"
integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==
uuid@^3.3.2:
version "3.4.0" version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
@@ -433,10 +540,15 @@ whatwg-url@^5.0.0:
tr46 "~0.0.3" tr46 "~0.0.3"
webidl-conversions "^3.0.0" webidl-conversions "^3.0.0"
xml2js@^0.4.19: wrappy@1:
version "0.4.23" version "1.0.2"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
xml2js@^0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7"
integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==
dependencies: dependencies:
sax ">=0.6.0" sax ">=0.6.0"
xmlbuilder "~11.0.0" xmlbuilder "~11.0.0"
@@ -450,3 +562,8 @@ yallist@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^1.10.2:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==