mirror of https://github.com/grpc/grpc-node.git
				
				
				
			Merge pull request #40 from nicolasnoble/kokoro-windows
Adding Windows-Kokoro support.
This commit is contained in:
		
						commit
						12067cce82
					
				
							
								
								
									
										10
									
								
								gulpfile.js
								
								
								
								
							
							
						
						
									
										10
									
								
								gulpfile.js
								
								
								
								
							|  | @ -14,6 +14,9 @@ const root = __dirname; | |||
| gulp.task('install.all', 'Install dependencies for all subdirectory packages', | ||||
|           ['js.core.install', 'native.core.install', 'health-check.install']); | ||||
| 
 | ||||
| gulp.task('install.all.windows', 'Install dependencies for all subdirectory packages for MS Windows', | ||||
|           ['js.core.install', 'native.core.install.windows', 'health-check.install']); | ||||
| 
 | ||||
| gulp.task('lint', 'Emit linting errors in source and test files', | ||||
|           ['js.core.lint', 'native.core.lint']); | ||||
| 
 | ||||
|  | @ -30,7 +33,12 @@ gulp.task('link', 'Link local packages together after building', | |||
|             gulp.start('link.only'); | ||||
|           }); | ||||
| 
 | ||||
| gulp.task('setup', 'One-time setup for a clean repository', ['install.all', 'link']); | ||||
| gulp.task('setup', 'One-time setup for a clean repository', ['install.all'], () => { | ||||
|         gulp.start('link'); | ||||
| }); | ||||
| gulp.task('setup.windows', 'One-time setup for a clean repository for MS Windows', ['install.all.windows'], () => { | ||||
|         gulp.start('link'); | ||||
| }); | ||||
| 
 | ||||
| gulp.task('clean', 'Delete generated files', ['js.core.clean', 'native.core.clean']); | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,26 @@ | |||
| # Copyright 2017 gRPC authors. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| 
 | ||||
| # We're going to store nvm-windows in the .\nvm directory. | ||||
| $env:NVM_HOME = (Get-Item -Path ".\" -Verbose).FullName + "\nvm" | ||||
| 
 | ||||
| # Downloading and unpacking nvm-windows | ||||
| Invoke-WebRequest -Uri https://github.com/coreybutler/nvm-windows/releases/download/1.1.5/nvm-noinstall.zip -OutFile nvm-noinstall.zip | ||||
| Add-Type -AssemblyName System.IO.Compression.FileSystem | ||||
| [System.IO.Compression.ZipFile]::ExtractToDirectory("nvm-noinstall.zip", "nvm") | ||||
| 
 | ||||
| $env:Path = $env:NVM_HOME + ";" + $env:Path | ||||
| Out-File -Encoding "OEM" nvm\settings.txt | ||||
| nvm root $env:NVM_HOME | ||||
| "%*" | Out-File -Encoding "OEM" nvm\elevate.cmd | ||||
|  | @ -0,0 +1,22 @@ | |||
| @rem Copyright 2017 gRPC authors. | ||||
| @rem | ||||
| @rem Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| @rem you may not use this file except in compliance with the License. | ||||
| @rem You may obtain a copy of the License at | ||||
| @rem | ||||
| @rem     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| @rem | ||||
| @rem Unless required by applicable law or agreed to in writing, software | ||||
| @rem distributed under the License is distributed on an "AS IS" BASIS, | ||||
| @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| @rem See the License for the specific language governing permissions and | ||||
| @rem limitations under the License. | ||||
| 
 | ||||
| @echo "Starting Windows test" | ||||
| 
 | ||||
| cd /d %~dp0 | ||||
| 
 | ||||
| git submodule update --init | ||||
| git submodule foreach --recursive git submodule update --init | ||||
| 
 | ||||
| .\run-tests.bat | ||||
|  | @ -30,7 +30,16 @@ gulp.task('native.core.install', 'Install native core dependencies', () => { | |||
|                {cwd: nativeCoreDir, stdio: 'inherit'}); | ||||
| }); | ||||
| 
 | ||||
| gulp.task('native.core.link.create', 'Create npm link', ['native.core.install'], () => { | ||||
| gulp.task('native.core.install.windows', 'Install native core dependencies for MS Windows', () => { | ||||
|   return execa('npm', ['install', '--build-from-source'], | ||||
|                {cwd: nativeCoreDir, stdio: 'inherit'}).catch(() =>  | ||||
| del(path.resolve(process.env.USERPROFILE, '.node-gyp', process.versions.node, 'include/node/openssl'), { force: true }).then(() => | ||||
| execa('npm', ['install', '--build-from-source'], | ||||
|                {cwd: nativeCoreDir, stdio: 'inherit'}) | ||||
|                )) | ||||
| }); | ||||
| 
 | ||||
| gulp.task('native.core.link.create', 'Create npm link', () => { | ||||
|   return execa('npm', ['link'], {cwd: nativeCoreDir, stdio: 'inherit'}); | ||||
| }); | ||||
| 
 | ||||
|  | @ -41,7 +50,7 @@ gulp.task('native.core.lint', 'Emits linting errors', () => { | |||
| }); | ||||
| 
 | ||||
| gulp.task('native.core.build', 'Build native package', () => { | ||||
|   return execa('node-pre-gyp', ['build'], {cwd: nativeCoreDir, stdio: 'inherit'}); | ||||
|   return execa('npm', ['run', 'build'], {cwd: nativeCoreDir, stdio: 'inherit'}); | ||||
| }); | ||||
| 
 | ||||
| gulp.task('native.core.test', 'Run all tests', ['native.core.build'], () => { | ||||
|  |  | |||
|  | @ -21,6 +21,7 @@ | |||
|   "scripts": { | ||||
|     "lint": "node ./node_modules/jshint/bin/jshint src test index.js --exclude-path=.jshintignore", | ||||
|     "test": "./node_modules/.bin/mocha test && npm run-script lint", | ||||
|     "build": "./node_modules/.bin/node-pre-gyp build", | ||||
|     "electron-build": "./node_modules/.bin/node-pre-gyp configure build --runtime=electron --disturl=https://atom.io/download/atom-shell", | ||||
|     "gen_docs": "./node_modules/.bin/jsdoc -c jsdoc_conf.json", | ||||
|     "coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha test", | ||||
|  |  | |||
|  | @ -0,0 +1,46 @@ | |||
| @rem Copyright 2017 gRPC authors. | ||||
| @rem | ||||
| @rem Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| @rem you may not use this file except in compliance with the License. | ||||
| @rem You may obtain a copy of the License at | ||||
| @rem | ||||
| @rem     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| @rem | ||||
| @rem Unless required by applicable law or agreed to in writing, software | ||||
| @rem distributed under the License is distributed on an "AS IS" BASIS, | ||||
| @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| @rem See the License for the specific language governing permissions and | ||||
| @rem limitations under the License. | ||||
| 
 | ||||
| SET ROOT=%~dp0 | ||||
| cd /d %~dp0 | ||||
| 
 | ||||
| PowerShell -Command .\install-nvm-windows.ps1 | ||||
| 
 | ||||
| SET NVM_HOME=%ROOT%nvm | ||||
| SET NVM_SYMLINK=%ROOT%nvm\nodejs | ||||
| SET PATH=%NVM_HOME%;%NVM_SYMLINK%;%PATH% | ||||
| 
 | ||||
| nvm version | ||||
| 
 | ||||
| nvm install 8.5.0 | ||||
| nvm use 8.5.0 | ||||
| 
 | ||||
| call npm install || goto :error | ||||
| 
 | ||||
| for %%v in (4.8.4 6.11.3 7.9.0 8.5.0) do ( | ||||
|   nvm install %%v | ||||
|   nvm use %%v | ||||
|   node -e "console.log(process.versions)" | ||||
| 
 | ||||
|   call .\node_modules\.bin\gulp clean.all || goto :error | ||||
|   call .\node_modules\.bin\gulp setup.windows || goto :error | ||||
|   call .\node_modules\.bin\gulp native.test || goto :error | ||||
| ) | ||||
| 
 | ||||
| if %errorlevel% neq 0 exit /b %errorlevel% | ||||
| 
 | ||||
| goto :EOF | ||||
| 
 | ||||
| :error | ||||
| exit /b 1 | ||||
|  | @ -36,7 +36,6 @@ nvm use lts/* | |||
| set -ex | ||||
| 
 | ||||
| npm install --unsafe-perm | ||||
| ./node_modules/.bin/gulp setup | ||||
| 
 | ||||
| mkdir -p reports | ||||
| 
 | ||||
|  | @ -55,7 +54,7 @@ do | |||
| 
 | ||||
|   # Install dependencies and link packages together. | ||||
|   ./node_modules/.bin/gulp clean.all | ||||
|   ./node_modules/.bin/gulp link | ||||
|   ./node_modules/.bin/gulp setup | ||||
| 
 | ||||
|   # Rebuild libraries and run tests. | ||||
|   JUNIT_REPORT_PATH="reports/node$version/" JUNIT_REPORT_STACK=1 ./node_modules/.bin/gulp native.test || FAILED="true" | ||||
|  |  | |||
|  | @ -0,0 +1,19 @@ | |||
| # Copyright 2017 gRPC authors. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| 
 | ||||
| # Config file for Kokoro (in protobuf text format) | ||||
| 
 | ||||
| # Location of the continuous shell script in repository. | ||||
| build_file: "grpc-node/kokoro.bat" | ||||
| timeout_mins: 60 | ||||
		Loading…
	
		Reference in New Issue