mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
* This is a special case, because TruffleRuby needs an extra system dependency that other Rubies do not, and GitHub runners do not have these packages installed by default, while TravisCI has them.
166 lines
4.9 KiB
YAML
166 lines
4.9 KiB
YAML
name: Test this action
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches-ignore:
|
|
- v1
|
|
tags-ignore:
|
|
- '*'
|
|
paths-ignore:
|
|
- README.md
|
|
schedule:
|
|
- cron: '0 7 * * SUN'
|
|
jobs:
|
|
test:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-18.04, ubuntu-20.04, macos-10.15, macos-11.0, windows-2016, windows-2019 ]
|
|
# Use various version syntax here for testing
|
|
ruby: [ 2.1, 2.2, 2.3, 2.4, 2.5, 2.6.6, 2.7, '3.0', ruby-head, jruby, jruby-head, truffleruby, truffleruby-head ]
|
|
include:
|
|
- { os: windows-2016, ruby: mingw }
|
|
- { os: windows-2019, ruby: mingw }
|
|
- { os: windows-2019, ruby: mswin }
|
|
exclude:
|
|
- { os: windows-2016, ruby: debug }
|
|
- { os: windows-2016, ruby: truffleruby }
|
|
- { os: windows-2016, ruby: truffleruby-head }
|
|
- { os: windows-2019, ruby: debug }
|
|
- { os: windows-2019, ruby: truffleruby }
|
|
- { os: windows-2019, ruby: truffleruby-head }
|
|
- { os: macos-11.0, ruby: truffleruby }
|
|
|
|
name: ${{ matrix.os }} ${{ matrix.ruby }}
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: ./
|
|
with:
|
|
ruby-version: ${{ matrix.ruby }}
|
|
bundler-cache: true
|
|
- run: ruby -v
|
|
- name: PATH
|
|
shell: bash
|
|
run: echo $PATH
|
|
|
|
- name: build compiler
|
|
run: |
|
|
ruby -e "puts 'build compiler: ' + RbConfig::CONFIG.fetch('CC_VERSION_MESSAGE', 'unknown').lines.first"
|
|
- name: gcc and ridk version (mingw)
|
|
if: startsWith(matrix.os, 'windows')
|
|
run: |
|
|
$abi, $plat = $(ruby -e "STDOUT.write RbConfig::CONFIG['ruby_version'] + ' ' + RUBY_PLATFORM").split(' ')
|
|
if ($plat.Contains('mingw')) {
|
|
gcc --version
|
|
if ($abi -ge '2.4') {
|
|
ridk version
|
|
} else {
|
|
echo 'ridk is unavailable'
|
|
}
|
|
}
|
|
- name: RbConfig::CONFIG
|
|
run: ruby -rrbconfig -rpp -e 'pp RbConfig::CONFIG'
|
|
- name: RbConfig::MAKEFILE_CONFIG
|
|
run: ruby -rrbconfig -rpp -e 'pp RbConfig::MAKEFILE_CONFIG'
|
|
|
|
- name: Subprocess test
|
|
run: ruby test_subprocess.rb
|
|
- name: OpenSSL version
|
|
run: ruby -ropenssl -e 'puts OpenSSL::OPENSSL_LIBRARY_VERSION'
|
|
- name: OpenSSL test
|
|
run: ruby -ropen-uri -e 'puts URI.send(:open, %{https://rubygems.org/}) { |f| f.read(1024) }'
|
|
|
|
- name: C extension test
|
|
run: gem install json:2.2.0 --no-document
|
|
- run: bundle --version
|
|
# This step is redundant with `bundler-cache: true` but is there to check a redundant `bundle install` still works
|
|
- run: bundle install
|
|
- run: bundle exec rake --version
|
|
|
|
- name: which ruby, rake
|
|
if: "!startsWith(matrix.os, 'windows')"
|
|
run: which -a ruby rake
|
|
- name: where ruby, rake
|
|
if: startsWith(matrix.os, 'windows')
|
|
run: |
|
|
$ErrorActionPreference = 'Continue'
|
|
$where = 'ruby', 'rake'
|
|
foreach ($e in $where) {
|
|
$rslt = where.exe $e 2>&1 | Out-String
|
|
if ($rslt.contains($e)) { echo $rslt.Trim() }
|
|
else { echo "Can't find $e" }
|
|
echo ''
|
|
}
|
|
- name: bash test
|
|
shell: bash
|
|
run: echo ~
|
|
- name: Windows JRuby
|
|
if: startsWith(matrix.os, 'windows') && startsWith(matrix.ruby, 'jruby')
|
|
run: gem install sassc -N
|
|
|
|
testExactBundlerVersion:
|
|
name: "Test with an exact Bundler version"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./
|
|
with:
|
|
ruby-version: 2.6
|
|
bundler: 2.2.3
|
|
- run: bundle --version | grep -F "Bundler version 2.2.3"
|
|
|
|
testDependencyOnBundler1:
|
|
name: "Test gemfile depending on Bundler 1"
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
BUNDLE_GEMFILE: gemfiles/bundler1.gemfile
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./
|
|
with:
|
|
ruby-version: 2.7
|
|
bundler: 1
|
|
bundler-cache: true
|
|
- run: bundle --version | grep -F "Bundler version 1."
|
|
|
|
testGemfileMatrix:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
gemfile: [ rails5, rails6 ]
|
|
name: "Test with ${{ matrix.gemfile }} gemfile"
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./
|
|
with:
|
|
ruby-version: 2.6
|
|
bundler-cache: true
|
|
- run: bundle exec rails --version
|
|
|
|
testTruffleRubyNokogiri:
|
|
name: "Test installing a Gemfile with nokogiri on TruffleRuby"
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
BUNDLE_GEMFILE: gemfiles/nokogiri.gemfile
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ./
|
|
with:
|
|
ruby-version: truffleruby-head
|
|
bundler-cache: true
|
|
- run: bundle list | grep nokogiri
|
|
|
|
lint:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: yarn install
|
|
- run: yarn run package
|
|
- name: Check generated files are up to date
|
|
run: git diff --exit-code
|