diff options
-rw-r--r-- | .github/workflows/ci.yml | 25 | ||||
-rw-r--r-- | ci/build.ps1 | 38 |
2 files changed, 30 insertions, 33 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fcd6114d65..97e1ed8742 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,7 @@ on: branches: 'master' jobs: - build: + unixish: name: ${{ matrix.os }} ${{ matrix.flavor }} (cc=${{ matrix.cc }}) strategy: matrix: @@ -82,3 +82,26 @@ jobs: - name: Cache dependencies if: ${{ success() }} run: ./ci/before_cache.sh + + windows: + runs-on: windows-2016 + env: + DEPS_BUILD_DIR: "C:/projects/nvim-deps" + DEPS_PREFIX: "C:/projects/nvim-deps/usr" + + strategy: + matrix: + config: [ MINGW_64-gcov, MINGW_32, MSVC_64, MSVC_32 ] + name: windows (${{ matrix.config }}) + steps: + - uses: actions/checkout@v2 + + - uses: actions/cache@v2 + with: + path: C:\projects\nvim-deps + key: ${{ matrix.config }}-${{ hashFiles('third-party\**') }} + + - name: Run CI + run: powershell ci\build.ps1 + env: + CONFIGURATION: ${{ matrix.config }} diff --git a/ci/build.ps1 b/ci/build.ps1 index dbc43aecf3..db7026ac66 100644 --- a/ci/build.ps1 +++ b/ci/build.ps1 @@ -3,7 +3,6 @@ Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' $ProgressPreference = 'SilentlyContinue' -$isPullRequest = ($env:APPVEYOR_PULL_REQUEST_HEAD_COMMIT -ne $null) $env:CONFIGURATION -match '^(?<compiler>\w+)_(?<bits>32|64)(?:-(?<option>\w+))?$' $compiler = $Matches.compiler $compileOption = if ($Matches -contains 'option') {$Matches.option} else {''} @@ -29,27 +28,9 @@ function exitIfFailed() { } } -# https://github.com/lukesampson/scoop#installation -$scoop = (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') -& { - Set-StrictMode -Off - Invoke-Expression $scoop -} - -scoop install perl -perl --version -cpanm.bat --version - if (-not $NoTests) { - scoop install nodejs-lts node --version npm.cmd --version - - cpanm.bat -n Neovim::Ext - if ($LastExitCode -ne 0) { - Get-Content -Path "$env:USERPROFILE\.cpanm\build.log" - } - perl -W -e 'use Neovim::Ext; print $Neovim::Ext::VERSION'; exitIfFailed } if (-Not (Test-Path -PathType container $env:DEPS_BUILD_DIR)) { @@ -91,14 +72,7 @@ if ($compiler -eq 'MINGW') { & C:\msys64\usr\bin\mkdir -p /var/cache/pacman/pkg # Build third-party dependencies - C:\msys64\usr\bin\bash -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" ; exitIfFailed - C:\msys64\usr\bin\bash -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig" ; exitIfFailed - C:\msys64\usr\bin\bash -lc "pacman-key --verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig" ; exitIfFailed - C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -U msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz" ; exitIfFailed - # If there are still processes using msys-2.0.dll, after the base system update is finished, it will wait for input from the user. - # To prevent this, we will terminate all processes that use msys-2.0.dll. - Get-Process | Where-Object { $_.path -like 'C:\msys64*' } | Stop-Process - C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Syu" ; exitIfFailed + C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm -Su" ; exitIfFailed C:\msys64\usr\bin\bash -lc "pacman --verbose --noconfirm --needed -S $mingwPackages" ; exitIfFailed } elseif ($compiler -eq 'MSVC') { @@ -113,16 +87,16 @@ elseif ($compiler -eq 'MSVC') { if (-not $NoTests) { # Setup python (use AppVeyor system python) - C:\Python27\python.exe -m pip install pynvim ; exitIfFailed - C:\Python35\python.exe -m pip install pynvim ; exitIfFailed + + C:\hostedtoolcache\windows\Python\2.7.18\x64\python.exe -m pip install pynvim ; exitIfFailed + C:\hostedtoolcache\windows\Python\3.5.4\x64\python.exe -m pip install pynvim ; exitIfFailed # Disambiguate python3 - move c:\Python35\python.exe c:\Python35\python3.exe - $env:PATH = "C:\Python35;C:\Python27;$env:PATH" + move C:\hostedtoolcache\windows\Python\3.5.4\x64\python.exe C:\hostedtoolcache\windows\Python\3.5.4\x64\python3.exe + $env:PATH = "C:\hostedtoolcache\windows\Python\3.5.4\x64;C:\hostedtoolcache\windows\Python\2.7.18\x64;$env:PATH" # Sanity check python -c "import pynvim; print(str(pynvim))" ; exitIfFailed python3 -c "import pynvim; print(str(pynvim))" ; exitIfFailed - $env:PATH = "C:\Ruby24\bin;$env:PATH" gem.cmd install --pre neovim Get-Command -CommandType Application neovim-ruby-host.bat |