Skip to content

Merge pull request #1365 from ruby/cvar-ctable #3079

Merge pull request #1365 from ruby/cvar-ctable

Merge pull request #1365 from ruby/cvar-ctable #3079

Workflow file for this run

name: Main
concurrency:
group: "${{github.workflow}}-${{github.ref}}"
cancel-in-progress: true
on:
push:
branches:
- main
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
bundler-cache: true
- name: Lint
run: bundle exec rake lint
build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Run Ruby tests
run: bundle exec rake
shell: bash
build-ffi:
strategy:
fail-fast: false
matrix:
ruby: [ruby, jruby, truffleruby]
runs-on: ubuntu-latest
env:
YARP_FFI_BACKEND: "true"
steps:
- uses: actions/checkout@v3
# The Gemfile.lock is different with YARP_FFI_BACKEND=true for CRuby
- run: rm Gemfile.lock
if: matrix.ruby == 'ruby'
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true
- name: Run Ruby tests
run: bundle exec rake
build-debug-mode:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Run Ruby tests
run: bundle exec rake
env:
YARP_DEBUG_MODE_BUILD: "1"
build-without-assertions:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Run Ruby tests
run: bundle exec rake compile_no_debug
build-java:
runs-on: ubuntu-latest
env:
JRUBY_OPTS: "--dev"
steps:
- uses: actions/checkout@v3
- name: Set up CRuby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2
bundler-cache: true
- name: Serialize fixtures on CRuby
run: bundle exec rake compile test:serialize_fixtures
- name: Set up JRuby
uses: ruby/setup-ruby@v1
with:
ruby-version: jruby
bundler-cache: true
- name: Compile generated Java files
run: bundle exec rake compile
- name: Run Java Loader test
run: JRUBY_OPTS="-J-ea" bundle exec rake test:java_loader
lex-ruby:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Lex ruby/ruby
run: bundle exec rake lex:ruby
lex-discourse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Lex discourse/discourse
run: bundle exec rake lex:discourse
lex-top-100:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Lex Top 100 Gems
run: bundle exec rake lex:topgems
- name: Parse Top 100 Gems
run: bundle exec rake parse:topgems
memcheck:
runs-on: ubuntu-latest
steps:
- name: Install valgrind from source
run: |
sudo apt-get install -y libc6-dbg
wget https://sourceware.org/pub/valgrind/valgrind-3.20.0.tar.bz2
tar xvf valgrind-3.20.0.tar.bz2
cd valgrind-3.20.0
./configure
make
sudo make install
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Run Ruby tests with valgrind
run: bundle exec rake test:valgrind
gem-package:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- run: bundle exec rake build
- uses: actions/upload-artifact@v3
with:
name: gem-package
path: pkg
retention-days: 1
gem-install:
needs: ["gem-package"]
strategy:
fail-fast: false
matrix:
ruby: ["3.0", "3.1", "3.2", "head", "jruby", "truffleruby"]
os: [ubuntu-latest, macos-latest, windows-latest]
exclude:
- { ruby: truffleruby, os: windows-latest }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
- uses: actions/download-artifact@v3
with:
name: gem-package
path: pkg
- run: |
gem install --local pkg/yarp-*.gem
gem list -d yarp
shell: bash
- name: Run tests
run: |
bundle install
rm -rf lib ext # ensure we don't use the local files
rake test
shell: bash
gcc-analyzer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Run build with gcc-analyzer enabled
run: |
CFLAGS='-fanalyzer' bundle exec rake compile
clang-analyzer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: head
bundler-cache: true
- name: Install clang-analyzer
run: sudo apt-get install -y clang-tools
- name: Run build with clang-analyzer
run: |
scan-build bundle exec rake compile 2>&1 | tee /tmp/scan_build_output.log
grep -q 'scan-build: No bugs found.' /tmp/scan_build_output.log