summaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci-windows.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci-windows.yaml')
-rw-r--r--.github/workflows/ci-windows.yaml230
1 files changed, 0 insertions, 230 deletions
diff --git a/.github/workflows/ci-windows.yaml b/.github/workflows/ci-windows.yaml
deleted file mode 100644
index 4a470624b8..0000000000
--- a/.github/workflows/ci-windows.yaml
+++ /dev/null
@@ -1,230 +0,0 @@
-name: GitHub CI
-
-on:
- push:
- branches:
- - '**'
- pull_request:
-
-env:
- VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
-
- # Interfaces
- # Lua
- LUA_VER: 54
- LUA_VER_DOT: '5.4'
- LUA_RELEASE: 5.4.0
- LUA32_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win32_dllw6_lib.zip
- LUA64_URL: https://downloads.sourceforge.net/luabinaries/lua-%LUA_RELEASE%_Win64_dllw6_lib.zip
- LUA_DIR: D:\Lua
- # Python 2
- PYTHON_VER: 27
- PYTHON_VER_DOT: '2.7'
- # Python 3
- PYTHON3_VER: 38
- PYTHON3_VER_DOT: '3.8'
-
- # Other dependencies
- # winpty
- WINPTY_URL: https://github.com/rprichard/winpty/releases/download/0.4.3/winpty-0.4.3-msvc2015.zip
-
- # Escape sequences
- COL_RED: "\x1b[31m"
- COL_GREEN: "\x1b[32m"
- COL_YELLOW: "\x1b[33m"
- COL_RESET: "\x1b[m"
-
-jobs:
- build:
- runs-on: windows-latest
-
- strategy:
- fail-fast: false
- matrix:
- toolchain: [msvc, mingw]
- arch: [x64, x86]
- features: [HUGE, NORMAL]
- include:
- - arch: x64
- vcarch: amd64
- warch: x64
- bits: 64
- msystem: MINGW64
- cygreg: registry
- pyreg: ""
- - arch: x86
- vcarch: x86
- warch: ia32
- bits: 32
- msystem: MINGW32
- cygreg: registry32
- pyreg: "-32"
- exclude:
- - toolchain: msvc
- arch: x64
- features: NORMAL
- - toolchain: mingw
- arch: x86
- features: NORMAL
-
- steps:
- - name: Initalize
- id: init
- shell: bash
- run: |
- git config --global core.autocrlf input
- python_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON_VER_DOT}/InstallPath/@")
- python3_dir=$(cat "/proc/${{ matrix.cygreg }}/HKEY_LOCAL_MACHINE/SOFTWARE/Python/PythonCore/${PYTHON3_VER_DOT}${{ matrix.pyreg }}/InstallPath/@")
- echo "PYTHON_DIR=$python_dir" >> $GITHUB_ENV
- echo "PYTHON3_DIR=$python3_dir" >> $GITHUB_ENV
-
- - uses: msys2/setup-msys2@v2
- if: matrix.toolchain == 'mingw'
- with:
- msystem: ${{ matrix.msystem }}
- release: false
-
- - uses: actions/checkout@v2
-
- - name: Create a list of download URLs
- shell: cmd
- run: |
- type NUL > urls.txt
- echo %LUA_RELEASE%>> urls.txt
- echo %WINPTY_URL%>> urls.txt
-
- - name: Cache downloaded files
- uses: actions/cache@v2
- with:
- path: downloads
- key: ${{ runner.os }}-${{ matrix.bits }}-${{ hashFiles('urls.txt') }}
-
- - name: Download dependencies
- shell: cmd
- run: |
- path C:\Program Files\7-Zip;%path%
- if not exist downloads mkdir downloads
-
- echo %COL_GREEN%Download Lua%COL_RESET%
- call :downloadfile %LUA${{ matrix.bits }}_URL% downloads\lua.zip
- 7z x downloads\lua.zip -o%LUA_DIR% > nul || exit 1
-
- echo %COL_GREEN%Download winpty%COL_RESET%
- call :downloadfile %WINPTY_URL% downloads\winpty.zip
- 7z x -y downloads\winpty.zip -oD:\winpty > nul || exit 1
- copy /Y D:\winpty\${{ matrix.warch }}\bin\winpty.dll src\winpty${{ matrix.bits }}.dll
- copy /Y D:\winpty\${{ matrix.warch }}\bin\winpty-agent.exe src\
-
- goto :eof
-
- :downloadfile
- :: call :downloadfile <URL> <localfile>
- if not exist %2 (
- curl -f -L %1 -o %2
- )
- if ERRORLEVEL 1 (
- rem Retry once.
- curl -f -L %1 -o %2 || exit 1
- )
- goto :eof
-
- - name: Copy src directory to src2
- shell: cmd
- run: |
- xcopy src src2\ /E > nul
-
- - name: Build (MSVC)
- if: matrix.toolchain == 'msvc'
- shell: cmd
- run: |
- call "%VCVARSALL%" ${{ matrix.vcarch }}
- cd src
- :: Filter out the progress bar from the build log
- sed -e "s/@<<$/@<< | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak
- if "${{ matrix.features }}"=="HUGE" (
- nmake -nologo -f Make_mvc2.mak ^
- FEATURES=${{ matrix.features }} ^
- GUI=yes IME=yes ICONV=yes VIMDLL=yes ^
- DYNAMIC_LUA=yes LUA=%LUA_DIR% ^
- DYNAMIC_PYTHON=yes PYTHON=%PYTHON_DIR% ^
- DYNAMIC_PYTHON3=yes PYTHON3=%PYTHON3_DIR%
- ) else (
- nmake -nologo -f Make_mvc2.mak ^
- FEATURES=${{ matrix.features }} ^
- GUI=yes IME=yes ICONV=yes VIMDLL=yes
- )
- if not exist vim${{ matrix.bits }}.dll (
- echo %COL_RED%Build failure.%COL_RESET%
- exit 1
- )
-
- - name: Build (MinGW)
- if: matrix.toolchain == 'mingw'
- shell: msys2 {0}
- run: |
- cd src
- if [ "${{ matrix.features }}" = "HUGE" ]; then
- mingw32-make -f Make_ming.mak -j2 \
- FEATURES=${{ matrix.features }} \
- GUI=yes IME=yes ICONV=yes VIMDLL=yes \
- DYNAMIC_LUA=yes LUA=${LUA_DIR} \
- DYNAMIC_PYTHON=yes PYTHON=${PYTHON_DIR} \
- DYNAMIC_PYTHON3=yes PYTHON3=${PYTHON3_DIR} \
- STATIC_STDCPLUS=yes
- else
- mingw32-make -f Make_ming.mak -j2 \
- FEATURES=${{ matrix.features }} \
- GUI=yes IME=yes ICONV=yes VIMDLL=yes \
- STATIC_STDCPLUS=yes
- fi
-
-# - name: Prepare Artifact
-# shell: cmd
-# run: |
-# mkdir artifacts
-# copy src\*vim.exe artifacts
-# copy src\vim*.dll artifacts
-#
-# - name: Upload Artifact
-# uses: actions/upload-artifact@v1
-# with:
-# name: vim${{ matrix.bits }}-${{ matrix.toolchain }}
-# path: ./artifacts
-
- - name: Test
- shell: cmd
- timeout-minutes: 20
- run: |
- PATH %LUA_DIR%;C:\msys64\${{ matrix.msystem }}\bin;%PATH%;%PYTHON3_DIR%
- call "%VCVARSALL%" ${{ matrix.vcarch }}
- cd src
- echo.
- echo %COL_GREEN%vim version:%COL_RESET%
- .\vim --version || exit 1
-
- echo %COL_GREEN%Start testing vim in background.%COL_RESET%
- start cmd /c "cd ..\src2\testdir & nmake -nologo -f Make_dos.mak VIMPROG=..\..\src\vim > nul & echo done>done.txt"
-
- echo %COL_GREEN%Test gvim:%COL_RESET%
- cd testdir
- nmake -nologo -f Make_dos.mak VIMPROG=..\gvim || exit 1
- cd ..
-
- echo %COL_GREEN%Wait for vim tests to finish.%COL_RESET%
- cd ..\src2\testdir
- :: Wait about 10 minutes.
- for /L %%i in (1,1,60) do (
- if exist done.txt goto exitloop
- timeout 10 > NUL 2>&1
- if ERRORLEVEL 1 ping -n 11 localhost > NUL
- )
- set timeout=1
- :exitloop
-
- echo %COL_GREEN%Test results of vim:%COL_RESET%
- if exist messages type messages
- nmake -nologo -f Make_dos.mak report VIMPROG=..\..\src\vim || exit 1
- if "%timeout%"=="1" (
- echo %COL_RED%Timed out.%COL_RESET%
- exit 1
- )