Edit

kc3-lang/libevent/appveyor.yml

Branch :

  • Show log

    Commit

  • Author : yuangongji
    Date : 2019-10-18 23:32:14
    Hash : 38eb4846
    Message : appveyor: add vs2019 os to test some new features brought by Win10

  • appveyor.yml
  • ---
    version: 2.2.0.{build}
    
    os:
      - Visual Studio 2017
      - Visual Studio 2019
    platform:
      - x64
    
    branches:
      except:
        - /.*travis.*/
        - /.*linux.*/
        - /.*freebsd.*/
        - /.*osx.*/
        - /.*bitrise.*/
    skip_commits:
      message: /travis/
      files:
        - .travis.yml
    
    environment:
      global:
        APPVEYOR_SAVE_CACHE_ON_ERROR: true
        OPENSSL_ROOT: C:/OpenSSL-Win64
        MPATH: C:/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin;C:/msys64/usr/bin
        EVENT_TESTS_PARALLEL: 20
        EVENT_BUILD_PARALLEL: 10
      matrix:
        - EVENT_BUILD_METHOD: "cmake"
          EVENT_CMAKE_OPTIONS: ""
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "cmake"
          EVENT_CMAKE_OPTIONS: "-DEVENT__LIBRARY_TYPE=STATIC"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "autotools"
          EVENT_CONFIGURE_OPTIONS: ""
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "autotools"
          EVENT_CONFIGURE_OPTIONS: "--disable-openssl"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "autotools"
          EVENT_CONFIGURE_OPTIONS: "--disable-thread-support"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "autotools"
          EVENT_CONFIGURE_OPTIONS: "--disable-debug-mode"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "autotools"
          EVENT_CONFIGURE_OPTIONS: "--disable-malloc-replacement"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "cmake"
          EVENT_CMAKE_OPTIONS: "-DEVENT__DISABLE_OPENSSL=ON"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "cmake"
          EVENT_CMAKE_OPTIONS: "-DEVENT__DISABLE_THREAD_SUPPORT=ON"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "cmake"
          EVENT_CMAKE_OPTIONS: "-DEVENT__DISABLE_DEBUG_MODE=ON"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "cmake"
          EVENT_CMAKE_OPTIONS: "-DEVENT__DISABLE_MM_REPLACEMENT=ON"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "cmake"
          EVENT_CMAKE_OPTIONS: "-DCMAKE_C_FLAGS='-DUNICODE -D_UNICODE'"
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - EVENT_BUILD_METHOD: "cmake"
          EVENT_CMAKE_OPTIONS: ""
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
    
    matrix:
      exclude:
        - os: Visual Studio 2019
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2017"
        - os: Visual Studio 2017
          APPVEYOR_BUILD_WORKER_IMAGE: "Visual Studio 2019"
      fast_finish: true
    
    init:
      - 'echo Repo build branch is: %APPVEYOR_REPO_BRANCH%'
      - 'echo Build folder is: %APPVEYOR_BUILD_FOLDER%'
      - 'echo Repo build commit is: %APPVEYOR_REPO_COMMIT%'
      - 'echo PATH is: %PATH%'
    
    build_script:
      - ps: |
          if ($env:EVENT_BUILD_METHOD -eq 'autotools') {
            $env:PATH="$env:MPATH;$env:OPENSSL_ROOT/bin;$env:PATH"
            $env:LDFLAGS="-L$($env:OPENSSL_ROOT)/lib -L$($env:OPENSSL_ROOT)"
            $env:CFLAGS="-I$($env:OPENSSL_ROOT)/include"
    
            $script='
            ./autogen.sh 2>&1 3>&1
            [[ $? -ne 0 ]] && exit 1
    
            mkdir build-autotools 2>/dev/null
            cd build-autotools
            [[ $? -ne 0 ]] && exit 1
    
            ../configure $EVENT_CONFIGURE_OPTIONS 2>&1
            [[ $? -ne 0 ]] && exit 1
            make -j $EVENT_BUILD_PARALLEL 2>&1
            [[ $? -ne 0 ]] && exit 1
            make verify -j $EVENT_TESTS_PARALLEL 2>&1 '
    
            bash -c $script
    
          } else {
            if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq 'Visual Studio 2017') {
              $env:BUILD_DIR="build-cmake"
            }
            if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq 'Visual Studio 2019') {
              $env:BUILD_DIR="build-cmake-vs2019"
            }
            md $env:BUILD_DIR 2> $null
            cd $env:BUILD_DIR
            if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode)  }
            if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq 'Visual Studio 2017') {
              cmake -G "Visual Studio 15 2017 Win64" .. $env:EVENT_CMAKE_OPTIONS
            }
            if ($env:APPVEYOR_BUILD_WORKER_IMAGE -eq 'Visual Studio 2019') {
              cmake -G "Visual Studio 16 2019" -A x64 .. $env:EVENT_CMAKE_OPTIONS
            }
            if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode)  }
            cmake --build . -j $env:EVENT_BUILD_PARALLEL -- /nologo /verbosity:minimal
            if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode)  }
            ctest --output-on-failure -j $env:EVENT_TESTS_PARALLEL
          }
    
    cache:
      - build-cmake
      - build-cmake-vs2019
      - build-autotools
    
    on_failure:
      - 7z a libevent.zip .
      - appveyor PushArtifact libevent.zip