ruby/appveyor.yml

138 строки
4.7 KiB
YAML
Исходник Обычный вид История

---
version: '{build}'
shallow_clone: true
branches:
only:
- trunk
platform:
- x64
environment:
ruby_version: "24-%Platform%"
zlib_version: "1.2.11"
matrix:
- vs: "120"
- MSYS2_ARCH: x86_64
MSYSTEM: MINGW64
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:
- vs: "120"
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%" test-all RUBY_FORCE_TEST_JIT=1
- nmake -l test-spec
-
matrix:
only:
- MSYS2_ARCH: x86_64
MSYSTEM: MINGW64
install:
- ver
- chcp
- SET BITS=%Platform:x86=32%
- SET BITS=%BITS:x=%
- SET ruby_path=C:\Ruby%ruby_version:-x86=%
- SET PATH=\usr\local\bin;%ruby_path%\bin;%PATH%;C:\msys64\%MSYSTEM%\bin;C:\msys64\usr\bin
- ruby --version
- mkdir \usr\local\bin
- mkdir \usr\local\include
- mkdir \usr\local\lib
build_script:
- cd %APPVEYOR_BUILD_FOLDER%
- |
bash -ex -c "
pacman --noconfirm --sync --refresh --refresh pacman
pacman --noconfirm --sync --refresh --refresh --sysupgrade --sysupgrade
pacman --noconfirm -S --needed base-devel mingw-w64-x86_64-gdbm"
- |
sh -c "ln -s $(which autom4te) /usr/bin/autom4te"
sh -c "ln -s $(which m4) /usr/bin/m4"
sh -c "ln -s /c/msys64/usr/share/autoconf /usr/share/autoconf"
sh -c "$(which autoconf)"
- |
sh -c "$(pwd)/configure --disable-install-doc --prefix=/usr/local"
sh -c "ln -sf $(which mingw32-make) /c/msys64/usr/bin/make.exe"
sh -c "mingw32-make -j$(nproc)"
sh -c "mingw32-make -j$(nproc) install"
test_script:
# Overriding TEST_EXCLUDES because `--name=!/memory_leak/` is considered as a positive filter on AppVeyor msys2.
- |
sh -c "mingw32-make test"
sh -c "mingw32-make -j$(nproc) test-all RUBY_FORCE_TEST_JIT=1 V=1 TEST_EXCLUDES='--excludes-dir=test/excludes'"
sh -c "mingw32-make -j$(nproc) test-spec MSPECOPT=-j"