name: windows on: push: branches: - master pull_request: branches: - '*' jobs: latest: strategy: matrix: os: [windows-2016, windows-2019] vs: [2017, 2019] test_task: [test] exclude: - os: windows-2016 vs: 2019 - os: windows-2019 vs: 2017 runs-on: ${{ matrix.os }} steps: - name: Install libraries with vcpkg run: | vcpkg --triplet x64-windows install %dependencies% || ( sleep 4 && vcpkg --triplet x64-windows install %dependencies% ) || ( sleep 25 && vcpkg --triplet x64-windows install %dependencies% ) env: dependencies: openssl readline zlib - name: Install libraries with chocolatey run: choco install winflexbison3 # Not using official actions/checkout because it's unstable and sometimes doesn't work for a fork. - name: Checkout ruby/ruby run: git clone --depth=50 https://github.com/ruby/ruby . && git reset --hard ${{ github.sha }} if: github.event_name == 'push' - name: Checkout a pull request run: git clone --depth=50 --branch=${{ github.event.pull_request.head.ref }} https://github.com/${{ github.event.pull_request.head.repo.full_name }} . && git reset --hard ${{ github.event.pull_request.head.sha }} if: github.event_name == 'pull_request' - name: configure run: | call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat" win32/configure.bat --disable-install-doc --without-ext=+,dbm,gdbm --enable-bundled-libffi --with-opt-dir=C:/vcpkg/installed/x64-windows - name: nmake run: | call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat" set YACC=win_bison nmake up nmake - name: nmake test run: | call "C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat" nmake ${{ matrix.test_task }}