name: CI (Windows)

on: [push, pull_request]

env:
  VCPKGRS_DYNAMIC: 1

jobs:
  build_and_test:
    strategy:
      fail-fast: false
      matrix:
        version:
          - stable
          - nightly
        target:
          - x86_64-pc-windows-msvc
          - i686-pc-windows-msvc

    name: ${{ matrix.version }} - ${{ matrix.target }}
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@master

      - name: Install ${{ matrix.version }}
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.version }}-${{ matrix.target }}
          profile: minimal
          override: true

      - name: Install OpenSSL (x64)
        if: matrix.target == 'x86_64-pc-windows-msvc'
        run: |
          vcpkg integrate install
          vcpkg install openssl:x64-windows
          Get-ChildItem C:\vcpkg\installed\x64-windows\bin
          Get-ChildItem C:\vcpkg\installed\x64-windows\lib
          Copy-Item C:\vcpkg\installed\x64-windows\bin\libcrypto-1_1-x64.dll C:\vcpkg\installed\x64-windows\bin\libcrypto.dll
          Copy-Item C:\vcpkg\installed\x64-windows\bin\libssl-1_1-x64.dll C:\vcpkg\installed\x64-windows\bin\libssl.dll

      - name: Install OpenSSL (x86)
        if: matrix.target == 'i686-pc-windows-msvc'
        run: |
          vcpkg integrate install
          vcpkg install openssl:x86-windows
          Get-ChildItem C:\vcpkg\installed\x86-windows\bin
          Get-ChildItem C:\vcpkg\installed\x86-windows\lib
          Copy-Item C:\vcpkg\installed\x86-windows\bin\libcrypto-1_1.dll C:\vcpkg\installed\x86-windows\bin\libcrypto.dll
          Copy-Item C:\vcpkg\installed\x86-windows\bin\libssl-1_1.dll C:\vcpkg\installed\x86-windows\bin\libssl.dll

      - name: check build
        uses: actions-rs/cargo@v1
        with:
          command: check
          args: --all --bins --examples --tests

      - name: tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all --all-features --no-fail-fast -- --nocapture