summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2025-05-13 18:56:10 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2025-05-15 15:08:43 +0900
commita5da3682ef45fbfc54621ab90506bc94dd7baf97 (patch)
tree4668d683fe8d678ce0c56d1b933448a865dc5675
parenta4ce8639d95838e55208a2cf348e3ba0099b41b8 (diff)
CI: Refine setup on Windows
Get rid of hardcoded paths
-rw-r--r--.github/workflows/windows.yml48
1 files changed, 23 insertions, 25 deletions
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index e21a73bdd9..dfc11c4348 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -22,7 +22,6 @@ permissions:
jobs:
make:
- continue-on-error: ${{ matrix.os == 2025 }}
strategy:
matrix:
include:
@@ -60,7 +59,6 @@ jobs:
env:
GITPULLOPTIONS: --no-tags origin ${{ github.ref }}
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
@@ -69,7 +67,7 @@ jobs:
- uses: ruby/setup-ruby@e34163cd15f4bb403dcd72d98e295997e6a55798 # v1.238.0
with:
# windows-11-arm has only 3.4.1, 3.4.2, 3.4.3, head
- ruby-version: ${{ matrix.os != '11-arm' && '3.1' || '3.4' }}
+ ruby-version: ${{ !endsWith(matrix.os, 'arm') && '3.1' || '3.4' }}
bundler: none
windows-toolchain: none
@@ -99,19 +97,17 @@ jobs:
::- 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="%%I\VC\Auxiliary\Build\vcvarsall.bat"
)
set VCVARS
set | uutils sort > old.env
- call %VCVARS% ${{ matrix.vcvars || '' }}
+ call %VCVARS% ${{ matrix.target || 'amd64' }} ${{ 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 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
@@ -158,26 +154,28 @@ jobs:
# windows-11-arm runner cannot run `ruby tool/file2lastrev.rb --revision.h --output=revision.h`
- name: make revision.h
run: |
- for /f "tokens=1-3" %%I in ('git log -1 "--date=format-local:%%F %%T" "--format=%%H %%cd" @') do (
- set rev=%%I
- set dt=%%J
- set tm=%%K
+ if not exist revision.h (
+ for /f "tokens=1-3" %%I in ('git log -1 "--date=format-local:%%F %%T" "--format=%%H %%cd" @') do (
+ set rev=%%I
+ set dt=%%J
+ set tm=%%K
+ )
+ set yy=%dt:~0,4%
+ set /a mm=100%dt:~5,2% %% 100
+ set /a dd=100%dt:~8,2% %% 100
+ (
+ echo #define RUBY_REVISION "%rev:~,10%"
+ echo #define RUBY_FULL_REVISION "%rev%"
+ echo #define RUBY_BRANCH_NAME "%GITHUB_REF%"
+ echo #define RUBY_RELEASE_DATETIME "%dt%T%tm%"
+ echo #define RUBY_RELEASE_YEAR %yy%
+ echo #define RUBY_RELEASE_MONTH %mm%
+ echo #define RUBY_RELEASE_DAY %dd%
+ ) > revision.h
+ copy /y NUL .revision.time
)
- set yy=%dt:~0,4%
- set /a mm=100%dt:~5,2% %% 100
- set /a dd=100%dt:~8,2% %% 100
- (
- echo #define RUBY_REVISION "%rev:~,10%"
- echo #define RUBY_FULL_REVISION "%rev%"
- echo #define RUBY_BRANCH_NAME "%GITHUB_REF%"
- echo #define RUBY_RELEASE_DATETIME "%dt%T%tm%"
- echo #define RUBY_RELEASE_YEAR %yy%
- echo #define RUBY_RELEASE_MONTH %mm%
- echo #define RUBY_RELEASE_DAY %dd%
- ) > revision.h
env:
TZ: UTC
- if: ${{ matrix.os == '11-arm' }}
- run: nmake