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"' fail-fast: false runs-on: ${{ matrix.os }} name: VisualStudio ${{ matrix.vs }} env: GITPULLOPTIONS: --no-tags origin ${{github.ref}} VCVARS: ${{ matrix.vcvars }} PATCH: C:\msys64\usr\bin\patch.exe steps: - run: md build working-directory: - uses: msys2/setup-msys2@v2 id: setup-msys2 with: update: true install: >- patch if: ${{ matrix.os != 'windows-2019' }} - name: patch path shell: msys2 {0} run: echo PATCH=$(cygpath -wa $(command -v patch)) >> $GITHUB_ENV if: ${{ steps.setup-msys2.outcome == 'success' }} - 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: setup env # %TEMP% is inconsistent with %TMP% and test-all expects they are consistent. # https://github.com/actions/virtual-environments/issues/712#issuecomment-613004302 run: | set | C:\msys64\usr\bin\sort > old.env call %VCVARS% set TMP=%USERPROFILE%\AppData\Local\Temp set TEMP=%USERPROFILE%\AppData\Local\Temp set | C:\msys64\usr\bin\sort > new.env C:\msys64\usr\bin\comm -13 old.env new.env >> %GITHUB_ENV% del *.env - name: Configure run: | ../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: | 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: | nmake test - name: nmake test-all timeout-minutes: 60 run: | nmake test-all TESTOPTS="-j%NUMBER_OF_PROCESSORS% --job-status=normal" continue-on-error: ${{ matrix.continue-on-error || false }} - name: nmake test-spec timeout-minutes: 10 run: | nmake test-spec continue-on-error: ${{ matrix.continue-on-error || false }} - 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