mirror of
https://github.com/rails/execjs
synced 2023-03-27 23:21:20 -04:00
Merge pull request #98 from casperisfine/github-actions
Migrate to GitHub actions and fixes various issues
This commit is contained in:
commit
829c22d431
6 changed files with 78 additions and 97 deletions
53
.github/workflows/ci.yml
vendored
Normal file
53
.github/workflows/ci.yml
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
name: CI
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
ubuntu:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
ruby: [ '3.0', '2.7', '2.6', '2.5', 'jruby', 'truffleruby' ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Node
|
||||
run: sudo apt-get install -y nodejs
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
- name: Update Rubygems
|
||||
run: gem update --system
|
||||
- name: Install bundler
|
||||
run: gem install bundler -v '2.2.16'
|
||||
- name: Install dependencies
|
||||
run: bundle install
|
||||
- name: Run test
|
||||
run: rake
|
||||
- name: Install gem
|
||||
run: rake install
|
||||
macos:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
ruby: [ '3.0', '2.7', '2.6', '2.5' ]
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
- name: Update Rubygems
|
||||
run: gem update --system
|
||||
- name: Install bundler
|
||||
run: gem install bundler -v '2.2.16'
|
||||
- name: Install dependencies
|
||||
run: bundle install
|
||||
- name: Run test
|
||||
run: rake
|
||||
- name: Install gem
|
||||
run: rake install
|
87
.travis.yml
87
.travis.yml
|
@ -1,87 +0,0 @@
|
|||
language: ruby
|
||||
cache: bundler
|
||||
sudo: false
|
||||
# we need trust so correct gcc runs for mini_racer, latest v8 requires gcc 4.8+
|
||||
|
||||
before_install:
|
||||
- if [ "$EXECJS_RUNTIME" == "V8" ]; then brew update; fi
|
||||
- if [ "$EXECJS_RUNTIME" == "V8" ]; then brew install v8; fi
|
||||
- if [ "$EXECJS_RUNTIME" == "Node" ]; then node --version; fi
|
||||
- if [ "$EXECJS_RUNTIME" == "MiniRacer" ]; then gem install bundler -v 1.12.0; fi
|
||||
script: bundle && bundle exec ruby test/test_execjs.rb
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- rvm: 2.0.0
|
||||
env: EXECJS_RUNTIME=Node
|
||||
- rvm: 2.0.0
|
||||
env: EXECJS_RUNTIME=Duktape
|
||||
- rvm: 2.0.0
|
||||
env: EXECJS_RUNTIME=MiniRacer
|
||||
dist: trusty
|
||||
sudo: true
|
||||
|
||||
- rvm: 2.1.10
|
||||
env: EXECJS_RUNTIME=Node
|
||||
- rvm: 2.1.10
|
||||
env: EXECJS_RUNTIME=Duktape
|
||||
- rvm: 2.1.10
|
||||
env: EXECJS_RUNTIME=MiniRacer
|
||||
dist: trusty
|
||||
sudo: true
|
||||
|
||||
- rvm: 2.2.7
|
||||
env: EXECJS_RUNTIME=Node
|
||||
- rvm: 2.2.7
|
||||
env: EXECJS_RUNTIME=Duktape
|
||||
- rvm: 2.2.7
|
||||
env: EXECJS_RUNTIME=MiniRacer
|
||||
dist: trusty
|
||||
sudo: true
|
||||
|
||||
- rvm: 2.3.4
|
||||
env: EXECJS_RUNTIME=Node
|
||||
- rvm: 2.3.4
|
||||
env: EXECJS_RUNTIME=Duktape
|
||||
- rvm: 2.3.4
|
||||
env: EXECJS_RUNTIME=MiniRacer
|
||||
dist: trusty
|
||||
sudo: true
|
||||
|
||||
- rvm: 2.4.1
|
||||
env: EXECJS_RUNTIME=Node
|
||||
- rvm: 2.4.1
|
||||
env: EXECJS_RUNTIME=Duktape
|
||||
- rvm: 2.4.1
|
||||
env: EXECJS_RUNTIME=MiniRacer
|
||||
dist: trusty
|
||||
sudo: true
|
||||
|
||||
- rvm: ruby-head
|
||||
env: EXECJS_RUNTIME=Node
|
||||
- rvm: ruby-head
|
||||
env: EXECJS_RUNTIME=Duktape
|
||||
- rvm: ruby-head
|
||||
env: EXECJS_RUNTIME=MiniRacer
|
||||
dist: trusty
|
||||
sudo: true
|
||||
|
||||
- rvm: jruby-19mode
|
||||
env: EXECJS_RUNTIME=Node
|
||||
- rvm: jruby-19mode
|
||||
env: EXECJS_RUNTIME=RubyRhino
|
||||
|
||||
- os: osx
|
||||
env: EXECJS_RUNTIME=JavaScriptCore
|
||||
- os: osx
|
||||
env: EXECJS_RUNTIME=Node
|
||||
- os: osx
|
||||
env: EXECJS_RUNTIME=Duktape
|
||||
- os: osx
|
||||
env: EXECJS_RUNTIME=V8
|
||||
- os: osx
|
||||
env: EXECJS_RUNTIME=MiniRacer
|
||||
osx_image: xcode7.3
|
||||
allow_failures:
|
||||
- rvm: ruby-head
|
||||
fast_finish: true
|
|
@ -6,6 +6,7 @@ module ExecJS
|
|||
def initialize(runtime, source = "", options={})
|
||||
source = encode(source)
|
||||
@context = ::MiniRacer::Context.new
|
||||
@context.eval("delete this.console");
|
||||
translate do
|
||||
@context.eval(source)
|
||||
end
|
||||
|
|
|
@ -24,7 +24,10 @@ module ExecJS
|
|||
|
||||
JavaScriptCore = ExternalRuntime.new(
|
||||
name: "JavaScriptCore",
|
||||
command: "/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc",
|
||||
command: [
|
||||
"/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Helpers/jsc",
|
||||
"/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc",
|
||||
],
|
||||
runner_path: ExecJS.root + "/support/jsc_runner.js"
|
||||
)
|
||||
|
||||
|
|
|
@ -28,4 +28,5 @@
|
|||
this.process = __process__;
|
||||
print(JSON.stringify(['err', '' + err, err.stack]));
|
||||
}
|
||||
__process__.exit(0);
|
||||
});
|
||||
|
|
|
@ -104,21 +104,21 @@ class TestExecJS < Test
|
|||
'"\\\\"' => "\\"
|
||||
}.each_with_index do |(input, output), index|
|
||||
define_method("test_exec_string_#{index}") do
|
||||
assert_equal output, ExecJS.exec("return #{input}")
|
||||
assert_output output, ExecJS.exec("return #{input}")
|
||||
end
|
||||
|
||||
define_method("test_eval_string_#{index}") do
|
||||
assert_equal output, ExecJS.eval(input)
|
||||
assert_output output, ExecJS.eval(input)
|
||||
end
|
||||
|
||||
define_method("test_compile_return_string_#{index}") do
|
||||
context = ExecJS.compile("var a = #{input};")
|
||||
assert_equal output, context.eval("a")
|
||||
assert_output output, context.eval("a")
|
||||
end
|
||||
|
||||
define_method("test_compile_call_string_#{index}") do
|
||||
context = ExecJS.compile("function a() { return #{input}; }")
|
||||
assert_equal output, context.call("a")
|
||||
assert_output output, context.call("a")
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -145,25 +145,25 @@ class TestExecJS < Test
|
|||
json_value = JSON.generate(value, quirks_mode: true)
|
||||
|
||||
define_method("test_json_value_#{index}") do
|
||||
assert_equal value, JSON.parse(json_value, quirks_mode: true)
|
||||
assert_output value, JSON.parse(json_value, quirks_mode: true)
|
||||
end
|
||||
|
||||
define_method("test_exec_value_#{index}") do
|
||||
assert_equal value, ExecJS.exec("return #{json_value}")
|
||||
assert_output value, ExecJS.exec("return #{json_value}")
|
||||
end
|
||||
|
||||
define_method("test_eval_value_#{index}") do
|
||||
assert_equal value, ExecJS.eval("#{json_value}")
|
||||
assert_output value, ExecJS.eval("#{json_value}")
|
||||
end
|
||||
|
||||
define_method("test_strinigfy_value_#{index}") do
|
||||
context = ExecJS.compile("function json(obj) { return JSON.stringify(obj); }")
|
||||
assert_equal json_value, context.call("json", value)
|
||||
assert_output json_value, context.call("json", value)
|
||||
end
|
||||
|
||||
define_method("test_call_value_#{index}") do
|
||||
context = ExecJS.compile("function id(obj) { return obj; }")
|
||||
assert_equal value, context.call("id", value)
|
||||
assert_output value, context.call("id", value)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -421,4 +421,14 @@ class TestExecJS < Test
|
|||
assert_equal "function foo(bar){return bar}",
|
||||
context.call("uglify", "function foo(bar) {\n return bar;\n}")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def assert_output(expected, actual)
|
||||
if expected.nil?
|
||||
assert_nil actual
|
||||
else
|
||||
assert_equal expected, actual
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue