1548 Commits
Author SHA1 Message Date
Hiroshi SHIBATAandClaude Opus 5.5 af867e0893 Stop using the macos-14 runner image
GitHub retires the macOS 14 image on November 2, 2026. Jobs that ran only there move to macos-15, the oldest remaining image, and the matrices that also cover newer images drop it.

https://github.blog/changelog/2026-10-01-github-actions-macos-14-runner-image-retirement/

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 14:47:03 -07:00
st0012 f87d6b0d1e Use ubuntu-latest for macOS result jobs
The result jobs in macOS workflows only check if other jobs failed
(just runs `exit 1`). They don't need macOS runners. Using
ubuntu-latest instead frees up macOS runner slots and starts faster
due to shorter queue times.
2026-10-02 14:47:03 -07:00
Hiroshi SHIBATA 8f372fcb51 Re-bootstrap vcpkg after updating its registry
microsoft/vcpkg bumped `scripts/vcpkg-tools.json` to schema version 2,
which the vcpkg.exe bundled in the runner images cannot parse, so every
Windows job started failing at `vcpkg install` right after the `git pull`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
(cherry picked from commit f275e95ff2)
2026-07-30 19:06:09 -07:00
Hiroshi SHIBATA 07f7a80b13 CI: trim the tarball-test macOS matrix on PR and push
The full macOS fan-out (10 jobs, about 117 runner-minutes) repeats
test tasks that macos.yml already runs from the git tree on every
event; what is tarball-specific is only that the packaged tarball
configures, builds and installs. Run a single check on macos-26 for
pull requests and pushes, and keep the full matrix for
workflow_dispatch, which is how the nightly schedule and release
verification invoke it. Only macOS is trimmed: its org-wide
concurrency pool of 50 runners saturates during peak hours and has
been delaying release jobs, while Linux and Windows share a pool with
headroom.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit df977545f0)
2026-07-16 12:44:21 +09:00
Hiroshi SHIBATA 3a5cba6a09 Use archname input for downloaded-cache path in tarball-windows.yml
The cache step hardcoded snapshot-*, which no longer matches when this
reusable workflow is called with a release archname such as
ruby-3.4.0-rc1 from ruby/actions, turning cache save and restore into
a no-op.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 674e93935c)
2026-07-16 12:44:21 +09:00
Nobuyoshi Nakada dd24d3a5ae CI: Fetch vcpkg repository before install for baseline
(cherry picked from commit 10f302f587)
2026-07-13 16:17:03 -07:00
Hiroshi SHIBATA 6070d845ac Reference VCPKG_DEFAULT_TRIPLET instead of hardcoding x64-windows
OPENSSL_MODULES moves into the setup env step where the triplet is
available as an environment variable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 39a61bc1ef)
2026-07-13 16:17:03 -07:00
Hiroshi SHIBATA 113565c704 Derive the vcpkg feed URL from the repository owner
Compose VCPKG_BINARY_SOURCES from FEED_URL in the setup step so the
feed URL is defined in one place, and use github.repository_owner so
forks running these workflows use their own GitHub Packages feed
instead of failing to authenticate against the ruby feed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 0574c02a6c)
2026-07-13 16:17:03 -07:00
Hiroshi SHIBATA 2379c5faa3 Do not declare permissions in the reusable tarball-windows workflow
A called workflow may only keep or reduce the permissions of the caller
job. On fork pull requests the caller token is capped to read-only, so
declaring packages: write here is an elevation request and the job
fails at startup. Inherit the caller's permissions instead.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 19b32cc45c)
2026-07-13 16:17:03 -07:00
Hiroshi SHIBATA cbe6f03faa Use GitHub Packages NuGet feed for vcpkg binary caching
vcpkg-tool removed the x-gha provider, and the actions/cache strategy
was wasteful: windows.yml rebuilt every port on each baseline bump, and
tarball-windows.yml keyed its cache on github.sha, saving a new ~22MB
entry per run and pinning the repository at the 10GB cache quota. A
NuGet feed on GitHub Packages caches binaries per port keyed by vcpkg's
ABI hash and is shared across branches and workflows. tarball-windows
now installs from the manifest included in the snapshot so it reuses
the packages built by windows.yml.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit debd913e7e)
2026-07-13 16:17:03 -07:00
Takashi Kokubun 6cfdff2bd8 ci: install ruby-devel and fiddle gem for Cygwin build
- Add ruby-devel to the Cygwin package list so native extensions can build
- Install the fiddle gem explicitly via Cygwin bash before configuring

(cherry picked from commit fd34f67b18)
2026-07-08 22:02:07 -07:00
Hiroshi SHIBATA 15c71c929a Keep gcc-14 variant on macos-15
clang on macos-26 does not honor --with-gcc=gcc-14.

(cherry picked from commit f0fd45ced4)
2026-06-15 09:50:47 -07:00
Hiroshi SHIBATA 667480d078 Run macOS CI on macos-26 by default
Backport the macos.yml matrix change from 5c762e786b so this branch
also exercises macos-15-intel (and makes macos-26 the default runner).
Other workflows touched by the original commit are out of scope.
2026-06-15 09:50:47 -07:00
Hiroshi SHIBATA 4936533ec5 tarball-macos: Use an isolated prefix on macos-15-intel
The macos-15 runner image ships a pre-installed Ruby under /usr/local
whose default-gem directory shares the 3.3.0 ABI path with the snapshot
build. With the default prefix, RDoc generation scans that directory and
dies on a stale bundler default-gem stub left by the runner's RubyGems
self-update. Build, install and verify under an isolated prefix instead.

(cherry picked from commit dc24122d90)
2026-06-15 09:50:47 -07:00
Hiroshi SHIBATA 9ad5e20f41 Build full path for HOME stat snapshot
Dir.each_child yields entry names, so stat/digest/children ran against
the working directory instead of HOME. Join dir and name first.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 76be52bd01)
2026-06-02 14:32:44 -07:00
Hiroshi SHIBATAandClaude Opus 4.8 b5d0e8b34f Inline the skip-detection run command
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

(cherry picked from commit c1571b36ab)
2026-06-02 14:32:44 -07:00
Hiroshi SHIBATA 2cf026a5b4 Run macOS CI on macos-26 by default
Make macos-26 the default runner for the tarball build verification and
keep macos-15, macos-15-intel, and macos-14 as regression coverage.

(cherry picked from commit 5c762e786b)
2026-06-02 14:32:44 -07:00
Hiroshi SHIBATA c8c88a997b Pass only the required secrets to tarball reusable workflows
Replace secrets: inherit with explicit Slack webhook secrets, which are
the only secrets the ubuntu/macos/windows builds use. tarball-non-development
uses no secrets, so drop inherit there entirely.

(cherry picked from commit daea48078c)
2026-06-02 14:32:44 -07:00
Hiroshi SHIBATA 7a6c97c87f Do not persist credentials in tarball-test checkout
The subsequent git steps only fetch from the public origin and operate
on local branches, so the token does not need to be persisted.

(cherry picked from commit f00e912db0)
2026-06-02 14:32:44 -07:00
Hiroshi SHIBATA b6216c62a6 Restrict GITHUB_TOKEN permissions in tarball reusable workflows
These reusable workflows only check out, download artifacts, build, and
test, so contents: read is sufficient.

(cherry picked from commit 28c8bef6d7)
2026-06-02 14:32:44 -07:00
Nobuyoshi Nakada 39db7a37f7 Set the upstream to the base branch instead of master
(cherry picked from commit e7dfc59e01)
2026-06-02 14:32:44 -07:00
Nobuyoshi Nakada 4fe196ccf6 Fetch the base branch only
`fetch-depth: 0` means fetching all heads and tags.

(cherry picked from commit f815f122d7)
2026-06-02 14:32:44 -07:00
Nobuyoshi Nakada c3f2547921 Skip tarball tests on documents-only commits
Except for non-development that runs build only.

(cherry picked from commit 4f683a2820)
2026-06-02 14:32:44 -07:00
Nobuyoshi Nakada 02cbd09bab Simplify save-stats.rb without Pathname
(cherry picked from commit 02ad18dc58)
2026-06-02 14:32:44 -07:00
Nobuyoshi Nakada 2c90e65520 Reuse the script to save stats of HOME 2026-05-21 19:54:50 -07:00
Hiroshi SHIBATA d7d742df85 Backport https://github.com/ruby/ruby/pull/17072 2026-05-21 19:54:50 -07:00
Hiroshi SHIBATA f562993d93 Trim tarball-* reusable inputs
Backport of ruby/ruby#17063 to ruby_4_0. All four reusables and the
make-snapshot composite are now blob-identical to master, including
tarball-windows since ruby_4_0 already runs the modern windows-2022 +
windows-2025-vs2026 matrix. tarball-test no longer passes
allow-failures, remove-gnupg, notify-ruby-sha, or branch-label because
the reusables no longer accept them. notify-release-channel is wired
through to all three per-OS calls so the schedule dispatcher can keep
routing failures to two Slack channels. The tarball job now invokes
ruby/ruby/.github/actions/make-snapshot@master so future composite
fixes don't need re-cherry-picking.
2026-05-21 15:53:28 +09:00
Hiroshi SHIBATAandClaude Opus 4.7 283deaecaa Pass archname through env to avoid template injection
zizmor flags `cd "${{ inputs.archname }}/"` inside `run:` blocks as
code injection via template expansion: GitHub Actions substitutes the
input value into the shell script verbatim, so a caller passing shell
metacharacters could execute arbitrary code.

Hoist `ARCHNAME: ${{ inputs.archname }}` to the job-level `env:` block
and reference it as `$ARCHNAME` in shell, matching the pattern already
used by tarball-windows.yml (see 942f45b2af).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 17:09:37 +09:00
Hiroshi SHIBATAandClaude Opus 4.7 a1d2f22894 Use inputs.archname instead of snapshot-* glob in tarball-test
The per-OS tarball-test workflows currently hard-code `cd snapshot-*/`
to enter the extracted tarball directory, which prevents callers from
producing tarballs under any other prefix (for example `ruby-3.4.0-rc1`
emitted by `tool/make-snapshot` when given a version argument).

Replace the glob with `cd "${{ inputs.archname }}/"`. Existing snapshot
callers still pass `snapshot-<branch>` so behavior is unchanged for
this repository, but ruby/actions can now reuse the same workflows
from `draft-release.yml` with `ruby-<version>` archnames.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 17:09:37 +09:00
Hiroshi SHIBATAandClaude Opus 4.7 f80b748463 Inline modern Windows configuration in tarball-windows.yml
ruby_4_0 only builds with vssetup.cmd against windows-2022 and
windows-2025-vs2026, so the mode input and the legacy branch are
dead code on this branch. Drop the input, hardcode the modern
matrix and setup-env step, and stop passing mode: modern from
tarball-test.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 14:51:41 +09:00
Hiroshi SHIBATAandClaude Opus 4.7 966f552424 Dispatch tarball-test from master schedule instead of cron
GitHub Actions schedule triggers only fire on the default branch, so
the daily cron in tarball-test.yml never ran on ruby_4_0. Switch the
trigger to workflow_dispatch so master's tarball-test-schedule.yml
can dispatch it via gh workflow run --ref ruby_4_0.

https://github.com/ruby/ruby/commit/9e92537490

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 14:51:41 +09:00
Hiroshi SHIBATAandClaude Opus 4.7 0afda39afe Add tarball-test workflow for snapshot tarball CI
Port the daily snapshot tarball pipeline from ruby/actions into
ruby/ruby so the tarball build and per-OS tests run on every push and
pull request. The make-snapshot composite action gains a srcdir input so
the same logic can either clone ruby/ruby (daily upload from ruby/actions)
or operate on the working tree (this workflow).

ruby_4_0 mirrors master and only flips env.BRANCH in tarball-test.yml;
archname / branch-label / Materialize all derive from it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 18:08:03 +09:00
Nobuyoshi Nakada ed695b6152 windows: Use the default vcpkg root 2026-05-19 16:52:29 +09:00
Nobuyoshi Nakada 1e5aa54a22 windows: Skip installing vcpkg if manifest mode is already available 2026-05-19 16:52:29 +09:00
Nobuyoshi Nakada f0fa0bdd50 windows: Extract new env lines by pwsh
Stop using uutils-coreutils that fails to install on the arm64-windows
runner.
2026-05-19 16:52:29 +09:00
Takashi Kokubun b01ca60e88 Allow auto-sync from Prism ruby-4.0 2026-03-16 16:19:50 -07:00
Nobuyoshi Nakada ad231cdf4a Windows: Explicitly specify the use of coreutils commands
It appears that shims for individual commands are no longer being
created.
2026-03-11 17:42:58 -07:00
Hiroshi SHIBATA 21f2bbf322 Lock to install uutils-coreutils@0.5.0 2026-03-09 08:19:27 -07:00
Hiroshi SHIBATA aec8563df2 Use Oregon mirror for cygwin download 2026-02-12 13:51:45 -08:00
Stan Lo cc4ce48f12 Remove ruby-bench excludes
These benchmarks should be working fine now.
2026-01-12 17:01:27 -08:00
Takashi Kokubun e7b92abf3a ruby-bench: Prefer --excludes over rm -rf
to remind us of skipped benchmarks in the CI job names
2026-01-05 13:42:15 -08:00
Hiroshi SHIBATA 34aa97ed60 Disabled to run lobsters benchmark because it didn't work with Ruby 4.1 yet 2026-01-05 13:41:58 -08:00
Hiroshi SHIBATA d555ddcfb3 uutils-coreutils 0.5.0 has been removed uutils wrapper 2026-01-05 13:21:10 -08:00
Hiroshi SHIBATA 6e20e92d0a Disable auto-update of bundled gems 2025-12-24 19:44:54 +09:00
Hiroshi SHIBATA 7d2815d907 Add flag for prevent to update NEWS.md for release day. 2025-12-24 13:48:35 +09:00
Nobuyoshi Nakada bd4353ba7a CI: Assume all C source files are UTF-8 now 2025-12-17 17:38:52 +09:00
Hiroshi SHIBATA 2117e612ca Disabled gem sync for Ruby 4.0 release 2025-12-17 11:11:52 +09:00
dependabot[bot] a2dc4d7faa Bump actions/upload-artifact from 5.0.0 to 6.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 12:11:52 +09:00
dependabot[bot] 76f30030c9 Bump msys2/setup-msys2 from 2.29.0 to 2.30.0
Bumps [msys2/setup-msys2](https://github.com/msys2/setup-msys2) from 2.29.0 to 2.30.0.
- [Release notes](https://github.com/msys2/setup-msys2/releases)
- [Changelog](https://github.com/msys2/setup-msys2/blob/main/CHANGELOG.md)
- [Commits](https://github.com/msys2/setup-msys2/compare/fb197b72ce45fb24f17bf3f807a388985654d1f2...4f806de0a5a7294ffabaff804b38a9b435a73bda)

---
updated-dependencies:
- dependency-name: msys2/setup-msys2
  dependency-version: 2.30.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-14 18:33:35 -08:00
dependabot[bot] dd25fdcd4a Bump actions/cache from 5.0.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/a7833574556fa59680c1b7cb190c1735db73ebf0...9255dc7a253b0ccc959486e2bca901246202afeb)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-14 18:31:44 -08:00