@@ -53,24 +53,33 @@ jobs:
53
53
else
54
54
echo "RUBY_BUILD_RUBY_NAME=$ruby" >> $GITHUB_ENV
55
55
fi
56
+ - name : Set PREFIX
57
+ run : |
58
+ ruby="${{ matrix.ruby }}"
59
+ if [[ $ruby == ruby-* ]]; then
60
+ # See https://github.com/ruby/setup-ruby/issues/98
61
+ echo "PREFIX=$RUNNER_TOOL_CACHE/Ruby/${ruby#ruby-}/x64" >> $GITHUB_ENV
62
+ else
63
+ echo "PREFIX=$HOME/.rubies/$ruby" >> $GITHUB_ENV
64
+ fi
56
65
- name : Build Ruby
57
- run : ruby-build --verbose $RUBY_BUILD_RUBY_NAME $HOME/build_prefix/${{ matrix.ruby }}
66
+ run : ruby-build --verbose $RUBY_BUILD_RUBY_NAME $PREFIX
58
67
env :
59
68
RUBY_CONFIGURE_OPTS : --enable-shared --enable-rpath --enable-load-relative --disable-install-doc
60
69
CPPFLAGS : " -DENABLE_PATH_CHECK=0" # https://github.com/actions/virtual-environments/issues/267
61
70
- name : Fix the RubyGems line when using load-relative
62
- run : ~/build_prefix/${{ matrix.ruby }} /bin/ruby --disable-gems fix-rubygems-line.rb
71
+ run : $PREFIX /bin/ruby --disable-gems fix-rubygems-line.rb
63
72
if : startsWith(matrix.ruby, 'ruby-')
64
73
- name : Create archive
65
- run : tar czf ${{ matrix.ruby }}-${{ matrix.os }}.tar.gz -C ~/build_prefix ${{ matrix.ruby }}
74
+ run : tar czf ${{ matrix.ruby }}-${{ matrix.os }}.tar.gz -C $(dirname $PREFIX) $(basename $PREFIX)
66
75
- name : Install Bundler if needed
67
76
run : |
68
- if [ ! -e ~/build_prefix/${{ matrix.ruby }} /bin/bundle ]; then
69
- export PATH="$HOME/build_prefix/${{ matrix.ruby }} /bin:$PATH"
77
+ if [ ! -e $PREFIX /bin/bundle ]; then
78
+ export PATH="$PREFIX /bin:$PATH"
70
79
gem install bundler -v '~> 1' --no-document
71
80
fi
72
81
73
- - run : echo "$HOME/build_prefix/${{ matrix.ruby }} /bin" >> $GITHUB_PATH
82
+ - run : echo "$PREFIX /bin" >> $GITHUB_PATH
74
83
- run : ruby --version
75
84
- run : ruby -ropen-uri -e 'puts open("https://rubygems.org/") { |f| f.read(1024) }'
76
85
- run : gem install json:2.2.0 --no-document
@@ -116,30 +125,32 @@ jobs:
116
125
run : ' ! curl -s --head --fail https://github.com/ruby/ruby-builder/releases/download/${{ steps.info.outputs.tag }}/${{ matrix.ruby }}-${{ matrix.os }}.tar.gz'
117
126
shell : bash
118
127
128
+ - name : Set PREFIX
129
+ run : echo "PREFIX=$HOME/.rubies/${{ matrix.ruby }}" >> $GITHUB_ENV
119
130
- run : curl --fail -L -O 'https://repo1.maven.org/maven2/org/jruby/jruby-dist/${{ matrix.jruby-version }}/jruby-dist-${{ matrix.jruby-version }}-bin.tar.gz'
120
131
shell : bash
121
132
- name : Build JRuby
122
133
shell : bash
123
134
run : |
124
- mkdir ~/build_prefix
125
- tar xf jruby-dist-${{ matrix.jruby-version }}-bin.tar.gz -C ~/build_prefix
126
- cd ~/build_prefix/${{ matrix.ruby }} /bin
135
+ mkdir $(dirname $PREFIX)
136
+ tar xf jruby-dist-${{ matrix.jruby-version }}-bin.tar.gz -C $(dirname $PREFIX)
137
+ cd $PREFIX /bin
127
138
# Copy bash launcher, so 'ruby' works in bash
128
139
cp jruby ruby
129
140
# Create ruby.bat, so 'ruby' works in pwsh
130
141
echo -en "@ECHO OFF\r\n@\"%~dp0jruby.exe\" %*\r\n" > ruby.bat
131
142
- name : Create archive
132
- run : tar czf ${{ matrix.ruby }}-${{ matrix.os }}.tar.gz -C ~/build_prefix ${{ matrix.ruby }}
143
+ run : tar czf ${{ matrix.ruby }}-${{ matrix.os }}.tar.gz -C $(dirname $PREFIX) $(basename $PREFIX)
133
144
shell : bash
134
145
- name : Install Bundler if needed
135
146
shell : bash
136
147
run : |
137
- if [ ! -e ~/build_prefix/${{ matrix.ruby }} /bin/bundle ]; then
138
- export PATH="$HOME/build_prefix/${{ matrix.ruby }} /bin:$PATH"
148
+ if [ ! -e $PREFIX /bin/bundle ]; then
149
+ export PATH="$PREFIX /bin:$PATH"
139
150
gem install bundler -v '~> 1' --no-document
140
151
fi
141
152
142
- - run : echo "$Env:UserProfile\build_prefix \${{ matrix.ruby }}\bin" >> $Env:GITHUB_PATH
153
+ - run : echo "$Env:UserProfile\.rubies \${{ matrix.ruby }}\bin" >> $Env:GITHUB_PATH
143
154
- run : echo $Env:PATH
144
155
145
156
- run : ruby --version
0 commit comments