name: Test Suite # Only triggers on pushes/PRs to master on: pull_request: branches: - master push: branches: - master jobs: test: name: CI strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macOS-latest] dc: [dmd-latest, ldc-latest, dmd-2.079.0, ldc-1.9.0, ldc-1.17.0] arch: [x86_64] config: [select, epoll, cfrunloop, winapi] exclude: - {os: ubuntu-latest, config: cfrunloop} - {os: ubuntu-latest, config: winapi} - {os: macOS-latest, config: epoll} - {os: macOS-latest, config: winapi} - {os: windows-latest, config: cfrunloop} - {os: windows-latest, config: epoll} # macOS fails up to FE 2.086.x, so we test on a slightly newer # version instead # "dyld: lazy symbol binding failed: Symbol not found: _dyld_enumerate_tlv_storage" - {os: macOS-latest, dc: dmd-2.079.0} - {os: macOS-latest, dc: ldc-1.9.0} - {os: windows-latest, dc: ldc-1.9.0, config: select} - {os: windows-latest, dc: ldc-1.17.0} - {os: ubuntu-latest, dc: ldc-1.17.0} include: - {os: windows-latest, dc: ldc-latest, arch: x86, config: winapi} - {os: windows-latest, dc: dmd-latest, arch: x86_mscoff, config: winapi} runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Install D compiler uses: dlang-community/setup-dlang@v1 with: compiler: ${{ matrix.dc }} - name: Run tests env: CONFIG: ${{matrix.config}} ARCH: ${{matrix.arch}} shell: bash run: ./run-ci.sh