rake-compiler-dock 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99e2b1ce6f914bd9b6449320d1c65bb5ac3cdd7f9afcf0189ee15a48e0bd8aac
4
- data.tar.gz: 661f6b93c01a36993f89f121d1316d999c3e2f61fa7d577660a1e9d6a5898ff4
3
+ metadata.gz: 22fdbf0b0336450a55882dd000bea66c52a43325c6de59b0721ffbc6b5360576
4
+ data.tar.gz: 425f0ae751dfdcd3ff2936ff387c58b20d89e297d831c8c333ddd5738a9a92c2
5
5
  SHA512:
6
- metadata.gz: 3a4639688aeeb8c3b6d0142fadcf6c088f86f3672aca2873df1af672b22b7cff93245905ac6b00aac0c4467f495a5df6d9309f3660bbf27ee8f98d3dc47d8b92
7
- data.tar.gz: bbc042289e0ad041c42a5b6fd13ee55930546535505e59d310c11d7b9a0130718f5c84f78bc6b539437b58e1329ad2a5a2e082125fffeefd40f6173df739eab1
6
+ metadata.gz: 290f60e3969979b7830ab2a69c8989c484dbdf116fc76d9424a5efb71e5a1a4ab0bb834bc6504b3db3b383b76fbdb35ea070566d5118420ebfcf8b454a85a0a3
7
+ data.tar.gz: ab7a5180be028e305798032e35fc2070bce0ad882ace282ec21700b74552d35bf8a80dd2b660f9c66a8247605c11277eaf79c9ee338430b8ef4511bc945f1dfc
checksums.yaml.gz.sig CHANGED
Binary file
@@ -2,7 +2,17 @@ name: Build docker images
2
2
  concurrency:
3
3
  group: "${{github.workflow}}-${{github.ref}}"
4
4
  cancel-in-progress: true
5
- on: [push, pull_request]
5
+ on:
6
+ workflow_dispatch:
7
+ push:
8
+ branches:
9
+ - main
10
+ tags:
11
+ - "*.*.*"
12
+ pull_request:
13
+ types: [opened, synchronize]
14
+ branches:
15
+ - "*"
6
16
 
7
17
  jobs:
8
18
  # These jobs use Buildx layer caching
@@ -12,17 +22,17 @@ jobs:
12
22
  strategy:
13
23
  fail-fast: false
14
24
  matrix:
15
- include:
16
- - platform: x86-mingw32
17
- - platform: x64-mingw-ucrt
18
- - platform: x64-mingw32
19
- - platform: x86-linux
20
- - platform: x86_64-linux
21
- - platform: x86_64-darwin
22
- - platform: arm64-darwin
23
- - platform: arm-linux
24
- - platform: aarch64-linux
25
- - platform: jruby
25
+ platform:
26
+ - x86-mingw32
27
+ - x64-mingw-ucrt
28
+ - x64-mingw32
29
+ - x86-linux
30
+ - x86_64-linux
31
+ - x86_64-darwin
32
+ - arm64-darwin
33
+ - arm-linux
34
+ - aarch64-linux
35
+ - jruby
26
36
 
27
37
  runs-on: ubuntu-latest
28
38
  env:
@@ -59,6 +69,7 @@ jobs:
59
69
  gem install -l rake-compiler-dock-*.gem
60
70
  cd test/rcd_test/
61
71
  bundle install
72
+ bundle exec rake clean clobber
62
73
  bundle exec rake gem:${PLATFORM}
63
74
 
64
75
  - name: Upload binary gem
@@ -67,63 +78,125 @@ jobs:
67
78
  name: gem-${{ matrix.platform }}
68
79
  path: test/rcd_test/pkg/*-*-*.gem
69
80
 
70
- - name: Upload source gem
81
+ - if: matrix.platform == 'jruby'
82
+ name: Upload source gem
71
83
  uses: actions/upload-artifact@v2
72
- if: matrix.platform == 'jruby'
73
84
  with:
74
85
  name: gem-ruby
75
86
  path: test/rcd_test/pkg/*-?.?.?.gem
76
87
 
88
+ - if: contains(matrix.platform, 'x64-mingw')
89
+ name: Build static rcd_test.gem
90
+ env:
91
+ RCD_TEST_CONFIG: "--link-static"
92
+ run: |
93
+ gem build rake-compiler-dock.gemspec
94
+ gem install -l rake-compiler-dock-*.gem
95
+ cd test/rcd_test/
96
+ bundle install
97
+ bundle exec rake clean clobber
98
+ bundle exec rake gem:${PLATFORM}
99
+
100
+ - if: contains(matrix.platform, 'x64-mingw')
101
+ name: Upload static binary gem
102
+ uses: actions/upload-artifact@v2
103
+ with:
104
+ name: gem-${{ matrix.platform }}-static
105
+ path: test/rcd_test/pkg/*-*-*.gem
77
106
 
78
107
  job_test_native:
79
- name: Test
108
+ name: Test (${{matrix.ruby}}, ${{matrix.platform}})
80
109
  needs: docker_build
81
110
  strategy:
82
111
  fail-fast: false
83
112
  matrix:
113
+ os:
114
+ - windows
115
+ - macos
116
+ - ubuntu
117
+ ruby:
118
+ - "3.1"
119
+ - "3.0"
120
+ - "2.7"
121
+ - "2.6"
122
+ - "2.5"
123
+ - "2.4"
84
124
  include:
85
125
  - os: windows
86
- ruby: "3.0"
87
- platform: x64-mingw32
88
- - os: windows
89
- ruby: "2.4"
90
126
  platform: x64-mingw32
91
127
  - os: macos
92
- ruby: "3.0"
93
- platform: x86_64-darwin
94
- - os: macos
95
- ruby: "2.4"
96
128
  platform: x86_64-darwin
97
129
  - os: ubuntu
98
- ruby: "3.0"
99
130
  platform: x86_64-linux
100
131
  - os: ubuntu
101
- ruby: "2.4"
102
- platform: x86_64-linux
132
+ platform: ruby
103
133
  - os: ubuntu
104
134
  ruby: jruby-head
105
135
  platform: jruby
106
- - os: ubuntu
107
- ruby: "3.0"
108
- platform: ruby
136
+ - os: windows
137
+ ruby: "3.1"
138
+ platform: x64-mingw-ucrt
139
+ exclude:
140
+ - os: windows
141
+ ruby: "3.1"
109
142
 
110
143
  runs-on: ${{ matrix.os }}-latest
111
144
  steps:
112
145
  - uses: actions/checkout@v2
113
- - name: Set up Ruby
114
- uses: ruby/setup-ruby@v1
146
+ - uses: ruby/setup-ruby@v1
115
147
  with:
116
148
  ruby-version: ${{ matrix.ruby }}
117
-
118
149
  - run: ruby --version
119
-
120
- - name: Download gem from build job
150
+ - name: Download gem-${{matrix.platform}}
121
151
  uses: actions/download-artifact@v2
122
152
  with:
123
153
  name: gem-${{ matrix.platform }}
154
+ - name: Install gem-${{matrix.platform}}
155
+ run: gem install --local *.gem --verbose
156
+ - name: Run tests
157
+ run: |
158
+ cd test/rcd_test/
159
+ bundle install
160
+ ruby -rrcd_test -S rake test
124
161
 
125
- - run: gem install --local *.gem --verbose
162
+ job_test_native_static:
163
+ name: Test static (${{matrix.ruby}}, ${{matrix.platform}})
164
+ needs: docker_build
165
+ strategy:
166
+ fail-fast: false
167
+ matrix:
168
+ os:
169
+ - windows
170
+ ruby:
171
+ - "3.1"
172
+ - "3.0"
173
+ - "2.7"
174
+ - "2.6"
175
+ - "2.5"
176
+ - "2.4"
177
+ include:
178
+ - os: windows
179
+ platform: x64-mingw32
180
+ - os: windows
181
+ ruby: "3.1"
182
+ platform: x64-mingw-ucrt
183
+ exclude:
184
+ - os: windows
185
+ ruby: "3.1"
126
186
 
187
+ runs-on: ${{ matrix.os }}-latest
188
+ steps:
189
+ - uses: actions/checkout@v2
190
+ - uses: ruby/setup-ruby@v1
191
+ with:
192
+ ruby-version: ${{ matrix.ruby }}
193
+ - run: ruby --version
194
+ - name: Download gem-${{matrix.platform}}-static
195
+ uses: actions/download-artifact@v2
196
+ with:
197
+ name: gem-${{ matrix.platform }}-static
198
+ - name: Install gem-${{matrix.platform}}-static
199
+ run: gem install --local *.gem --verbose
127
200
  - name: Run tests
128
201
  run: |
129
202
  cd test/rcd_test/
@@ -131,7 +204,7 @@ jobs:
131
204
  ruby -rrcd_test -S rake test
132
205
 
133
206
  job_test_multiarch:
134
- name: Test
207
+ name: Test ${{matrix.platform}} on ${{matrix.from_image}}
135
208
  needs: docker_build
136
209
  strategy:
137
210
  fail-fast: false
@@ -156,11 +229,10 @@ jobs:
156
229
  runs-on: ubuntu-latest
157
230
  steps:
158
231
  - uses: actions/checkout@v2
159
- - name: Download gem from build job
232
+ - name: Download gem-${{matrix.platform}}
160
233
  uses: actions/download-artifact@v2
161
234
  with:
162
235
  name: gem-${{ matrix.platform }}
163
-
164
236
  - name: Build image and Run tests
165
237
  run: |
166
238
  docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
data/Dockerfile.mri.erb CHANGED
@@ -217,7 +217,7 @@ RUN find /usr/local/rake-compiler/ruby/*mingw*/ -name rbconfig.rb | while read f
217
217
  # Raise Windows-API to Vista (affects ruby < 2.6 only)
218
218
  RUN find /usr/local/rake-compiler/ruby -name rbconfig.rb | while read f ; do sed -i 's/0x0501/0x0600/' $f ; done
219
219
  # Don't link to static libruby
220
- RUN find /usr/local/rake-compiler/ruby -name *msvcrt-ruby*.dll.a | while read f ; do n=`echo $f | sed s/.dll//` ; mv $f $n ; done
220
+ RUN find /usr/local/rake-compiler/ruby -name lib*-ruby*.dll.a | while read f ; do n=`echo $f | sed s/.dll//` ; mv $f $n ; done
221
221
  <% end %>
222
222
 
223
223
  USER root
data/History.md CHANGED
@@ -1,3 +1,9 @@
1
+ 1.2.2 / 2022-06-27
2
+ ------------------
3
+
4
+ * Fix ucrt libruby file naming for static build. #69
5
+
6
+
1
7
  1.2.1 / 2022-03-17
2
8
  ------------------
3
9
 
data/README.md CHANGED
@@ -95,51 +95,6 @@ For Linux:
95
95
  You can also choose between different executable ruby versions by `rvm use <version>` .
96
96
  The current default is 3.1.
97
97
 
98
-
99
- ### As a CI System Container
100
-
101
- The OCI images provided by rake-compiler-dock can be used without the `rake-compiler-dock` gem or wrapper. This may be useful if your CI pipeline is building native gems.
102
-
103
- For example, a Github Actions job might look like this:
104
-
105
- ``` yaml
106
- jobs:
107
- native-gem:
108
- name: "native-gem"
109
- runs-on: ubuntu-latest
110
- container:
111
- image: "larskanis/rake-compiler-dock-mri-x86_64-linux:1.2.1"
112
- steps:
113
- - uses: actions/checkout@v2
114
- - run: bundle install && bundle exec rake gem:x86_64-linux:rcd
115
- - uses: actions/upload-artifact@v2
116
- with:
117
- name: native-gem
118
- path: gems
119
- retention-days: 1
120
- ```
121
-
122
- Where the referenced rake task might be defined by:
123
-
124
- ``` ruby
125
- cross_platforms = ["x64-mingw32", "x86_64-linux", "x86_64-darwin", "arm64-darwin"]
126
-
127
- namespace "gem" do
128
- cross_platforms.each do |platform|
129
- namespace platform do
130
- task "rcd" do
131
- Rake::Task["native:#{platform}"].invoke
132
- Rake::Task["pkg/#{rcee_precompiled_spec.full_name}-#{Gem::Platform.new(platform)}.gem"].invoke
133
- end
134
- end
135
- end
136
- end
137
-
138
- ```
139
-
140
- For an example of rake tasks that support this style of invocation, visit https://github.com/flavorjones/ruby-c-extensions-explained/tree/main/precompiled
141
-
142
-
143
98
  ### JRuby support
144
99
 
145
100
  Rake-compiler-dock offers a dedicated docker image for JRuby.
@@ -220,6 +175,48 @@ gem 'rake-compiler-dock', '~> 1.2'
220
175
 
221
176
  See [the wiki](https://github.com/rake-compiler/rake-compiler-dock/wiki/Projects-using-rake-compiler-dock) for projects which make use of rake-compiler-dock.
222
177
 
178
+ ### As a CI System Container
179
+
180
+ The OCI images provided by rake-compiler-dock can be used without the `rake-compiler-dock` gem or wrapper. This may be useful if your CI pipeline is building native gems.
181
+
182
+ For example, a Github Actions job might look like this:
183
+
184
+ ``` yaml
185
+ jobs:
186
+ native-gem:
187
+ name: "native-gem"
188
+ runs-on: ubuntu-latest
189
+ container:
190
+ image: "larskanis/rake-compiler-dock-mri-x86_64-linux:1.2.1"
191
+ steps:
192
+ - uses: actions/checkout@v2
193
+ - run: bundle install && bundle exec rake gem:x86_64-linux:rcd
194
+ - uses: actions/upload-artifact@v2
195
+ with:
196
+ name: native-gem
197
+ path: gems
198
+ retention-days: 1
199
+ ```
200
+
201
+ Where the referenced rake task might be defined by:
202
+
203
+ ``` ruby
204
+ cross_platforms = ["x64-mingw32", "x86_64-linux", "x86_64-darwin", "arm64-darwin"]
205
+
206
+ namespace "gem" do
207
+ cross_platforms.each do |platform|
208
+ namespace platform do
209
+ task "rcd" do
210
+ Rake::Task["native:#{platform}"].invoke
211
+ Rake::Task["pkg/#{rcee_precompiled_spec.full_name}-#{Gem::Platform.new(platform)}.gem"].invoke
212
+ end
213
+ end
214
+ end
215
+ end
216
+
217
+ ```
218
+
219
+ For an example of rake tasks that support this style of invocation, visit https://github.com/flavorjones/ruby-c-extensions-explained/tree/main/precompiled
223
220
 
224
221
  ## Environment Variables
225
222
 
@@ -1,4 +1,4 @@
1
1
  module RakeCompilerDock
2
- VERSION = "1.2.1"
3
- IMAGE_VERSION = "1.2.1"
2
+ VERSION = "1.2.2"
3
+ IMAGE_VERSION = "1.2.2"
4
4
  end
@@ -41,11 +41,12 @@ namespace "gem" do
41
41
 
42
42
  desc "Build the native gem for #{plat}"
43
43
  task plat => 'prepare' do
44
+ config = "-- #{ENV['RCD_TEST_CONFIG']}"
44
45
  # Set mountdir of the directory where .git resides, so that git ls-files in the gemspec works
45
46
  RakeCompilerDock.sh <<-EOT, platform: plat, mountdir: Dir.pwd + "/../.."
46
47
  (cp tmp/gem/gem-*.pem ~/.gem/ || true) &&
47
48
  bundle --local &&
48
- rake native:#{plat} pkg/#{exttask.gem_spec.full_name}-#{plat}.gem
49
+ rake native:#{plat} pkg/#{exttask.gem_spec.full_name}-#{plat}.gem #{config}
49
50
  EOT
50
51
  end
51
52
  end
@@ -19,5 +19,11 @@ else
19
19
  have_func('rb_thread_call_without_gvl', 'ruby/thread.h') ||
20
20
  raise("rb_thread_call_without_gvl() not found")
21
21
 
22
+ if arg_config("--link-static", false)
23
+ # https://github.com/rake-compiler/rake-compiler-dock/issues/69
24
+ puts "Linking with '-static' flag"
25
+ $LDFLAGS << ' -static'
26
+ end
27
+
22
28
  create_makefile("rcd_test/rcd_test_ext")
23
29
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-compiler-dock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Kanis
@@ -35,7 +35,7 @@ cert_chain:
35
35
  oL1mUdzB8KrZL4/WbG5YNX6UTtJbIOu9qEFbBAy4/jtIkJX+dlNoFwd4GXQW1YNO
36
36
  nA==
37
37
  -----END CERTIFICATE-----
38
- date: 2022-03-17 00:00:00.000000000 Z
38
+ date: 2022-06-27 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: bundler
metadata.gz.sig CHANGED
Binary file