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 fail-fast: false 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 || ( sleep 4 && choco install winflexbison3 ) || ( sleep 25 && 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 }} if: "!contains(github.event.head_commit.message, '[ci skip]')" - uses: k0kubun/action-slack@v2.0.0 with: payload: | { "attachments": [{ "text": "${{ job.status}}: " + "() " + "of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}", "color": "danger" }] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} if: failure() && github.event_name == 'push'