@@ -108,21 +108,40 @@ jobs:
108108 run : |
109109 brew install openssl@3 readline libyaml gmp rust
110110
111- - name : Build Ruby (Unix)
112- if : matrix.build_os != 'windows'
111+ - name : Build Ruby (Linux)
112+ if : matrix.build_os == 'linux'
113+ env :
114+ RUBY_CONFIGURE_OPTS : " --enable-shared --disable-install-doc"
115+ CPPFLAGS : " -DENABLE_PATH_CHECK=0"
116+ run : |
117+ ruby-build ${{ matrix.version }} "$RUNNER_TEMP/ruby-install/ruby"
118+
119+ - name : Build Ruby (macOS ARM64)
120+ if : matrix.platform == 'darwin-arm64'
113121 env :
114- RUBY_CONFIGURE_OPTS : >-
115- ${{ matrix.platform == 'darwin-arm64'
116- && '--disable-shared --disable-install-doc'
117- || '--enable-shared --disable-install-doc' }}
122+ RUBY_CONFIGURE_OPTS : " --disable-shared --disable-install-doc"
118123 CPPFLAGS : " -DENABLE_PATH_CHECK=0"
119124 run : |
120125 ruby-build ${{ matrix.version }} "$RUNNER_TEMP/ruby-install/ruby"
121126
127+ - name : Build Ruby (macOS x86_64 via Rosetta)
128+ if : matrix.platform == 'darwin-amd64'
129+ env :
130+ RUBY_CONFIGURE_OPTS : " --enable-shared --disable-install-doc"
131+ CPPFLAGS : " -DENABLE_PATH_CHECK=0"
132+ run : |
133+ arch -x86_64 ruby-build ${{ matrix.version }} "$RUNNER_TEMP/ruby-install/ruby"
134+
122135 - name : Verify Ruby (Unix)
123136 if : matrix.build_os != 'windows'
124137 run : |
125138 "$RUNNER_TEMP/ruby-install/ruby/bin/ruby" --version
139+ # Verify architecture matches expected platform
140+ FILE_ARCH=$(file "$RUNNER_TEMP/ruby-install/ruby/bin/ruby")
141+ echo "Binary architecture: $FILE_ARCH"
142+ if [ "${{ matrix.platform }}" = "darwin-amd64" ]; then
143+ echo "$FILE_ARCH" | grep -q "x86_64" || { echo "ERROR: Expected x86_64 binary"; exit 1; }
144+ fi
126145
127146 - name : Package Ruby (Unix)
128147 if : matrix.build_os != 'windows'
0 commit comments