2018-02-14 14:09:32 +00:00
---
2018-08-13 13:46:06 +00:00
version : '{build}'
2018-02-14 14:09:32 +00:00
shallow_clone : true
platform :
- x64
2019-05-28 10:02:30 +09:00
branches :
except :
2019-07-01 00:24:10 +09:00
- trunk # mirrored from trunk. avoid doubly building on it
2018-02-14 14:09:32 +00:00
environment :
ruby_version : "24-%Platform%"
zlib_version : "1.2.11"
matrix :
2018-10-23 14:10:12 +00:00
# to reduce time for finishing all jobs, run the slowest msys2 build first.
2018-10-13 01:47:55 +00:00
- build : msys2
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2015
2018-09-04 02:18:51 +00:00
- build : vs
vs : 120
2019-08-18 01:47:19 -05:00
ssl : OpenSSL
2018-10-12 00:45:07 +00:00
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2013
2018-09-10 13:05:34 +00:00
- build : vs
vs : 140
2019-08-18 01:47:19 -05:00
ssl : OpenSSL-v111
2018-10-12 00:45:07 +00:00
APPVEYOR_BUILD_WORKER_IMAGE : Visual Studio 2015
2019-05-28 11:08:53 +09:00
RELINE_TEST_ENCODING : "Windows-31J"
2018-11-28 14:08:34 +00:00
GEMS_FOR_TEST : "timezone tzinfo"
2019-05-19 16:24:33 +09:00
UPDATE_UNICODE : "UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
2018-02-14 14:09:32 +00:00
for :
2018-02-14 12:34:49 +00:00
-
2018-08-13 13:46:06 +00:00
matrix :
2018-02-14 12:34:49 +00:00
only :
2018-09-04 02:18:51 +00:00
- build : vs
2018-08-13 13:46:06 +00:00
install :
- ver
- chcp
- SET BITS=%Platform:x86=32%
- SET BITS=%BITS:x=%
2019-08-18 01:47:19 -05:00
- SET OPENSSL_DIR=C:\%ssl%-Win%BITS%
2018-08-13 13:46:06 +00:00
- 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% touch-unicode-files
2019-05-19 16:24:33 +09:00
- nmake %mflags% %UPDATE_UNICODE% up incs
2018-08-13 13:46:06 +00:00
- del Makefile
- mkdir \usr\local\bin
- mkdir \usr\local\include
- mkdir \usr\local\lib
2019-03-15 13:25:06 +00:00
- curl -fsSL -o zlib%zlib_version:.=%.zip --retry 10 https://zlib.net/zlib%zlib_version:.=%.zip
2018-08-13 13:46:06 +00:00
- 7z x -o%APPVEYOR_BUILD_FOLDER%\ext\zlib zlib%zlib_version:.=%.zip
- for %%I in (%OPENSSL_DIR%\*.dll) do mklink /h \usr\local\bin\%%~nxI %%I
2019-05-28 11:08:22 +09:00
- attrib +r /s /d
2018-08-13 13:46:06 +00:00
- mkdir %Platform%-mswin_%vs%
build_script :
- cd %APPVEYOR_BUILD_FOLDER%
- cd %Platform%-mswin_%vs%
- ..\win32\configure.bat --without-ext=+,dbm,gdbm,readline --with-opt-dir=/usr/local --with-openssl-dir=%OPENSSL_DIR:\=/%
- nmake -l
- nmake install-nodoc
- \usr\bin\ruby -v -e "p :locale => Encoding.find('locale'), :filesystem => Encoding.find('filesystem')"
2018-11-28 14:08:34 +00:00
- if not "%GEMS_FOR_TEST%" == "" \usr\bin\gem install --no-document %GEMS_FOR_TEST%
2019-08-18 01:47:19 -05:00
- \usr\bin\ruby -ropenssl -e "puts 'Build ' + OpenSSL::OPENSSL_VERSION, 'Runtime ' + OpenSSL::OPENSSL_LIBRARY_VERSION"
2018-08-13 13:46:06 +00:00
test_script :
- set /a JOBS=%NUMBER_OF_PROCESSORS%
- nmake -l "TESTOPTS=-v -q" btest
- nmake -l "TESTOPTS=-v -q" test-basic
2019-08-11 14:15:48 +09:00
- nmake -l "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor -j%JOBS% --exclude readline --exclude win32ole --exclude test_bignum --exclude test_syntax --exclude test_open-uri --exclude test_bundled_ca" test-all
2018-11-16 06:47:37 +00:00
# separately execute tests without -j which may crash worker with -j.
2019-07-29 19:45:25 +09:00
- nmake -l "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor" test-all 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"
2018-10-23 14:43:19 +00:00
- nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
2018-08-13 15:29:40 +00:00
-
matrix :
only :
2018-09-04 02:18:51 +00:00
- build : msys2
2018-08-13 15:29:40 +00:00
install :
- ver
- chcp
2018-08-15 02:15:13 +00:00
- set /a JOBS=%NUMBER_OF_PROCESSORS%
2018-08-15 04:10:19 +00:00
- set MSYS_NO_PATHCONV=1
2018-09-04 02:18:51 +00:00
- SET MSYSTEM=%Platform:x86=32%
- SET MSYSTEM=%MSYSTEM:x=MINGW%
- SET MSYS2_ARCH=%Platform:x86=i686%
- SET MSYS2_ARCH=%MSYS2_ARCH:x64=x86_64%
2018-09-04 02:19:39 +00:00
- set MSYSTEM_PREFIX=/mingw64
- set MINGW_CHOST=%MSYS2_ARCH%-w64-mingw32
2018-08-13 15:29:40 +00:00
- SET ruby_path=C:\Ruby%ruby_version:-x86=%
2018-09-04 02:19:39 +00:00
- cd ..
- mkdir build
- mkdir install
- SET PATH=%ruby_path%\bin;C:\msys64\%MSYSTEM%\bin;C:\msys64\usr\bin;%PATH%
2018-08-13 15:29:40 +00:00
- ruby --version
build_script :
2019-05-31 11:21:52 -05:00
- pacman -S --noconfirm --needed --noprogressbar --nodeps mingw-w64-x86_64-toolchain
2019-08-08 22:03:00 +09:00
- pacman -S --noconfirm --needed --noprogressbar mingw-w64-x86_64-gdbm mingw-w64-x86_64-gettext mingw-w64-x86_64-gmp mingw-w64-x86_64-libffi mingw-w64-x86_64-libyaml mingw-w64-x86_64-openssl mingw-w64-x86_64-ragel mingw-w64-x86_64-readline mingw-w64-x86_64-zlib
2018-08-13 15:29:40 +00:00
- cd %APPVEYOR_BUILD_FOLDER%
2018-09-04 02:19:39 +00:00
- set CFLAGS=-march=%MSYS2_ARCH:_=-% -mtune=generic -O3 -pipe
- set CXXFLAGS=%CFLAGS%
- set CPPFLAGS=-D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048
- set LDFLAGS=-pipe
- sh -c "autoreconf -fi"
- cd ..\build
- sh ../ruby/configure --disable-install-doc --prefix=/. --build=%MINGW_CHOST% --host=%MINGW_CHOST% --target=%MINGW_CHOST%
2019-05-18 01:17:47 +09:00
- mingw32-make %mflags% touch-unicode-files
2019-05-19 16:24:33 +09:00
- mingw32-make -j%JOBS% %UPDATE_UNICODE% up incs
2019-08-08 22:35:11 +09:00
- mingw32-make -j%JOBS% V=1
2018-09-04 02:19:39 +00:00
- mingw32-make DESTDIR=../install install-nodoc
2018-11-28 14:08:34 +00:00
- if not "%GEMS_FOR_TEST%" == "" ..\install\bin\gem install --no-document %GEMS_FOR_TEST%
2019-08-18 01:47:19 -05:00
- ..\install\bin\ruby.exe -v -ropenssl -e "puts 'Build ' + OpenSSL::OPENSSL_VERSION, 'Runtime ' + OpenSSL::OPENSSL_LIBRARY_VERSION"
2018-08-13 15:29:40 +00:00
test_script :
2018-08-15 02:15:13 +00:00
- mingw32-make test
2019-07-29 19:45:25 +09:00
- mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor -j %JOBS% --exclude win32ole --exclude test_open-uri"
2018-11-16 06:47:37 +00:00
# separately execute tests without -j which may crash worker with -j.
2019-07-29 19:45:25 +09:00
- mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor" TESTS="../ruby/test/win32ole ../ruby/test/open-uri/test_open-uri.rb"
2018-10-23 14:43:19 +00:00
- mingw32-make test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
2019-03-16 04:11:54 +00:00
notifications :
# Using "Webhook" with templated body to skip notification on Pull Request
- provider : Webhook
method : POST
url :
secure : iMINHMS0nZabaDsxN9omRDsekxzVvAAzEq5ev7lN6vb+gUETT+rbDKLGxBxBpEpxlnPlLdzroIJ+DTKlwfJA8VkGawTn9EXNsucH0OkSf2M= # AppVeyor CI
body : >-
{{^isPullRequest}}
{
"attachments": [
{
2019-08-23 09:45:46 +09:00
"text": "Build <{{buildUrl}}|#{{buildVersion}}> (<{{commitUrl}}|{{commitId}}>) of {{repositoryName}}@{{branch}} by {{commitAuthor}} {{status}} in {{duration}}" ,
2019-08-19 09:46:55 +09:00
"color": "{{#passed}}good{{/passed}}{{#failed}}danger{{/failed}}"
2019-03-16 04:11:54 +00:00
}
] ,
"channel": "#alerts"
}
{{/isPullRequest}}
on_build_success : false
on_build_failure : true
on_build_status_changed : true