Skip to content

Commit 49f8f69

Browse files
Review fixes: expand cargo clean, add binary guard
- Include magnus and serde_magnus in cargo clean (both have version-conditional #[cfg(ruby_gte_*)] code that must recompile) - Add cargo clean before first compilation too (handles stale cache from previous release run) - Abort if no compiled binaries found before packaging gem - Simplify glob to idiomatic spec.files +=
1 parent b4ba645 commit 49f8f69

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

.github/workflows/release.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ jobs:
8383
env:
8484
RB_SYS_CARGO_PROFILE: release
8585
run: |
86+
cargo clean -p rb-sys -p magnus -p serde_magnus -p wreq-ruby --release 2>/dev/null || true
8687
bundle exec rake compile
8788
mkdir -p lib/wreq_ruby/3.3
8889
cp lib/wreq_ruby/wreq_ruby.bundle lib/wreq_ruby/3.3/
@@ -96,7 +97,7 @@ jobs:
9697
env:
9798
RB_SYS_CARGO_PROFILE: release
9899
run: |
99-
cargo clean -p rb-sys -p wreq-ruby --release
100+
cargo clean -p rb-sys -p magnus -p serde_magnus -p wreq-ruby --release
100101
bundle exec rake compile
101102
mkdir -p lib/wreq_ruby/3.4
102103
cp lib/wreq_ruby/wreq_ruby.bundle lib/wreq_ruby/3.4/
@@ -110,7 +111,7 @@ jobs:
110111
env:
111112
RB_SYS_CARGO_PROFILE: release
112113
run: |
113-
cargo clean -p rb-sys -p wreq-ruby --release
114+
cargo clean -p rb-sys -p magnus -p serde_magnus -p wreq-ruby --release
114115
bundle exec rake compile
115116
mkdir -p lib/wreq_ruby/4.0
116117
cp lib/wreq_ruby/wreq_ruby.bundle lib/wreq_ruby/4.0/

script/build_platform_gem.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@
1919
spec = Gem::Specification.load("wreq.gemspec")
2020
spec.platform = Gem::Platform.new(platform)
2121
spec.extensions = []
22+
# Keep in sync with Rakefile cross_compiling block
2223
spec.required_ruby_version = Gem::Requirement.new(">= 3.3", "< 4.1.dev")
2324

2425
# Add version-specific compiled extensions
25-
Dir.glob("lib/wreq_ruby/[0-9]*/*.{bundle,so}").each do |path|
26-
spec.files << path unless spec.files.include?(path)
27-
end
26+
binaries = Dir.glob("lib/wreq_ruby/[0-9]*/*.{bundle,so}")
27+
abort "No compiled binaries found in lib/wreq_ruby/*/. Did compilation succeed?" if binaries.empty?
28+
spec.files += binaries
2829

2930
FileUtils.mkdir_p("pkg")
3031
gem_file = Gem::Package.build(spec)

0 commit comments

Comments
 (0)