summaryrefslogblamecommitdiffstats
path: root/.appveyor.yml
blob: 1f179143c87329eaed23ddfe48b6e54af8265309 (plain) (tree)
1
2
3
4
5
6
7
8
9
   
                  


                                                          


                                             
                   
               

         
             
                     



                 



                               

               
                  
                                                     
                       

               
                       
                                                     
                       
                               

                             
    
 
         
         
                 




                                
                                        




                                                                             






                                                                                            





                                         
                                              
                                    



                              


                                                                                                            
                                                                             


                                                                             
                     
                                 


                                

                            
                                                                             
                                          


                                                                                                            
                                                                                       
                                                                                                                              



                                          


                                                    





                               
                                                                         









                                                                             
                                                                                                            
              


                     
                                                                                                                                                                                         












                                             
---
version: '{build}'
init:
  - git config --global user.name git
  - git config --global user.email svn-admin@ruby-lang.org
  - git config --global core.autocrlf false
  - git config --global core.eol lf
  - git config --global advice.detachedHead 0
shallow_clone: true
clone_depth: 10
platform:
  - x64
skip_commits:
  message: /^\[DOC\]/
  files:
    - doc/*
    - '**/*.md'
    - '**/*.rdoc'
environment:
  ruby_version: "24-%Platform%"
  zlib_version: "1.2.11"
  matrix:
    - build: vs
      vs: 120
      ssl: OpenSSL
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      GEMS_FOR_TEST: ""
    - build: vs
      vs: 140
      ssl: OpenSSL-v111
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
      GEMS_FOR_TEST: ""
  RELINE_TEST_ENCODING: "UTF-8"
cache:
  - c:\Tools\vcpkg\installed\
for:
-
  matrix:
    only:
      - build: vs
  install:
    - ver
    - chcp
    - SET BITS=%Platform:x86=32%
    - SET BITS=%BITS:x=%
    - SET OPENSSL_DIR=C:\%ssl%-Win%BITS%
    - cd C:\Tools\vcpkg
    - git pull -q
    - .\bootstrap-vcpkg.bat
    - cd %APPVEYOR_BUILD_FOLDER%
    - vcpkg --triplet %Platform%-windows install libffi libyaml readline zlib
    - CALL SET vcvars=%%^VS%VS%COMNTOOLS^%%..\..\VC\vcvarsall.bat
    - SET vcvars
    - '"%vcvars%" %Platform:x64=amd64%'
    - SET ruby_path=C:\Ruby%ruby_version:-x86=%
    - SET PATH=\usr\local\bin;%ruby_path%\bin;%PATH%;C:\msys64\mingw64\bin;C:\msys64\usr\bin
    - ruby --version
    - 'cl'
    - echo> Makefile srcdir=.
    - echo>> Makefile MSC_VER=0
    - echo>> Makefile RT=none
    - echo>> Makefile RT_VER=0
    - echo>> Makefile BUILTIN_ENCOBJS=nul
    - type win32\Makefile.sub >> Makefile
    - nmake %mflags% up VCSUP="echo Update OK"
    - nmake %mflags% extract-extlibs
    - del Makefile
    - mkdir \usr\local\bin
    - mkdir \usr\local\include
    - mkdir \usr\local\lib
    - SET ZLIB_ZIP=.downloaded-cache\zlib%zlib_version:.=%.zip
    - if not exist %ZLIB_ZIP% curl -fsSL -o %ZLIB_ZIP% --retry 10 https://zlib.net/zlib%zlib_version:.=%.zip
    - 7z x -aos -o%APPVEYOR_BUILD_FOLDER%\ext\zlib %ZLIB_ZIP%
    - for %%I in (%OPENSSL_DIR%\*.dll) do mklink /h \usr\local\bin\%%~nxI %%I
    - for %%I in (c:\Tools\vcpkg\installed\%Platform%-windows\bin\*.dll) do (
        if not %%~nI == readline mklink \usr\local\bin\%%~nxI %%I
      )
    - attrib +r /s /d
    - mkdir %Platform%-mswin_%vs%
  build_script:
    - cd %APPVEYOR_BUILD_FOLDER%
    - cd %Platform%-mswin_%vs%
    - >-
      ..\win32\configure.bat
      --with-opt-dir="/usr/local;c:/Tools/vcpkg/installed/%Platform%-windows"
      --with-openssl-dir=%OPENSSL_DIR:\=/%
    - nmake -l
    - nmake install-nodoc
    - \usr\bin\ruby -v -e "p :locale => Encoding.find('locale'), :filesystem => Encoding.find('filesystem')"
    - if not "%GEMS_FOR_TEST%" == "" \usr\bin\gem install --no-document %GEMS_FOR_TEST%
    - \usr\bin\ruby -ropenssl -e "puts 'Build    ' + OpenSSL::OPENSSL_VERSION, 'Runtime  ' + OpenSSL::OPENSSL_LIBRARY_VERSION"
  test_script:
    - set /a JOBS=%NUMBER_OF_PROCESSORS%
    - nmake -l "TESTOPTS=-v -q" btest
    - nmake -l "TESTOPTS=-v -q" test-basic
    - >-
      nmake -l "TESTOPTS=-v --timeout-scale=3.0
      --excludes=../test/excludes/_appveyor -j%JOBS%
      --exclude win32ole
      --exclude test_bignum
      --exclude test_syntax
      --exclude test_open-uri
      --exclude test_bundled_ca
      " test-all
    # separately execute tests without -j which may crash worker with -j.
    - >-
      nmake -l
      "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor"
      TESTS="
      ../test/win32ole
      ../test/ruby/test_bignum.rb
      ../test/ruby/test_syntax.rb
      ../test/open-uri/test_open-uri.rb
      ../test/rubygems/test_bundled_ca.rb
      " test-all
    - nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
notifications:
  - provider: Webhook
    method: POST
    url:
      secure: CcFlJNDJ/a6to7u3Z4Fnz6dScEPNx7hTha2GkSRlV+1U6dqmxY/7uBcLXYb9gR3jfQk6w+2o/HrjNAyXMNGU/JOka3s2WRI4VKitzM+lQ08owvJIh0R7LxrGH0J2e81U # ruby-lang slack: ruby/simpler-alerts-bot
    body: >-
      {{^isPullRequest}}
        {
          "ci": "AppVeyor CI",
          "env": "Visual Studio 2013 / 2015",
          "url": "{{buildUrl}}",
          "commit": "{{commitId}}",
          "branch": "{{branch}}"
        }
      {{/isPullRequest}}
    on_build_success: false
    on_build_failure: true
    on_build_status_changed: false