1
Let's use AppVeyor
– Introduction to CI for Windows –
VimConf 2015
2015-11-21 K.Takata
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
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
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
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
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
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
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
9
Problems (1)
●
./configure fails on Cygwin and MSYS2
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
Problem (2)
● Vim on Cygwin/MSYS2 doesn't work at all.
No error messages! No outputs!
● Currently, NO workaround.
Please HELP!!
12
Enjoy Vimming!

Let's use AppVeyor

  • 1.
    1 Let's use AppVeyor –Introduction to CI for Windows – VimConf 2015 2015-11-21 K.Takata
  • 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
  • 9.
  • 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) ● Vimon Cygwin/MSYS2 doesn't work at all. No error messages! No outputs! ● Currently, NO workaround. Please HELP!!
  • 12.