mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Start GitHub Actions; close #4903
This commit is contained in:
committed by
Yukihiro "Matz" Matsumoto
parent
93e78fcde1
commit
4ce3997ca4
@@ -0,0 +1,108 @@
|
||||
name: Build & Test
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
Ubuntu-1604:
|
||||
runs-on: ubuntu-16.04
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: apt
|
||||
run: sudo apt install ruby gperf bison
|
||||
- name: build and test
|
||||
run: rake -m -j4 all test
|
||||
env:
|
||||
MRUBY_CONFIG: travis_config.rb
|
||||
|
||||
Ubuntu-1804-gcc:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: apt
|
||||
run: sudo apt install ruby gperf bison gcc g++
|
||||
- name: build and test
|
||||
run: rake -m -j4 all test
|
||||
env:
|
||||
MRUBY_CONFIG: travis_config.rb
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
|
||||
Ubuntu-1804-clang:
|
||||
runs-on: ubuntu-18.04
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: apt
|
||||
run: sudo apt install ruby gperf bison
|
||||
- name: build and test
|
||||
run: rake -m -j4 all test
|
||||
env:
|
||||
MRUBY_CONFIG: travis_config.rb
|
||||
CC: clang
|
||||
CXX: clang++
|
||||
|
||||
macOS:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: brew
|
||||
run: brew install ruby gperf bison
|
||||
- name: build and test
|
||||
run: rake -m -j4 all test
|
||||
env:
|
||||
MRUBY_CONFIG: travis_config.rb
|
||||
|
||||
Windows-MinGW:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: chocolatey
|
||||
run: choco install -y ruby winflexbison gperf
|
||||
- name: build and test
|
||||
run: rake -E '$stdout.sync=true' -j4 test
|
||||
env:
|
||||
MRUBY_CONFIG: travis_config.rb
|
||||
YACC: win_bison
|
||||
CFLAGS: -g -O1 -Wall -Wundef
|
||||
|
||||
Windows-Cygwin:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/cache@v1
|
||||
with:
|
||||
path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey
|
||||
key: ${{ runner.os }}-cygwin-chocolatey-${{ matrix.os }}-${{ github.sha }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-cygwin-chocolatey-${{ matrix.os }}-
|
||||
${{ runner.os }}-cygwin-chocolatey-
|
||||
- name: chocolatey
|
||||
run: choco install -y cygwin
|
||||
- name: Install cygwin packages
|
||||
shell: cmd
|
||||
run: C:\tools\cygwin\cygwinsetup.exe -qgnNdO -R C:/tools/cygwin -l C:/tools/cygwin/package -s http://mirrors.kernel.org/sourceware/cygwin/ -P gcc-core,gcc-g++,bison,make,gperf,ruby
|
||||
- name: Set ENV
|
||||
run: |
|
||||
echo '::set-env name=PATH::C:\tools\cygwin\bin;C:\tools\cygwin\usr\bin'
|
||||
- name: build and test
|
||||
shell: cmd
|
||||
run: C:\tools\cygwin\bin\ruby.exe /usr/bin/rake -m -j4 -v -E 'STDOUT.sync=true' test
|
||||
env:
|
||||
MRUBY_CONFIG: travis_config.rb
|
||||
|
||||
Windows-VC:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: chocolatey
|
||||
run: choco install -y ruby winflexbison gperf
|
||||
- name: build and test
|
||||
shell: cmd
|
||||
run: |
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
||||
rake -E "STDOUT.sync=true" -m -j4 -v test
|
||||
env:
|
||||
MRUBY_CONFIG: appveyor_config.rb
|
||||
YACC: win_bison
|
||||
# TODO(take-cheeze): Re-enable /O2
|
||||
CFLAGS: "/c /nologo /W3 /we4013 /Zi /MD /D_CRT_SECURE_NO_WARNINGS"
|
||||
CXXFLAGS: "/c /nologo /W3 /Zi /MD /EHs /D_CRT_SECURE_NO_WARNINGS"
|
||||
@@ -276,6 +276,14 @@ EOS
|
||||
end
|
||||
end
|
||||
|
||||
def cygwin_filename(name)
|
||||
if name.is_a?(Array)
|
||||
name.flatten.map { |n| cygwin_filename(n) }
|
||||
else
|
||||
`cygpath -w "#{filename(name)}"`.strip
|
||||
end
|
||||
end
|
||||
|
||||
def exefile(name)
|
||||
if name.is_a?(Array)
|
||||
name.flatten.map { |n| exefile(n) }
|
||||
|
||||
+3
-1
@@ -6,7 +6,9 @@ module MRuby
|
||||
ROOT = Pathname.new(File.expand_path('../../../',__FILE__))
|
||||
|
||||
# Reads a constant defined at version.h
|
||||
MRUBY_READ_VERSION_CONSTANT = Proc.new { |name| ROOT.join('include','mruby','version.h').read.match(/^#define #{name} +"?([\w\. ]+)"?$/)[1] }
|
||||
MRUBY_READ_VERSION_CONSTANT = Proc.new do |name|
|
||||
ROOT.join('include','mruby','version.h').read.match(/^#define #{name} +"?([\w\. ]+)"?\r?$/)[1]
|
||||
end
|
||||
|
||||
MRUBY_RUBY_VERSION = MRUBY_READ_VERSION_CONSTANT['MRUBY_RUBY_VERSION']
|
||||
MRUBY_RUBY_ENGINE = MRUBY_READ_VERSION_CONSTANT['MRUBY_RUBY_ENGINE']
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
MRuby::Build.new('debug') do |conf|
|
||||
toolchain :gcc
|
||||
yacc.command = ENV['YACC'] || 'bison'
|
||||
enable_debug
|
||||
|
||||
# include all core GEMs
|
||||
conf.gembox 'full-core'
|
||||
conf.cc.flags += %w(-Werror=declaration-after-statement)
|
||||
conf.compilers.each do |c|
|
||||
c.defines += %w(MRB_GC_STRESS MRB_GC_FIXED_ARENA MRB_METHOD_CACHE)
|
||||
end
|
||||
|
||||
build_mrbc_exec
|
||||
end
|
||||
|
||||
MRuby::Build.new('full-debug') do |conf|
|
||||
toolchain :gcc
|
||||
yacc.command = ENV['YACC'] || 'bison'
|
||||
enable_debug
|
||||
|
||||
# include all core GEMs
|
||||
@@ -12,6 +28,7 @@ end
|
||||
|
||||
MRuby::Build.new do |conf|
|
||||
toolchain :gcc
|
||||
yacc.command = ENV['YACC'] || 'bison'
|
||||
|
||||
# include all core GEMs
|
||||
conf.gembox 'full-core'
|
||||
@@ -25,6 +42,7 @@ end
|
||||
|
||||
MRuby::Build.new('cxx_abi') do |conf|
|
||||
toolchain :gcc
|
||||
yacc.command = ENV['YACC'] || 'bison'
|
||||
|
||||
conf.gembox 'full-core'
|
||||
conf.cc.flags += %w(-fpermissive)
|
||||
|
||||
Reference in New Issue
Block a user