name: Windows on: [push, pull_request] jobs: make: strategy: matrix: test_task: [check] # to make job names consistent os: [windows-2019] vs: [2019] fail-fast: false runs-on: ${{ matrix.os }} env: GITPULLOPTIONS: --no-tags origin ${{github.ref}} VCVARS: C:\Program Files (x86)\Microsoft Visual Studio\${{ matrix.vs }}\Enterprise\VC\Auxiliary\Build\vcvars64.bat PATCH: C:\msys64\usr\bin\patch.exe steps: - run: md build working-directory: - uses: actions/cache@v2 with: path: C:\vcpkg\downloads key: ${{ runner.os }}-vcpkg-download-${{ matrix.os }}-${{ github.sha }} restore-keys: | ${{ runner.os }}-vcpkg-download-${{ matrix.os }}- ${{ runner.os }}-vcpkg-download- - name: Install libraries with vcpkg run: | vcpkg --triplet x64-windows install readline zlib - uses: actions/cache@v2 with: path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey key: ${{ runner.os }}-chocolatey-${{ matrix.os }}-${{ github.sha }} restore-keys: | ${{ runner.os }}-chocolatey-${{ matrix.os }}- ${{ runner.os }}-chocolatey- - name: Install libraries with chocolatey run: | # Using Choco-Install for retries, but it doesn't detect failures properly # if you pass multiple package names in a single command. Choco-Install -PackageName openssl Choco-Install -PackageName winflexbison3 shell: pwsh - name: git config run: | git config --global core.autocrlf false git config --global core.eol lf git config --global advice.detachedHead 0 git config --global init.defaultBranch garbage - uses: actions/checkout@v2 with: path: src - name: Configure run: | call "%VCVARS%" ../src/win32/configure.bat --disable-install-doc --without-ext=+,dbm,gdbm --enable-bundled-libffi --with-opt-dir=C:/vcpkg/installed/x64-windows --with-openssl-dir="C:/Program Files/OpenSSL-Win64" - name: nmake run: | call "%VCVARS%" set YACC=win_bison echo on nmake incs nmake extract-extlibs nmake - name: nmake test timeout-minutes: 5 run: | call "%VCVARS%" nmake test - name: nmake test-all timeout-minutes: 60 run: | call "%VCVARS%" ::- %TEMP% is inconsistent with %TMP% and test-all expects they are consistent. ::- https://github.com/actions/virtual-environments/issues/712#issuecomment-613004302 set TMP=%USERPROFILE%\AppData\Local\Temp set TEMP=%USERPROFILE%\AppData\Local\Temp nmake test-all - name: nmake test-spec timeout-minutes: 10 run: | call "%VCVARS%" nmake test-spec - uses: k0kubun/action-slack@v2.0.0 with: payload: | { "ci": "GitHub Actions", "env": "${{ matrix.os }} / ${{ matrix.test_task }}", "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}", "commit": "${{ github.sha }}", "branch": "${{ github.ref }}".split('/').reverse()[0] } env: SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot if: failure() && github.event_name == 'push' defaults: run: working-directory: build shell: cmd