918 Commits

Author SHA1 Message Date
nagachika
5c2a9b2789 merge revision(s) b0a4e2399b34701d4fc05f9543142b0c73d1fb9b:
CI: mingw: Use the official actions for msys2

	Because ruby/setup-ruby is affected to test result.

Also includes the prerequisite changes from e4b386e090, 90f8199412,
a443cd012a and 4adb6f6969 (Remove Strawberry Perl pkg-config, misc
system & package info, `cmd` as the default shell, set up msys2
environment variables).

(cherry picked from commit 98ec35899b, adapted to the mingw workflow on ruby_3_3)
2026-10-23 09:45:31 +09:00
Takashi Kokubun
8531f63a36 Bump ruby/setup-ruby to v1.329.0
setup-ruby v1.236.0 raises "Cannot find Git's cert file" on Windows
runners because Git for Windows moved from mingw64 to ucrt64.
This was fixed in ruby/setup-ruby#947 (v1.328.0).

(cherry picked from commit 89856b96b1, adapted to the workflows on ruby_3_3)
2026-10-23 09:45:31 +09:00
Hiroshi SHIBATA
7ad8db2311 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:26:19 +09:00
st0012
f569684a55 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:26:19 +09:00
Hiroshi SHIBATA
e675ccc096 Install MSYS2 perl on the MinGW runner
MSYS2 dropped perl from its base install and the windows-2022 runner
image picked that up in 20260818.277.1, so autogen.sh now dies with
`/usr/bin/perl: bad interpreter`. master and ruby_4_0 set up their own
MSYS2 with autoconf, which pulls perl in as a dependency, so only the
branches that reuse the image MSYS2 need this.

https://github.com/actions/runner-images/issues/14562

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 11:25:26 +09:00
Hiroshi SHIBATA
876f7b671b 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 df977545f07404ac6b49b6992a4ab78c2f2b0f9a)
2026-07-16 12:38:03 +09:00
Hiroshi SHIBATA
35554384b9 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 674e93935c846f129329e78c4270015ed1805e80)
2026-07-16 12:38:03 +09:00
Hiroshi SHIBATA
670a752c6a macos: Use brew openssl@3 instead of 1.1 in setup action
openssl@1.1 is no longer available on the macos-26 runner image. Build
against openssl@3, matching master (18404af9ec0), so the macos-26 check
job can install its dependencies.
2026-06-15 19:00:31 +09:00
Hiroshi SHIBATA
895604d442 macos: Use an isolated prefix on macos-15-intel
The macos-15-intel runner image ships a pre-installed Ruby under
/usr/local whose default-gem dir collides with the build's on the 3.3.0
ABI path. During `make check`, the test-tool autoloads rake and scans
default-gem stubs there, hitting a stale bundler stub and failing with
ENOENT. Build under an isolated prefix on that runner only. Backport of
master #17339.
2026-06-15 19:00:31 +09:00
Hiroshi SHIBATA
b7ce0881c7 Run macOS CI on macos-26 by default
Add macos-26 to the macOS CI matrix to align coverage with master
(5c762e786bb). Adapted to this branch's os-list matrix.
2026-06-15 19:00:31 +09:00
Hiroshi SHIBATA
b93e82c94c 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 dc24122d900c32a14db56a4f1def4f79027a24ee)
2026-06-15 19:00:31 +09:00
Hiroshi SHIBATA
e18bb62815 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>
2026-06-03 15:46:52 +09:00
Hiroshi SHIBATA
0c4799839d Inline the skip-detection run command
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 15:46:52 +09:00
Hiroshi SHIBATA
69196c9f7e Reinstall gmp via vcpkg for Windows tarball-test
Now that win32/Makefile.sub passes XINCFLAGS so the gmp headers under
--with-opt-dir are visible to cl.exe (bug #22078), the gmp build no
longer fails. Restore gmp to the vcpkg install to match master.
2026-06-03 15:46:52 +09:00
Hiroshi SHIBATA
67ce71e715 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 5c762e786bb14ec46a15e1073e1d806fa9a39a1c)
2026-06-03 15:46:52 +09:00
Hiroshi SHIBATA
41df78d598 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 daea48078cd029b16ef5a4a31fe7fedf72bb00f0)
2026-06-03 15:46:52 +09:00
Hiroshi SHIBATA
d21703af79 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 f00e912db0d175ffe61d7195f40c10838be1c826)
2026-06-03 15:46:52 +09:00
Hiroshi SHIBATA
3f0a2ff7e2 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 28c8bef6d78f4fc50e7e14afd5dd7c121e2639e6)
2026-06-03 15:46:52 +09:00
Nobuyoshi Nakada
85529adecb Set the upstream to the base branch instead of master
(cherry picked from commit e7dfc59e011055057969f480878e4e09102b8564)
2026-06-03 15:46:52 +09:00
Nobuyoshi Nakada
a80978dbcf Fetch the base branch only
`fetch-depth: 0` means fetching all heads and tags.

(cherry picked from commit f815f122d76063ceb490f1ca62872c07e99dfbf2)
2026-06-03 15:46:52 +09:00
Nobuyoshi Nakada
a6b1db5671 Skip tarball tests on documents-only commits
Except for non-development that runs build only.

(cherry picked from commit 4f683a2820a19840ca7aaedc1a8bbd03130b0a47)
2026-06-03 15:46:52 +09:00
Nobuyoshi Nakada
7e60a20efc Simplify save-stats.rb without Pathname
(cherry picked from commit 02ad18dc580bffe5048cbd7d99b6a7ecb3784e07)
2026-06-03 15:46:52 +09:00
Hiroshi SHIBATA
666756eee6 Drop gmp from vcpkg install for Windows tarball-test 2026-05-22 13:04:28 +09:00
Nobuyoshi Nakada
6c583e1e09 Reuse the script to save stats of HOME 2026-05-22 13:04:28 +09:00
Hiroshi SHIBATA
067de1ef44 Backport https://github.com/ruby/ruby/pull/17072 2026-05-22 13:04:28 +09:00
Hiroshi SHIBATA
612dcbccee Call master's make-snapshot composite from tarball-test
The composite is blob-identical across branches after PR #17063 lands
everywhere, so pointing maintenance branches at master removes the
need to re-cherry-pick future fixes. The local copy stays in place
because ruby/actions still calls it via ruby/ruby/.github/actions/make-snapshot@<branch>.
2026-05-21 15:52:18 +09:00
Hiroshi SHIBATA
099427e100 Trim tarball-* reusable inputs
Backport of ruby/ruby#17063 to ruby_3_3. The reusables and the
make-snapshot composite are now blob-identical to master except for
tarball-windows, which keeps the windows-2022 + vs / vcvars matrix and
the manual vcvars64.bat setup env step. tarball-test no longer passes
apt-mode, setup-host-ruby, fixed-dirs-extra, ruby-bin, or
rebuild-homebrew-ruby 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.
2026-05-21 15:52:18 +09:00
Hiroshi SHIBATA
19edfeb391 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 16:49:09 +09:00
Hiroshi SHIBATA
d62d511861 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 16:49:09 +09:00
Hiroshi SHIBATA
8b4e5c8dc5
Inline legacy Windows configuration in tarball-windows.yml
ruby_3_3 only builds with the vs2022 + vcvars 14.2 toolchain, so the
mode input and the modern branch are dead code on this branch. Drop
the input, hardcode the legacy matrix and setup-env step, and stop
passing mode: legacy from tarball-test.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 14:22:48 +09:00
Hiroshi SHIBATA
126e120d23
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_3_3. Switch the
trigger to workflow_dispatch so master's tarball-test-schedule.yml
can dispatch it via gh workflow run --ref ruby_3_3.

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

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 14:21:28 +09:00
Hiroshi SHIBATA
f392576d89 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_3_3 keeps its branch-specific knobs in tarball-test.yml: ubuntu
runs with apt-mode=ruby-and-git plus the apt ruby instead of
ruby/setup-ruby, macos rebuilds Homebrew Ruby on macos-15-intel, and
windows uses the legacy vcvars 14.2 path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 18:40:27 +09:00
Hiroshi SHIBATA
b3e1d82f5d Remove macos-13 and add macos-15. 2025-12-15 17:38:38 +09:00
nagachika
4365a09466 Don't check existence of openssl-1.1 dll files on GHA mingw workflow. 2025-10-18 14:43:19 +09:00
nagachika
599257ea33 Stop renaming openssl dll files on GHA mingw workflow. 2025-10-18 12:26:34 +09:00
nagachika
4a09da622a partially merge revision 949573028b127931cb034a2928ef80a59c45ea43:
[PATCH] Win32: OpenSSL 1.1 DLLs are no longer used

	We are already using OpenSSL 3.3 and have no possibility to use system
	provided DLLs.
2025-10-18 12:20:09 +09:00
Takashi Kokubun
4fb1eec1e3
post_push.yml: Backport commit-mail to ruby_3_3 (#14782) 2025-10-08 14:23:12 -07:00
Takashi Kokubun
a8f488482a
Backport fetch_changesets to ruby_3_3 (#14773) 2025-10-08 01:10:05 -07:00
Takashi Kokubun
dcb66fcae7
Backport post_push.yml workflow to ruby_3_3 (#14770) 2025-10-07 21:42:13 -07:00
nagachika
210643c51d merge revision(s) 7c28fb2fb2544e5fed75ef216c4dd08084b38671: [Backport #21546]
[Bug #21546] Make the generated pc file relocatable
2025-09-14 13:24:54 +09:00
nagachika
f0ec1ad827 Add compilation with GCC 14,15 on GitHub workflow 2025-07-20 18:32:03 +09:00
Hiroshi SHIBATA
de512b7a3d We don't need to specify winsdk version
a205407e165e4570b8b6d6e4b7a019b51962ecba fixed that workaround
2025-06-25 15:22:36 +09:00
Hiroshi SHIBATA
fb8248b3e8 Disabled TRAP cache of CodeQL 2025-06-10 11:06:34 +09:00
Hiroshi SHIBATA
ff1d615746 Don't need to store download cache of vcpkg
vcpkg can detect their cache from `vcpkg/installed`.
2025-05-22 15:54:24 +09:00
Hiroshi SHIBATA
ccc576907a Fixed step for cmake 3 installation 2025-05-01 16:10:59 +09:00
Hiroshi SHIBATA
00343f6365 Use configu.guess with wasi compatible version 2025-05-01 16:10:59 +09:00
Hiroshi SHIBATA
2ac9b27ba3 Bump up the latest version of actions 2025-05-01 16:10:59 +09:00
Hiroshi SHIBATA
bd5f39523b Bump up clang-14 with yjit-bindgen job 2025-05-01 16:10:59 +09:00
Hiroshi SHIBATA
4db3d2b885 ubuntu-20.04 is retired 2025-05-01 16:10:59 +09:00
Hiroshi SHIBATA
59ae1818fc Use windows-2022 because windows-2019 is EOL at June 2025 2025-05-01 16:10:59 +09:00