name: Windows on: [push, pull_request] jobs: make: strategy: matrix: include: - vs: 2019 os: windows-2019 vcvars: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"' - vs: 2022 os: windows-2022 vcvars: '"C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Auxiliary\Build\vcvars64.bat"' continue-on-error: true fail-fast: false runs-on: ${{ matrix.os }} name: VisualStudio ${{ matrix.vs }} env: GITPULLOPTIONS: --no-tags origin ${{github.ref}} VCVARS: ${{ matrix.vcvars }} PATCH: D:\a\_temp\msys\msys64\usr\bin\patch.exe steps: - run: md build working-directory: - uses: msys2/setup-msys2@v2 with: update: true install: >- patch - 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 --enable-bundled-libffi --with-opt-dir=C:/vcpkg/installed/x64-windows --with-openssl-dir="C:/Program Files/OpenSSL-Win64" - name: nmake run: | call %VCVARS% echo ^#^#[group]incs nmake incs echo ^#^#[endgroup] echo ^#^#[group]extract-extlibs nmake extract-extlibs echo ^#^#[endgroup] nmake env: YACC: win_bison - 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 continue-on-error: ${{ matrix.continue-on-error }} - name: nmake test-spec timeout-minutes: 10 run: | call %VCVARS% nmake test-spec continue-on-error: ${{ matrix.continue-on-error }} - uses: k0kubun/action-slack@v2.0.0 with: payload: | { "ci": "GitHub Actions", "env": "VS${{ matrix.vs }} / ${{ matrix.test_task || 'check' }}", "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