Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Providing ruby-head builds #15

Closed
eregon opened this issue Feb 1, 2020 · 13 comments
Closed

Providing ruby-head builds #15

eregon opened this issue Feb 1, 2020 · 13 comments
Assignees

Comments

@eregon
Copy link
Member

eregon commented Feb 1, 2020

@MSP-Greg, @larskanis (#10 (comment)) and @ioquatix (actions/setup-ruby#44 (comment)) have already mentioned interest in this.

I recently added support for truffleruby-head so it shouldn't be too hard.

Current plan is:

@MSP-Greg
Copy link
Collaborator

MSP-Greg commented Feb 1, 2020

Good idea. It would certainly be helpful to run all the test suites, and also a CLI check on the install folder, as there was a time when the included gem binstubs broke on Windows...

I'm working on moving ruby-loco to a GitHub release, along with an mswin build, so that's also an option.

@eregon
Copy link
Member Author

eregon commented Feb 1, 2020

Good idea. It would certainly be helpful to run all the test suites, and also a CLI check on the install folder, as there was a time when the included gem binstubs broke on Windows...

I'm running test-all and test-spec currently:
https://github.com/eregon/ruby-dev-builder/blob/fcbf2cda653d3c34ba405c1e9bb291c87e79ab9d/.github/workflows/build.yml#L79-L80
What do you mean by a CLI check on the install folder ?

@MSP-Greg
Copy link
Collaborator

MSP-Greg commented Feb 1, 2020

What do you mean by a CLI check on the install folder ?

Check that gem, rake, bundle, etc commands work, I just check to see if they work with a --version argument.

That's one issue with the normal CI, it really doesn't check that the install folder is set up correctly. Most of the time everything is ok, but there have been instances...

I'm running test-all and test-spec currently

Re test-spec, I think it will run from the install folder (without make).

@eregon
Copy link
Member Author

eregon commented Feb 1, 2020

Implemented in f548324, it was fairly easy.

https://github.com/eregon/ruby-dev-builder needs a way to build ~daily and remove old releases, that's still to do, currently it's triggered manually.

@eregon eregon self-assigned this Feb 1, 2020
@eregon
Copy link
Member Author

eregon commented Feb 1, 2020

I now got the automated daily (or rather nightly) builds: ruby/ruby-dev-builder@88794dd

So now the only thing missing is some cleanup to remove older releases.

@MSP-Greg
Copy link
Collaborator

MSP-Greg commented Feb 5, 2020

I've now got fully tested mingw & mswin builds in ruby-loco, stored in a release. Since ruby/ruby tests against mswin, having one available for CI might be helpful. I have not changed it to run cron jobs yet.

Re the single release (vs multiple releases), I messed around with it, and if one uploads the new binary with a different name, then delete the old binary, then renames the new one, the delete/rename typically takes around 300 to 400 mS, with an occasional peak time of around 900 mS.

Using one release allows for a single stable URI, so I think I'll take the risk.

I used an embedded action, as it also updates ruby -v and the SHA512 checksum in the release notes.

@MSP-Greg
Copy link
Collaborator

MSP-Greg commented Feb 8, 2020

@eregon

While working on OpenSSL & mswin, got the following, running a rake script to install a few gems, Ubuntu-18.04 ruby-head.

The workflow ran Ubuntu-18.04 & macOS, Rubies 2.3 thru ruby-head. Ubuntu-18.04 ruby-head was the only job with the failure...

EDIT: I just noticed the version in the line:

Gem::FilePermissionError: You don't have write permissions for the /var/lib/gems/2.5.0 directory

May be permissions, may be the incorrect path/folder and/or an issue with ENV['PATH']...

/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:29: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:30: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
rake-compiler not installed. Run 'rake install_dependencies' to install testing dependency gems.
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
/usr/lib/x86_64-linux-gnu/ruby/2.5.0/openssl.so: warning: already initialized constant OpenSSL::VERSION
/home/runner/work/ruby-openssl/ruby-openssl/lib/openssl/version.rb:4: warning: previous definition of VERSION was here
/usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb:10: warning: constant Gem::ConfigMap is deprecated
rake aborted!
Gem::FilePermissionError: You don't have write permissions for the /var/lib/gems/2.5.0 directory.
/home/runner/work/ruby-openssl/ruby-openssl/Rakefile:40:in `block (2 levels) in <top (required)>'
/home/runner/work/ruby-openssl/ruby-openssl/Rakefile:36:in `each'
/home/runner/work/ruby-openssl/ruby-openssl/Rakefile:36:in `block in <top (required)>'
Tasks: TOP => install_dependencies
(See full trace by running task with --trace)
Installing rake (>= 0) ... (found 12.3.1)
Installing rake-compiler (>= 0) ... 
##[error]Process completed with exit code 1.

@eregon
Copy link
Member Author

eregon commented Feb 8, 2020

/usr/lib/x86_64-linux-gnu/ruby/2.5.0/openssl.so: warning: already initialized constant OpenSSL::VERSION

That's the default ruby, not a bug of this action.
Probably you installed a system ruby with apt-get?

@eregon
Copy link
Member Author

eregon commented Feb 8, 2020

ruby-head builds work fine now (AFAIK).

In https://github.com/ruby/ruby-dev-builder I'm creating a draft release, building on the various platforms, publishing the release, and cleaning old releases automatically.
So all is automated and there are also fixed links to download such as:
https://github.com/ruby/ruby-dev-builder/releases/latest/download/ruby-head-ubuntu-18.04.tar.gz

@eregon eregon closed this as completed Feb 8, 2020
@MSP-Greg
Copy link
Collaborator

MSP-Greg commented Feb 8, 2020

Probably you installed a system ruby with apt-get?

Here's the workflow in ruby/openssl

I haven't looked at the rakefile, but it worked previously, and all other jobs are fine? I'll have another
look, I was rushing out the door earlier...

@eregon
Copy link
Member Author

eregon commented Feb 8, 2020

@MSP-Greg It would be much more useful if you just point me to the PR and Action run:
ruby/openssl#319

Let's discuss there or please open a new issue.
Not sure what's wrong at first sight.

@MSP-Greg
Copy link
Collaborator

MSP-Greg commented Feb 8, 2020

I apologize. I should have waited until I had time to look at it...

@eregon
Copy link
Member Author

eregon commented Feb 8, 2020

The problem is bundled gems were missing, fixed now in ruby/ruby-dev-builder@7bc20bb
ruby/openssl#319 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants