ruby/appveyor.yml

140 строки
5.0 KiB
YAML

---
version: '{build}'
shallow_clone: true
platform:
- x64
environment:
ruby_version: "24-%Platform%"
zlib_version: "1.2.11"
matrix:
- build: vs
vs: 120
- build: vs
vs: 140
- build: msys2
matrix:
fast_finish: true
notifications:
- provider: Webhook
url:
secure: iMINHMS0nZabaDsxN9omRDsekxzVvAAzEq5ev7lN6vZ6r9zNhl3/F/7POIVyahAwVFpRDeQT/iUugpAGWmOt3eGL/lZIdqiJFZ9DjPSkP68= # #alerts
method: POST
# "icon_url" is the url used by `provider: Slack`
body: >-
{{^isPullRequest}}
{
"attachments": [
{
"title": "Build {{projectName}} {{buildVersion}} {{status}}",
"fallback": "AppVeyor Build {{projectName}} {{buildVersion}} {{status}}",
"title_link": "{{buildUrl}}",
"text": "Commit <{{commitUrl}}|{{commitId}}> by {{commitAuthor}} on {{commitDate}}: _{{commitMessage}}_",
{{#passed}}
"color": "#44ee44"
{{/passed}}
{{#failed}}
"color": "#ee4444"
{{/failed}}
}
],
"icon_url": "https://slack-files2.s3-us-west-2.amazonaws.com/bot_icons/2018-02-10/314363543719_48.png",
"username": "AppVeyor CI"
}
{{/isPullRequest}}
on_build_success: false
on_build_failure: true
on_build_status_changed: true
for:
-
matrix:
only:
- build: vs
install:
- ver
- chcp
- SET BITS=%Platform:x86=32%
- SET BITS=%BITS:x=%
- SET OPENSSL_DIR=c:\OpenSSL-Win%BITS%
- 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'
- SET
- 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
- nmake %mflags% up incs UNICODE_FILES=.
- del Makefile
- mkdir \usr\local\bin
- mkdir \usr\local\include
- mkdir \usr\local\lib
- appveyor DownloadFile https://zlib.net/zlib%zlib_version:.=%.zip
- 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
- mkdir %Platform%-mswin_%vs%
- ps: Get-ChildItem "win32" -Recurse | foreach {$_.Attributes = 'Readonly'}
- ps: Get-Item $env:Platform"-mswin_"$env:vs | foreach {$_.Attributes = 'Normal'}
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')"
test_script:
- set /a JOBS=%NUMBER_OF_PROCESSORS%
- nmake -l "TESTOPTS=-v -q" btest
- nmake -l "TESTOPTS=-v -q" test-basic
- nmake -l "TESTOPTS=-q -j%JOBS% --subprocess-timeout-scale=1.5 --exclude win32ole" test-all RUBY_FORCE_TEST_JIT=1
# separately execute tests that may crash worker without -j.
- nmake -l "TESTOPTS=-q --subprocess-timeout-scale=1.5" test-all TESTS="../test/win32ole"
- nmake -l test-spec
-
matrix:
only:
- build: msys2
install:
- ver
- chcp
- set /a JOBS=%NUMBER_OF_PROCESSORS%
- set MSYS_NO_PATHCONV=1
- SET MSYSTEM=%Platform:x86=32%
- SET MSYSTEM=%MSYSTEM:x=MINGW%
- SET MSYS2_ARCH=%Platform:x86=i686%
- SET MSYS2_ARCH=%MSYS2_ARCH:x64=x86_64%
- set MSYSTEM_PREFIX=/mingw64
- set MINGW_CHOST=%MSYS2_ARCH%-w64-mingw32
- SET ruby_path=C:\Ruby%ruby_version:-x86=%
- cd ..
- mkdir build
- mkdir install
- SET PATH=%ruby_path%\bin;C:\msys64\%MSYSTEM%\bin;C:\msys64\usr\bin;%PATH%
- ruby --version
build_script:
# always update database
- pacman -Sy
- pacman -S --noconfirm --needed --noprogressbar mingw-w64-x86_64-toolchain
- pacman -S --noconfirm --needed --noprogressbar mingw-w64-x86_64-gdbm mingw-w64-x86_64-gmp mingw-w64-x86_64-libffi mingw-w64-x86_64-ncurses mingw-w64-x86_64-readline mingw-w64-x86_64-zlib
- cd %APPVEYOR_BUILD_FOLDER%
- 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%
- mingw32-make -j%JOBS% up
- mingw32-make -j%JOBS%
- mingw32-make DESTDIR=../install install-nodoc
test_script:
- mingw32-make test
- mingw32-make test-all TESTOPTS="-j %JOBS% --retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5" RUBY_FORCE_TEST_JIT=1 V=1
- mingw32-make test-spec MSPECOPT=-j