This document discusses using AppVeyor for continuous integration of Windows projects. It provides examples of setting up AppVeyor for the Vim text editor project and the vimproc.vim plugin. Some problems encountered include configure failures on Cygwin and MSYS2 due to redirection issues, and Vim not working at all on Cygwin/MSYS2 without any errors or output. Help is requested to resolve the Vim issue on those platforms.
2. 2
Profile
● Name: K.Takata
● Twitter: @k_takata
● GitHub: k-takata
● Bitbucket: k_takata
● Web: http://homepage3.nifty.com/k-takata/
● Maintainer of Onigmo (The regex engine of Ruby 2.0 and later)
● Author of bregonig.dll (Regex DLL used by Sakura Editor, etc.)
● About 130 patches was merged into Vim in three years (since
7.3.668).
K.T
Now on sale!
3. 3
What is AppVeyor?
● Most of you may have use CI.
– Travis CI is one of the most popular CI service.
● Supports Linux and Mac OSX,
but does not support Windows.
4. 4
Installed Software
● OS: Windows Server 2012 R2 (x64)
● Visual Studio: 2008, 2010, 2012, 2013, 2015
● Windows SDK: 7.0, 7.1, 8.0, 8.1, WDK 7.1.0
● Languages: Go, Java, Ruby, Python, etc.
● GCC: MinGW, Cygwin, MSYS2 (MinGW-w64)
● Tools: 7-Zip, Git, appveyor command, etc.
See: http://www.appveyor.com/docs/installed-software
5. 5
Case 1: Vim
● The official repository of Vim was moved to
GitHub this summer. https://github.com/vim/vim
● AppVeyor is enabled since Vim 7.4.900.
● Based on vim-jp/vim-ci
– Written by @cd01, @crazymaster and @k-takata
6. 6
Case 1: Vim (contd.)
● VC10: build and test
● MinGW: N/A
● MSYS2: N/A
● Cygwin: N/A
Contribution is welcome. (maybe)
Vim uses the following compiler on AppVeyor:
7. 7
Case 2: vimproc
● https://github.com/Shougo/vimproc.vim
AppVeyor support is written by @thinca and @k-takata
● VC10 32/64-bit: build, test and deploy
– When a tag is pushed, DLL is automatically released.
– vim-themis is used for testing.
● MinGW 32-bit: build and test
● MSYS2 64-bit: build and test
● Cygwin: build only
8. 8
Case 3: universal-ctags
● Fork of exuberant-ctags.
https://github.com/universal-ctags/ctags
● VC10 (msbuild): build only
● VC10 32/64-bit (nmake): build only
● MinGW 32-bit: build only
● MSYS2 64-bit: build (using autotools) and test
● Cygwin: build and test
10. 10
Problem (1) (contd.)
● Maybe caused by redirection system on
AppVeyor.
● Workaround: just comment out the line
E.g.
> bash -lc "autoreconf -vfi"
> perl -i".bak" -pe "s/^test -n ".DJDIR"/#$&/" configure
> bash -lc "./configure --enable-iconv && make"
11. 11
Problem (2)
● Vim on Cygwin/MSYS2 doesn't work at all.
No error messages! No outputs!
● Currently, NO workaround.
Please HELP!!