Skip to content

Commit

Permalink
Merge pull request #308 from kou/native-package-auto-install
Browse files Browse the repository at this point in the history
Add support for native package auto install
  • Loading branch information
mrkn authored Jul 20, 2021
2 parents d483f18 + f82ddfa commit b52dfc6
Show file tree
Hide file tree
Showing 4 changed files with 147 additions and 69 deletions.
124 changes: 124 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: CI

on:
push:
branches:
- master
pull_request:
types:
- opened
- synchronize
- reopened

jobs:
ubuntu:
name: Ubuntu
runs-on: ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
ruby:
- "3.0"
- "2.7"
- "2.6"
- "2.5"
- "2.4"
- "2.3"
- debug

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1

- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}

- run: rake build

- name: Install irb for old Ruby
if: |
matrix.ruby == '2.5' ||
matrix.ruby == '2.4' ||
matrix.ruby == '2.3'
run: |
cat <<GEMFILE > Gemfile.irb
source 'https://rubygems.org'
gem 'irb'
GEMFILE
BUNDLE_GEMFILE=Gemfile.irb bundle install --jobs 4 --retry 3
- run: gem install pkg/*.gem

- run: ruby -r iruby -e "p IRuby::SessionAdapter.select_adapter_class"
env:
IRUBY_SESSION_ADAPTER: ffi-rzmq

- name: Install requirements on ubuntu
run: |
sudo apt update
sudo apt install -y --no-install-recommends \
libczmq-dev \
python3 \
python3-pip \
python3-setuptools
sudo pip3 install wheel
sudo pip3 install -r ci/requirements.txt
- run: bundle install --jobs 4 --retry 3

- name: Run tests
env:
PYTHON: python3
ADAPTERS: cztop ffi-rzmq pyzmq
run: |
for adapter in $ADAPTERS; do
export IRUBY_TEST_SESSION_ADAPTER_NAME=$adapter
bundle exec rake test TESTOPTS=-v
done
windows:
name: Windows
runs-on: windows-latest

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1

- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.0"

- run: rake build

- run: gem install pkg/*.gem

- run: ruby -r iruby -e "p IRuby::SessionAdapter.select_adapter_class"
env:
IRUBY_SESSION_ADAPTER: ffi-rzmq

macos:
name: macOS
runs-on: macos-latest

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1

- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.0"

- run: rake build

- run: gem install pkg/*.gem

- run: ruby -r iruby -e "p IRuby::SessionAdapter.select_adapter_class"
env:
IRUBY_SESSION_ADAPTER: ffi-rzmq
69 changes: 0 additions & 69 deletions .github/workflows/ubuntu.yml

This file was deleted.

19 changes: 19 additions & 0 deletions ext/Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
task default: :all

task all: [:ensure_zeromq]

task :ensure_zeromq do
begin
require 'ffi-rzmq'
rescue LoadError
require 'native-package-installer'
unless NativePackageInstaller.install(arch_linux: 'zeromq',
debian: 'libzmq3-dev',
freebsd: 'libzmq4',
homebrew: 'zmq',
macports: 'zmq',
redhat: 'zeromq-devel')
raise 'Failed to install ZeroMQ'
end
end
end
4 changes: 4 additions & 0 deletions iruby.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Gem::Specification.new do |s|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
s.test_files = s.files.grep(%r{^test/})
s.require_paths = %w[lib]
s.extensions = %w[ext/Rakefile]

s.required_ruby_version = '>= 2.3.0'

Expand All @@ -22,9 +23,12 @@ Gem::Specification.new do |s|
s.add_dependency 'irb'
s.add_dependency 'mime-types', '>= 3.3.1'
s.add_dependency 'multi_json', '~> 1.11'
s.add_dependency 'native-package-installer'

s.add_development_dependency 'pycall', '>= 1.2.1'
s.add_development_dependency 'rake'
s.add_development_dependency 'test-unit'
s.add_development_dependency 'test-unit-rr'

s.metadata['msys2_mingw_dependencies'] = 'zeromq'
end

0 comments on commit b52dfc6

Please sign in to comment.