Commit 2544293f by bergwerkgis

AppVeyor: 1st try with VS2015

parent 362592a1
......@@ -4,16 +4,16 @@ environment:
node_pre_gyp_secretAccessKey:
secure: 1amwJJw9fu0j6dXnc5KsAQbSYf7Cjw/dapT6OZWABa6nc52grkKeLQ+DGaOfQz8i
matrix:
- nodejs_version: 0.10.36
- nodejs_version: 0.10.40
platform: x86
msvs_toolset: 12
- nodejs_version: 0.10.36
- nodejs_version: 0.10.40
platform: x64
msvs_toolset: 12
- nodejs_version: 0.12.0
- nodejs_version: 0.12.7
platform: x86
msvs_toolset: 12
- nodejs_version: 0.12.0
- nodejs_version: 0.12.7
platform: x64
msvs_toolset: 12
- nodejs_version: 1.8.1
......@@ -28,68 +28,28 @@ environment:
- nodejs_version: 2.0.0
platform: x86
msvs_toolset: 12
# custom visual studio 2014 builds
- nodejs_version: 0.10.33
# custom visual studio 2015 builds
- nodejs_version: 0.10.40
platform: x86
msvs_toolset: 14
BUILD_ARGS: --dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
- nodejs_version: 0.10.33
TOOLSET_ARGS: --dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
- nodejs_version: 0.10.40
platform: x64
msvs_toolset: 14
BUILD_ARGS: --dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
- nodejs_version: 0.12.0
TOOLSET_ARGS: --dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
- nodejs_version: 0.12.7
platform: x86
msvs_toolset: 14
BUILD_ARGS: --dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
- nodejs_version: 0.12.0
TOOLSET_ARGS: --dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
- nodejs_version: 0.12.7
platform: x64
msvs_toolset: 14
BUILD_ARGS: --dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
TOOLSET_ARGS: --dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
os: Visual Studio 2014 CTP4
os: Visual Studio 2015
install:
# add local node to path (since we install it for msvs_toolset == 14)
- SET PATH=%CD%;%PATH%;
# add local node-pre-gyp dir to path
- SET PATH=node_modules\.bin;%PATH%
# use 64 bit python if platform is 64 bit
- if "%platform%" == "x64" set PATH=C:\Python27-x64;%PATH%
- SET ARCHPATH=
- if %platform% == x64 (SET ARCHPATH=x64/)
# install node version per visual studio toolset
- if "%msvs_toolset%" == "12" powershell Install-Product node $env:nodejs_version $env:platform
- if "%msvs_toolset%" == "14" powershell Write-Output "fetching https://mapbox.s3.amazonaws.com/node-cpp11/v$env:nodejs_version/${env:ARCHPATH}node.exe"
- if "%msvs_toolset%" == "14" powershell Start-FileDownload "https://mapbox.s3.amazonaws.com/node-cpp11/v$env:nodejs_version/${env:ARCHPATH}node.exe"
# only needed if not using 'os: Visual Studio 2014 CTP4'
#- if "%msvs_toolset%" == "14" powershell Write-Output "https://mapbox.s3.amazonaws.com/node-cpp11/vcredist_$env:platform.exe"
#- if "%msvs_toolset%" == "14" powershell Start-FileDownload "https://mapbox.s3.amazonaws.com/node-cpp11/vcredist_$env:platform.exe"
#- if "%msvs_toolset%" == "14" .\vcredist_%platform%.exe /q /norestart
- node -v
- node -e "console.log(process.argv,process.execPath)"
- npm -v
# clear out node-gyp header cache
- if "%msvs_toolset%" == "14" rd /s /q %USERPROFILE%\.node-gyp
- SET PATH=C:\Program Files (x86)\MSBuild\%msvs_toolset%.0\bin;%PATH%
- SET PATH=C:\Program Files (x86)\Microsoft Visual Studio %msvs_toolset%.0\VC\bin;%PATH%
- if %platform% == x64 CALL "C:\Program Files (x86)\Microsoft Visual Studio %msvs_toolset%.0\VC\vcvarsall.bat" amd64
- if %platform% == x86 CALL "C:\Program Files (x86)\Microsoft Visual Studio %msvs_toolset%.0\VC\vcvarsall.bat" amd64_x86
- npm install --build-from-source --msvs_version=2013 %BUILD_ARGS% --loglevel=http
- node_modules\.bin\node-pre-gyp reveal module --silent > module.txt
- SET /p MODULE=<module.txt
- del module.txt
- node -e "console.log(process.execPath)" > node_path.txt
- SET /p NODE_EXE_PATH=<node_path.txt
- del node_path.txt
# should display MSVCP140.dll if built with visual studio 2014 and /MD
- dumpbin /DEPENDENTS "%NODE_EXE_PATH%" || true
- dumpbin /DEPENDENTS "%MODULE%" || true
- npm test || true
- node-pre-gyp package %BUILD_ARGS%
# make commit message env var shorter
- SET CM=%APPVEYOR_REPO_COMMIT_MESSAGE%
- if not "%CM%" == "%CM:[publish binary]=%" node-pre-gyp --msvs_version=2013 publish %BUILD_ARGS%
- if "%msvs_toolset%" == "12" call scripts\build_for_node_webkit.cmd %platform%
- scripts\build-appveyor.bat
build: OFF
test: OFF
......
@ECHO OFF
SETLOCAL
SET EL=0
ECHO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SET PATH=%CD%;%PATH%
SET msvs_version=2013
IF "%msvs_toolset"=="14" SET msvs_version=2015
ECHO APPVEYOR^: %APPVEYOR%
ECHO nodejs_version^: %nodejs_version%
ECHO platform^: %platform%
ECHO msvs_toolset^: %msvs_toolset%
ECHO msvs_version^: %msvs_version%
ECHO TOOLSET_ARGS^: %TOOLSET_ARGS%
ECHO activating VS command prompt
IF /I "%platform%"=="x64" ECHO x64 && CALL "C:\Program Files (x86)\Microsoft Visual Studio %msvs_toolset%.0\VC\vcvarsall.bat" amd64
IF /I "%platform%"=="x86" ECHO x86 && CALL "C:\Program Files (x86)\Microsoft Visual Studio %msvs_toolset%.0\VC\vcvarsall.bat" x86
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO using compiler^: && cl
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO using MSBuild^: && msbuild /version && ECHO.
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO downloading/installing node
::only use Install-Product when using VS2013
::IF /I "%APPVEYOR%"=="True" IF /I "%msvs_toolset%"=="12" powershell Install-Product node $env:nodejs_version $env:Platform
::TESTING:
::always install (get npm matching node), but delete installed programfiles node.exe afterwards for VS2015 (using custom node.exe)
IF /I "%APPVEYOR%"=="True" powershell Install-Product node $env:nodejs_version $env:Platform
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
IF /I "%msvs_toolset%"=="12" GOTO NODE_INSTALLED
::custom node for VS2015
SET ARCHPATH=
IF "%platform%"=="x64" (SET ARCHPATH=x64/)
SET NODE_URL=https://mapbox.s3.amazonaws.com/node-cpp11/v%nodejs_version%/%ARCHPATH%node.exe
ECHO downloading node^: %NODE_URL%
powershell Invoke-WebRequest "${env:NODE_URL}" -OutFile node.exe
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO deleting node ...
SET NODE_EXE_PRG=%ProgramFiles%\nodejs\node.exe
IF EXIST "%NODE_EXE_PRG%" ECHO found %NODE_EXE_PRG%, deleting... && DEL /F "%NODE_EXE_PRG%"
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
SET NODE_EXE_PRG=%ProgramFiles(x86)%\nodejs\node.exe
IF EXIST "%NODE_EXE_PRG%" ECHO found %NODE_EXE_PRG%, deleting... && DEL /F "%NODE_EXE_PRG%"
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
:NODE_INSTALLED
ECHO available node.exe^:
where node
ECHO available npm^:
where npm
ECHO node^: && node -v
node -e "console.log(process.argv,process.execPath)"
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO npm^: && CALL npm -v
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO ===== where npm puts stuff START ============
ECHO npm root && CALL npm root
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO npm root -g && CALL npm root -g
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO npm bin && CALL npm bin
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO npm bin -g && CALL npm bin -g
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
SET NPM_BIN_DIR=
FOR /F "tokens=*" %%i in ('CALL npm bin -g') DO SET NPM_BIN_DIR=%%i
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
IF /I "%NPM_BIN_DIR%"=="%CD%" ECHO ERROR npm bin -g equals local directory && SET ERRORLEVEL=1 && GOTO ERROR
ECHO ===== where npm puts stuff END ============
ECHO installing node-gyp
CALL npm install -g node-gyp
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
CALL npm install --build-from-source --msvs_version=%msvs_version% %TOOLSET_ARGS% --loglevel=http
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
FOR /F "tokens=*" %%i in ('CALL node_modules\.bin\node-pre-gyp reveal module --silent') DO SET MODULE=%%i
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
FOR /F "tokens=*" %%i in ('node -e "console.log(process.execPath)"') DO SET NODE_EXE=%%i
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
dumpbin /DEPENDENTS "%NODE_EXE%"
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
dumpbin /DEPENDENTS "%MODULE%"
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO calling npm test
CALL npm test
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
CALL node_modules\.bin\node-pre-gyp package %TOOLSET_ARGS%
::make commit message env var shorter
SET CM=%APPVEYOR_REPO_COMMIT_MESSAGE%
IF NOT "%CM%" == "%CM:[publish binary]=%" (ECHO publishing && CALL node-pre-gyp --msvs_version=2015 unpublish publish %TOOLSET_ARGS%) ELSE (ECHO not publishing)
GOTO DONE
:ERROR
ECHO ~~~~~~~~~~~~~~~~~~~~~~ ERROR %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ECHO ERRORLEVEL^: %ERRORLEVEL%
SET EL=%ERRORLEVEL%
:DONE
ECHO ~~~~~~~~~~~~~~~~~~~~~~ DONE %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EXIT /b %EL%
@ECHO OFF
SETLOCAL
SET EL=0
ECHO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SET PATH=C:\Python27;%PATH%
SET APPVEYOR_REPO_COMMIT_MESSAGE=local build
IF EXIST lib\binding ECHO deleting lib/binding && RD /Q /S lib\binding
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
IF EXIST node_modules ECHO deleting node_modules && RD /Q /S node_modules
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO ============================
ECHO VS2013
ECHO ============================
SET nodejs_version=0.10.36
SET platform=x64
SET msvs_toolset=12
SET TOOLSET_ARGS=
CALL scripts\build-appveyor.bat
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
IF EXIST lib\binding ECHO deleting lib/binding && RD /Q /S lib\binding
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
IF EXIST node_modules ECHO deleting node_modules && RD /Q /S node_modules
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
ECHO ============================
ECHO VS2015
ECHO ============================
SET nodejs_version=0.12.7
SET platform=x86
SET msvs_toolset=14
SET TOOLSET_ARGS=--dist-url=https://s3.amazonaws.com/mapbox/node-cpp11 --toolset=v140
CALL scripts\build-appveyor.bat
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
GOTO DONE
:ERROR
ECHO ~~~~~~~~~~~~~~~~~~~~~~ ERROR %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ECHO ERRORLEVEL^: %ERRORLEVEL%
SET EL=%ERRORLEVEL%
:DONE
ECHO ~~~~~~~~~~~~~~~~~~~~~~ DONE %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EXIT /b %EL%
@rem setup
@rem git clone git://github.com/marcelklehr/nodist.git
@rem create ~/.node_pre_gyprc
@rem note, for 64 builds you may need to win7 sdk terminal
@rem https://github.com/TooTallNate/node-gyp/issues/112
set PATH=c:\dev2\nodist\bin;%PATH%
set PATH=node_modules\.bin;%PATH%
set PATH=%PATH%;c:\Python27
@rem 32 bit
set NODIST_X64=0
nodist use stable
node -e "console.log(process.version + ' ' + process.arch)"
node-pre-gyp clean
npm install --build-from-source
npm test
node-pre-gyp package publish
node-pre-gyp clean
@rem 64 bit
@ rem cannot open input file 'kernel32.lib' http://www.microsoft.com/en-us/download/details.aspx?id=4422
set NODIST_X64=1
nodist use stable
node -e "console.log(process.version + ' ' + process.arch)"
node-pre-gyp clean
npm install --build-from-source
npm test
node-pre-gyp package publish
node-pre-gyp clean
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment