ruby/appveyor.yml

113 строки
4.4 KiB
YAML

---
version: '{build}'
shallow_clone: true
platform:
- x64
environment:
ruby_version: "24-%Platform%"
zlib_version: "1.2.11"
matrix:
- build: vs
vs: 120
ssl: OpenSSL
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
GEMS_FOR_TEST: ""
- build: vs
vs: 140
ssl: OpenSSL-v111
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
GEMS_FOR_TEST: ""
RELINE_TEST_ENCODING: "Windows-31J"
UPDATE_UNICODE: "UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
for:
-
matrix:
only:
- build: vs
install:
- ver
- chcp
- SET BITS=%Platform:x86=32%
- SET BITS=%BITS:x=%
- SET OPENSSL_DIR=C:\%ssl%-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'
- 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% %UPDATE_UNICODE% up incs
- del Makefile
- mkdir \usr\local\bin
- mkdir \usr\local\include
- mkdir \usr\local\lib
- curl -fsSL -o zlib%zlib_version:.=%.zip --retry 10 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
- attrib +r /s /d
- 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')"
- 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 readline --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" 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"
- nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
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": [
{
"text": "Build <{{buildUrl}}|#{{buildVersion}}> (<{{commitUrl}}|{{commitId}}>) of {{repositoryName}}@{{branch}} by {{commitAuthor}} {{status}}",
"color": "{{#passed}}good{{/passed}}{{#failed}}danger{{/failed}}"
}
],
"channel": "#alerts"
}
{{/isPullRequest}}
on_build_success: false
on_build_failure: true
on_build_status_changed: false
# New Slack notification (experimental)
- provider: Webhook
method: POST
url:
secure: CcFlJNDJ/a6to7u3Z4Fnz6dScEPNx7hTha2GkSRlV+1U6dqmxY/7uBcLXYb9gR3jfQk6w+2o/HrjNAyXMNGU/JOka3s2WRI4VKitzM+lQ08owvJIh0R7LxrGH0J2e81U # simpler alerts
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