Re-enabled repl_type_completor test with upstream fix #47396
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows | |
on: | |
push: | |
paths-ignore: | |
- 'doc/**' | |
- '**/man/*' | |
- '**.md' | |
- '**.rdoc' | |
- '**/.document' | |
- '.*.yml' | |
pull_request: | |
# Do not use paths-ignore for required status checks | |
# https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks#handling-skipped-but-required-checks | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }} | |
cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }} | |
permissions: | |
contents: read | |
jobs: | |
make: | |
strategy: | |
matrix: | |
include: | |
- os: 2019 | |
vc: 2015 | |
vcvars: '10.0.14393.0 -vcvars_ver=14.0' # The oldest Windows 10 SDK w/ VC++ 2015 toolset (v140) | |
test_task: check | |
- os: 2019 | |
vc: 2019 | |
test_task: check | |
- os: 2022 | |
vc: 2019 | |
vcvars: '10.0.22621.0 -vcvars_ver=14.2' # The defautl Windows 11 SDK and toolset are broken at windows-2022 | |
test_task: check | |
- os: 2025 | |
vc: 2019 | |
vcvars: '10.0.22621.0 -vcvars_ver=14.2' | |
test_task: check | |
- os: 11-arm | |
test_task: 'btest test-basic test-tool' # check and test-spec are broken yet. | |
target: arm64 | |
- os: 2022 | |
vc: 2019 | |
vcvars: '10.0.22621.0 -vcvars_ver=14.2' | |
test_task: test-bundled-gems | |
fail-fast: false | |
runs-on: windows-${{ matrix.os < 2022 && '2019' || matrix.os }} | |
if: >- | |
${{!(false | |
|| contains(github.event.head_commit.message, '[DOC]') | |
|| contains(github.event.head_commit.message, 'Document') | |
|| contains(github.event.pull_request.title, '[DOC]') | |
|| contains(github.event.pull_request.title, 'Document') | |
|| contains(github.event.pull_request.labels.*.name, 'Documentation') | |
|| (github.event_name == 'push' && github.event.pull_request.user.login == 'dependabot[bot]') | |
)}} | |
name: Windows ${{ matrix.os }}/Visual C++ ${{ matrix.vc }} (${{ matrix.test_task }}) | |
env: | |
GITPULLOPTIONS: --no-tags origin ${{ github.ref }} | |
OS_VER: windows-${{ matrix.os < 2022 && '2019' || matrix.os }} | |
VCPKG_DEFAULT_TRIPLET: ${{ matrix.target || 'x64' }}-windows | |
RUBY_OPT_DIR: ${{ matrix.os == '11-arm' && 'C' || 'D' }}:/a/ruby/ruby/src/vcpkg_installed/%VCPKG_DEFAULT_TRIPLET% | |
steps: | |
- run: md build | |
working-directory: | |
- uses: ruby/setup-ruby@d8d83c3960843afb664e821fed6be52f37da5267 # v1.231.0 | |
with: | |
ruby-version: '3.0' | |
bundler: none | |
windows-toolchain: none | |
if: ${{ matrix.os != '11-arm' }} | |
- name: Install libraries with scoop | |
run: | | |
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser | |
iwr -useb get.scoop.sh | iex | |
Join-Path (Resolve-Path ~).Path "scoop\shims" >> $Env:GITHUB_PATH | |
scoop install vcpkg uutils-coreutils cmake@3.31.6 | |
shell: pwsh | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
sparse-checkout-cone-mode: false | |
sparse-checkout: /.github | |
- uses: ./.github/actions/setup/directories | |
with: | |
srcdir: src | |
builddir: build | |
- name: setup env | |
# Available Ruby versions: https://github.com/actions/runner-images/blob/main/images/windows/Windows2019-Readme.md#ruby | |
# %TEMP% is inconsistent with %TMP% and test-all expects they are consistent. | |
# https://github.com/actions/virtual-environments/issues/712#issuecomment-613004302 | |
run: | | |
::- Set up VC ${{ matrix.vc }} | |
set vswhere="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" | |
for /f "delims=;" %%I in ('%vswhere% -latest -property installationPath') do ( | |
set VCVARS="%%I\VC\Auxiliary\Build\vcvars64.bat" | |
) | |
if "${{ matrix.os }}" == "11-arm" ( | |
set VCVARS="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsarm64.bat" | |
) | |
set VCVARS | |
set | uutils sort > old.env | |
call %VCVARS% ${{ matrix.vcvars || '' }} | |
nmake -f nul | |
set TMP=%USERPROFILE%\AppData\Local\Temp | |
set TEMP=%USERPROFILE%\AppData\Local\Temp | |
set MAKEFLAGS=l | |
set /a TEST_JOBS=(15 * %NUMBER_OF_PROCESSORS% / 10) > nul | |
set | uutils sort > new.env | |
uutils comm -13 old.env new.env >> %GITHUB_ENV% | |
del *.env | |
- name: baseruby version | |
run: ruby -v | |
- name: compiler version | |
run: cl | |
- name: volume info | |
run: Get-Volume | |
shell: pwsh | |
# vcpkg built-in cache is not working now | |
- name: Restore vcpkg artifact | |
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 | |
with: | |
path: C:\Users\runneradmin\AppData\Local\vcpkg\archives | |
key: windows-${{ matrix.os }}-vcpkg-${{ hashFiles('src/vcpkg.json') }} | |
- name: Install libraries with vcpkg | |
run: | | |
vcpkg install --vcpkg-root=C:\Users\runneradmin\scoop\apps\vcpkg\current | |
working-directory: src | |
# TODO: We should use `../src` instead of `D:/a/ruby/ruby/src` | |
- name: Configure | |
run: >- | |
../src/win32/configure.bat --disable-install-doc | |
--with-opt-dir=%RUBY_OPT_DIR% | |
--with-gmp | |
- run: nmake prepare-vcpkg | |
- run: nmake incs | |
- run: nmake extract-extlibs | |
# On all other platforms, test-spec depending on extract-gems (in common.mk) is enough. | |
# But not for this Visual Studio workflow. So here we extract gems before building. | |
- run: nmake extract-gems | |
# windows-11-arm runner cannot run `ruby tool/file2lastrev.rb --revision.h --output=revision.h` | |
- run: | | |
Set-Content -Path "revision.h" -Value @" | |
#define RUBY_REVISION "8aedb979da" | |
#define RUBY_FULL_REVISION "8aedb979da4090116f4fc5a6497f139fd0038881" | |
#define RUBY_BRANCH_NAME "win-arm" | |
#define RUBY_RELEASE_DATETIME "2025-04-16T23:18:54Z" | |
#define RUBY_RELEASE_YEAR 2025 | |
#define RUBY_RELEASE_MONTH 4 | |
#define RUBY_RELEASE_DAY 17 | |
"@ | |
shell: pwsh | |
if: ${{ matrix.os == '11-arm' }} | |
- run: nmake | |
- name: Set up Launchable | |
uses: ./.github/actions/launchable/setup | |
with: | |
os: windows-${{ matrix.os < 2022 && '2019' || matrix.os }} | |
launchable-token: ${{ secrets.LAUNCHABLE_TOKEN }} | |
builddir: build | |
srcdir: src | |
test-task: ${{ matrix.test_task || 'check' }} | |
continue-on-error: true | |
if: ${{ matrix.test_task != 'test-bundled-gems' }} | |
- run: nmake ${{ matrix.test_task || 'check' }} | |
env: | |
RUBY_TESTOPTS: -j${{ env.TEST_JOBS || 4 }} | |
timeout-minutes: 70 | |
- uses: ./.github/actions/slack | |
with: | |
label: Windows ${{ matrix.os }} / VC ${{ matrix.vc }} / ${{ matrix.test_task || 'check' }} | |
SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot | |
if: ${{ failure() }} | |
result: | |
if: ${{ always() }} | |
name: ${{ github.workflow }} result | |
runs-on: windows-latest | |
needs: [make] | |
steps: | |
- run: exit 1 | |
working-directory: | |
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }} | |
defaults: | |
run: | |
working-directory: build | |
shell: cmd |