[DOC] Fix typos #49
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: 2022 | |
vc: 2022 | |
test_task: check | |
- os: 2025 | |
vc: 2022 | |
test_task: check | |
- os: 11-arm | |
test_task: 'btest test-basic test-tool' # check and test-spec are broken yet. | |
target: arm64 | |
- os: 2025 | |
vc: 2022 | |
test_task: test-bundled-gems | |
fail-fast: false | |
runs-on: windows-${{ matrix.os }} | |
if: >- | |
${{!(false | |
|| contains(github.event.head_commit.message, '[DOC]') | |
|| contains(github.event.pull_request.title, '[DOC]') | |
|| 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 }} | |
VCPKG_DEFAULT_TRIPLET: ${{ matrix.target || 'x64' }}-windows | |
steps: | |
- run: md build | |
working-directory: | |
- uses: ruby/setup-ruby@a9bfc2ecf3dd40734a9418f89a7e9d484c32b990 # v1.248.0 | |
with: | |
# windows-11-arm has only 3.4.1, 3.4.2, 3.4.3, head | |
ruby-version: ${{ !endsWith(matrix.os, 'arm') && '3.1' || '3.4' }} | |
bundler: none | |
windows-toolchain: none | |
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
sparse-checkout-cone-mode: false | |
sparse-checkout: /.github | |
- uses: ./.github/actions/setup/directories | |
with: | |
srcdir: src | |
builddir: build | |
- name: Install tools 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 | |
- name: Restore vcpkg artifact | |
id: restore-vcpkg | |
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
with: | |
path: src\vcpkg_installed | |
key: windows-${{ matrix.os }}-vcpkg-${{ hashFiles('src/vcpkg.json') }} | |
- name: Install libraries with vcpkg | |
run: | | |
vcpkg install --vcpkg-root=%USERPROFILE%\scoop\apps\vcpkg\current | |
working-directory: src | |
if: ${{ ! steps.restore-vcpkg.outputs.cache-hit }} | |
- name: Save vcpkg artifact | |
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
with: | |
path: src\vcpkg_installed | |
key: windows-${{ matrix.os }}-vcpkg-${{ hashFiles('src/vcpkg.json') }} | |
if: ${{ ! steps.restore-vcpkg.outputs.cache-hit && (github.ref_name == 'master' || startsWith(github.ref_name, 'ruby_')) }} | |
- 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 | uutils sort > old.env | |
call ..\src\win32\vssetup.cmd ^ | |
-arch=${{ matrix.target || 'amd64' }} ^ | |
${{ matrix.vcvars && '-vcvars_ver=' || '' }}${{ matrix.vcvars }} | |
nmake -f nul | |
set TMP=%RUNNER_TEMP% | |
set TEMP=%RUNNER_TEMP% | |
set MAKEFLAGS=l | |
set /a TEST_JOBS=(15 * %NUMBER_OF_PROCESSORS% / 10) > nul | |
set RUBY_OPT_DIR=%GITHUB_WORKSPACE:\=/%/src/vcpkg_installed/%VCPKG_DEFAULT_TRIPLET% | |
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 | |
# 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` | |
- name: make revision.h | |
run: | | |
win32\lastrev.bat | win32\ifchange.bat --timestamp=.revision.time revision.h - | |
type revision.h | |
working-directory: src | |
- run: nmake | |
- name: Set up Launchable | |
uses: ./.github/actions/launchable/setup | |
with: | |
os: windows-${{ 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' }} | |
timeout-minutes: 3 | |
- 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 |