summaryrefslogtreecommitdiffstats
path: root/ci
diff options
context:
space:
mode:
Diffstat (limited to 'ci')
-rw-r--r--ci/appveyor.bat36
-rw-r--r--ci/build-snd-dummy.sh19
-rw-r--r--ci/config.mk.clang.sed2
-rw-r--r--ci/config.mk.gcc.sed1
-rw-r--r--ci/config.mk.sed2
-rw-r--r--ci/if_ver-1.vim25
-rw-r--r--ci/if_ver-2.vim8
-rw-r--r--ci/if_ver-cmd.vim12
-rw-r--r--ci/load-snd-dummy.sh8
-rw-r--r--ci/setup-xvfb.sh17
10 files changed, 130 insertions, 0 deletions
diff --git a/ci/appveyor.bat b/ci/appveyor.bat
new file mode 100644
index 0000000..164d7bc
--- /dev/null
+++ b/ci/appveyor.bat
@@ -0,0 +1,36 @@
+@echo off
+:: Batch file for building/testing Vim on AppVeyor
+
+setlocal ENABLEDELAYEDEXPANSION
+cd %APPVEYOR_BUILD_FOLDER%
+
+cd src
+:: Filter out the progress bar from the build log
+sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
+
+echo "Building MSVC 64bit console Version"
+nmake -f Make_mvc2.mak CPU=AMD64 ^
+ OLE=no GUI=no IME=yes ICONV=yes DEBUG=no ^
+ FEATURES=%FEATURE% || exit 1
+
+:: build MSVC huge version with python and channel support
+:: GUI needs to be last, so that testing works
+echo "Building MSVC 64bit GUI Version"
+if "%FEATURE%" == "HUGE" (
+ nmake -f Make_mvc2.mak CPU=AMD64 ^
+ OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no POSTSCRIPT=yes ^
+ PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 ^
+ PYTHON3_VER=35 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python35-x64 ^
+ FEATURES=%FEATURE% || exit 1
+) ELSE (
+ nmake -f Make_mvc2.mak CPU=AMD64 ^
+ OLE=no GUI=yes IME=yes ICONV=yes DEBUG=no ^
+ FEATURES=%FEATURE% || exit 1
+)
+.\gvim -u NONE -c "redir @a | ver |0put a | wq" ver_msvc.txt
+
+echo "version output MSVC console"
+.\vim --version
+echo "version output MSVC GUI"
+type ver_msvc.txt
+cd ..
diff --git a/ci/build-snd-dummy.sh b/ci/build-snd-dummy.sh
new file mode 100644
index 0000000..a2380b4
--- /dev/null
+++ b/ci/build-snd-dummy.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+set -eu
+
+LINUX_VERSION=$(uname -r | cut -d. -f1-2)
+LINUX_ARCHIVE_FILE=v${LINUX_VERSION}.tar.gz
+LINUX_SOURCE_DIR=linux-${LINUX_VERSION}
+
+mkdir -p "${TMPDIR}"
+cd "${TMPDIR}"
+
+wget -q "https://github.com/torvalds/linux/archive/${LINUX_ARCHIVE_FILE}"
+
+tar -xf "${LINUX_ARCHIVE_FILE}" "${LINUX_SOURCE_DIR}/sound"
+cd "${LINUX_SOURCE_DIR}/sound"
+
+CC=gcc make -C "/lib/modules/$(uname -r)/build" M="${PWD}" CONFIG_SOUND=m CONFIG_SND=m CONFIG_SND_PCM=m CONFIG_SND_DUMMY=m modules
+
+mkdir -p "${SND_DUMMY_DIR}"
+cp soundcore.ko core/snd.ko core/snd-pcm.ko drivers/snd-dummy.ko "${SND_DUMMY_DIR}"
diff --git a/ci/config.mk.clang.sed b/ci/config.mk.clang.sed
new file mode 100644
index 0000000..da6044d
--- /dev/null
+++ b/ci/config.mk.clang.sed
@@ -0,0 +1,2 @@
+/^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=missing-field-initializers/
+/^RUBY_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unknown-attributes -Wno-error=ignored-attributes/
diff --git a/ci/config.mk.gcc.sed b/ci/config.mk.gcc.sed
new file mode 100644
index 0000000..f46e488
--- /dev/null
+++ b/ci/config.mk.gcc.sed
@@ -0,0 +1 @@
+/^CFLAGS[[:blank:]]*=/s/$/ -Wno-error=maybe-uninitialized/
diff --git a/ci/config.mk.sed b/ci/config.mk.sed
new file mode 100644
index 0000000..cd2cd9c
--- /dev/null
+++ b/ci/config.mk.sed
@@ -0,0 +1,2 @@
+/^CFLAGS[[:blank:]]*=/s/$/ -Wall -Wextra -Wshadow -Werror/
+/^PERL_CFLAGS[[:blank:]]*=/s/$/ -Wno-error=unused-function/
diff --git a/ci/if_ver-1.vim b/ci/if_ver-1.vim
new file mode 100644
index 0000000..d5b2bb6
--- /dev/null
+++ b/ci/if_ver-1.vim
@@ -0,0 +1,25 @@
+" Print all interface versions for Ubuntu. Part 1.
+
+if 1
+ execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
+
+ echo "*** Interface versions ***\n"
+
+ echo 'Lua:'
+ PrintVer lua print(_VERSION)
+
+ echo 'MzScheme:'
+ PrintVer mzscheme (display (version))
+
+ echo 'Perl:'
+ PrintVer perl print $^V
+
+ echo 'Ruby:'
+ PrintVer ruby print RUBY_VERSION
+
+ echo 'Tcl:'
+ PrintVer tcl puts [info patchlevel]
+
+ echo 'Python 2:'
+ PrintVer python print sys.version
+endif
diff --git a/ci/if_ver-2.vim b/ci/if_ver-2.vim
new file mode 100644
index 0000000..83e80e4
--- /dev/null
+++ b/ci/if_ver-2.vim
@@ -0,0 +1,8 @@
+" Print py3 interface versions for Ubuntu. Part 2.
+
+if 1
+ execute 'source' expand('<sfile>:h') .. '/if_ver-cmd.vim'
+
+ echo 'Python 3:'
+ PrintVer python3 print(sys.version)
+endif
diff --git a/ci/if_ver-cmd.vim b/ci/if_ver-cmd.vim
new file mode 100644
index 0000000..ac5d82a
--- /dev/null
+++ b/ci/if_ver-cmd.vim
@@ -0,0 +1,12 @@
+" Provide 'PrintVer' command to print the interface versions.
+
+func s:print_ver(lang, ...)
+ if has(a:lang)
+ exec a:lang join(a:000)
+ else
+ echo 'N/A'
+ endif
+ echo ''
+endfunc
+
+command -nargs=+ PrintVer call <SID>print_ver(<f-args>)
diff --git a/ci/load-snd-dummy.sh b/ci/load-snd-dummy.sh
new file mode 100644
index 0000000..b0101b0
--- /dev/null
+++ b/ci/load-snd-dummy.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+set -e
+
+if ! modprobe snd-dummy; then
+ # snd-dummy is contained in linux-modules-extra (if exists)
+ apt-get install -yq --no-install-suggests --no-install-recommends "linux-modules-extra-$(uname -r)"
+ modprobe snd-dummy
+fi
diff --git a/ci/setup-xvfb.sh b/ci/setup-xvfb.sh
new file mode 100644
index 0000000..cfc0f97
--- /dev/null
+++ b/ci/setup-xvfb.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+set -e
+
+apt-get install -y xvfb
+
+cat <<EOT >/etc/systemd/system/xvfb.service
+[Unit]
+Description=X Virtual Frame Buffer Service
+After=network.target
+[Service]
+ExecStart=/usr/bin/Xvfb :99 -screen 0 1024x768x24
+[Install]
+WantedBy=multi-user.target
+EOT
+
+systemctl enable xvfb.service
+systemctl start xvfb.service