Automated Ruby Gem release pipeline and Cross Platform CI fixes #738
Automated Ruby Gem release pipeline and Cross Platform CI fixes #738avik22835 wants to merge 44 commits intometacall:developfrom
Conversation
…nd non-fatal pipes
…olve encoding and path issues
…and BOM-free PowerShell
…PATH to resolve Error 126
…ime PATH injection
…t encodings error
…Windows polyglot logic
|
It looks pretty good but the algorithm for searching the library must be in ruby itself, not in bash or ps1: Nodejs: core/source/ports/node_port/index.js Lines 28 to 159 in 70362ec Python: core/source/ports/py_port/metacall/api.py Lines 26 to 112 in 70362ec |
| paths: [ | ||
| '/opt/homebrew/lib/', | ||
| '/usr/local/lib/', | ||
| File.join(home_dir, '.metacall', 'lib'), |
|
|
||
| # Set environment variable for the host | ||
| ENV['METACALL_HOST'] ||= 'rb' | ||
|
|
There was a problem hiding this comment.
all those env vars in theory are setup automatically, we should check if it works after deleting them
| root_dir = File.dirname(install_dir) | ||
|
|
||
| # Set environment variable for the host | ||
| ENV['METACALL_HOST'] ||= 'rb' |
| config_path = File.join(root_dir, 'configurations') | ||
| ENV['CONFIGURATION_PATH'] ||= config_path if Dir.exist?(config_path) | ||
|
|
||
| # Platform-specific environment fixes |
There was a problem hiding this comment.
respect to this, I've seen the issue twice...
maybe we should solve it externally with something like what linux distributable does, it provides a file for defining all env vars before hand that you can use to load them...
although I'm not sure what is the best method, if we do it here we will need to replicate it everywhere
also I think this issue also comes because we are relocating the runtimes in windows, maybe this is the main issue
|
So my PR is now clean. All env related parts are removed while keeping the matching logic intact. |
Hi Vicente,
The goal of this PR is to enable a fully automated release pipeline for the Metacall Ruby port.
I've implemented a hybrid workflow (release-ruby.yml) and a helper script (upload.sh) that handles everything from environment detection to the final push to RubyGems.org.
The Release pipeline logic
Solving the Windows "Error 126". I've fixed this by:
Current Status and Evidence

I have verified this entire flow on my fork. As you can in the attached screenshot, the integration tests are now 3/3 green across the entire matrix, and the release job currently says skipped cause no version tags have been pushed.
To enable the automated gem push, please add the following Secret to the metacall/core repository: