I’m attempting to create a CI test that executes a test using multiple Ruby versions using rvm on Linux, but I want to execute another test on Windows using the bash shell.
I’ve tried a few configurations, but they do not allow me to create or use multiple ruby versions if I have an additional OS and language in the matrix.
As an example, if I use the following configuration, I’ll get 3 different line items for Linux with different Ruby versions:
os: - linux dist: xenial language: ruby cache: bundler rvm: - 2.4.5 - 2.5.4 - 2.6.2 script: - ruby -v
If I add a matrix and include different OS’s and languages, I just get 2 line items in the matrix — one for Linux (ruby) and one for Windows (shell). The Windows OS works fine, but Linux only executes the first ruby version in the rvm list.
matrix: include: - os: linux dist: xenial language: ruby cache: bundler rvm: - 2.4.5 - 2.5.4 - 2.6.2 script: - ruby -v - os: windows language: shell script: - powershell -Command Write-Host Test
I’d like to have 3 build jobs with different ruby versions listed for Linux, but just one shell build job on Windows. Is it possible to use rvm within a matrix with multiple OS’s and languages with Travis CI?
Advertisement
Answer
You have to define one include
block for every build job:
matrix: include: - os: linux dist: xenial language: ruby cache: bundler rvm: 2.4.5 script: - ruby -v - os: linux dist: xenial language: ruby cache: bundler rvm: 2.5.4 script: - ruby -v - os: linux dist: xenial language: ruby cache: bundler rvm: 2.6.2 script: - ruby -v - os: windows language: shell script: - powershell -Command Write-Host Test