|
# https://github.com/actions/runner-images#available-images |
|
name: Build & Test |
|
|
|
on: [push, pull_request] |
|
|
|
permissions: |
|
contents: read |
|
|
|
jobs: |
|
GCC-CLANG: |
|
name: "${{ matrix.os }}-${{ matrix.altname || matrix.cc }}" |
|
runs-on: ${{ matrix.os }} |
|
timeout-minutes: 10 |
|
strategy: |
|
fail-fast: false |
|
max-parallel: 8 |
|
matrix: |
|
include: |
|
- {os: ubuntu-24.04, cc: gcc, cxx: g++} |
|
- {os: ubuntu-24.04, cc: clang, cxx: clang++} |
|
- {os: ubuntu-22.04, cc: gcc, cxx: g++} |
|
- {os: ubuntu-22.04, cc: clang, cxx: clang++} |
|
- {os: macos-26, cc: clang, cxx: clang++} |
|
- {os: macos-15, cc: clang, cxx: clang++} |
|
- {os: windows-2025, cc: gcc, cxx: g++, altname: "mingw-gcc"} |
|
- {os: windows-2022, cc: gcc, cxx: g++, altname: "mingw-gcc"} |
|
env: |
|
MRUBY_CONFIG: ci/gcc-clang |
|
CC: ${{ matrix.cc }} |
|
CXX: ${{ matrix.cxx }} |
|
LD: ${{ matrix.cc }} |
|
steps: |
|
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" |
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 |
|
with: |
|
persist-credentials: false |
|
- name: Ruby version |
|
run: ruby -v |
|
- name: Compiler version |
|
run: ${{ env.CC }} --version |
|
- name: Build and test |
|
run: rake -m test:run:serial |
|
|
|
Cosmopolitan: |
|
runs-on: ubuntu-24.04 |
|
timeout-minutes: 15 |
|
steps: |
|
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" |
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 |
|
with: |
|
persist-credentials: false |
|
- name: Ruby version |
|
run: ruby -v |
|
- name: Cache cosmocc |
|
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 |
|
id: cache-cosmocc |
|
with: |
|
path: ~/cosmo |
|
key: cosmocc-${{ runner.os }}-20260104 |
|
- name: Install cosmocc |
|
if: steps.cache-cosmocc.outputs.cache-hit != 'true' |
|
run: | |
|
mkdir -p ~/cosmo && cd ~/cosmo |
|
wget https://cosmo.zip/pub/cosmocc/cosmocc.zip |
|
unzip cosmocc.zip |
|
- name: Build and test |
|
run: | |
|
COSMO_ROOT=~/cosmo rake -m test:run:serial MRUBY_CONFIG=cosmopolitan |
|
|
|
Windows-VC: |
|
runs-on: windows-2022 |
|
timeout-minutes: 10 |
|
env: |
|
MRUBY_CONFIG: ci/msvc |
|
steps: |
|
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" |
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 |
|
with: |
|
persist-credentials: false |
|
- name: Ruby version |
|
run: ruby -v |
|
- name: Build and test |
|
shell: cmd |
|
run: | |
|
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" |
|
rake -m test:run:serial |