name: CI

on: [ push, pull_request, workflow_dispatch ]

jobs: build: name: >- $matrix.os } $matrix.ruby } runs-on: $matrix.os } timeout-minutes: 10 strategy: fail-fast: false matrix: os: [ ubuntu-20.04, ubuntu-18.04, macos-10.15, windows-2019 ] ruby: [ '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', head ] include: - { os: windows-2019, ruby: mingw } exclude: - { os: windows-2019, ruby: head } steps: - name: repo checkout uses: actions/checkout@v2

  - name: load ruby, openssl
    uses: MSP-Greg/setup-ruby-pkgs@v1
    with:
      ruby-version: ${{ matrix.ruby }}
      mingw: _upgrade_ openssl

  - name: macOS disable firewall
    if: startsWith(matrix.os, 'macos')
    run: |
      sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
      sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate

  - name: bundle install
    run:  bundle install --jobs 4 --retry 3 --without=documentation

  - name: compile
    run:  bundle exec rake compile

  - name: test
    run:  bundle exec rake test
    env:
      CI: true
      TESTOPTS: -v --no-show-detail-immediately