From 3b68c1eb69ae1a7533e64084e883a52e1b426aa3 Mon Sep 17 00:00:00 2001 From: Danny McCormick Date: Tue, 6 Nov 2018 14:21:26 -0500 Subject: [PATCH] Add Azure Pipelines (#3140) * Adding ci files * Single pipeline * Add test reporting * Try adding mocha-junit-reporter * More complete test reporting * Cleaning up * Trying to find location of test file * Added searching logic to wrong file * Trying different method of getting test results * Add reporter option * Adding alternate way of getting mac os * Get rid of bad comments --- azure-pipelines-linux-mac.yml | 38 +++++++++++++++++++++++++++++++++++ azure-pipelines-windows.yml | 27 +++++++++++++++++++++++++ azure-pipelines.yml | 29 ++++++++++++++++++++++++++ scripts/test.bat | 10 +++++++-- scripts/test.sh | 6 +++--- 5 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 azure-pipelines-linux-mac.yml create mode 100644 azure-pipelines-windows.yml create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines-linux-mac.yml b/azure-pipelines-linux-mac.yml new file mode 100644 index 0000000000..660c03a92c --- /dev/null +++ b/azure-pipelines-linux-mac.yml @@ -0,0 +1,38 @@ +steps: +- task: NodeTool@0 + inputs: + versionSpec: '8.x' + displayName: 'Install Node.js' + +- script: | + git submodule update --init --recursive + nvm install 8.9.1 + nvm use 8.9.1 + npm i -g yarn + displayName: 'preinstall' + +- script: | + export CXX="g++-4.9" CC="gcc-4.9" DISPLAY=:99.0 + sh -e /etc/init.d/xvfb start + sleep 3 + displayName: 'Linux preinstall' + condition: eq(variables['Agent.OS'], 'Linux') + +- script: | + yarn + displayName: 'Install' + +- script: | + node_modules/.bin/gulp electron --silent + node_modules/.bin/gulp compile --silent --max_old_space_size=4096 + node_modules/.bin/gulp optimize-vscode --silent --max_old_space_size=4096 + displayName: 'Scripts' + +- script: | + ./scripts/test.sh --reporter mocha-junit-reporter + displayName: 'Tests' + +- task: PublishTestResults@2 + inputs: + testResultsFiles: '**/test-results.xml' + condition: succeededOrFailed() \ No newline at end of file diff --git a/azure-pipelines-windows.yml b/azure-pipelines-windows.yml new file mode 100644 index 0000000000..29fc86351d --- /dev/null +++ b/azure-pipelines-windows.yml @@ -0,0 +1,27 @@ +steps: +- task: NodeTool@0 + inputs: + versionSpec: '8.9' + displayName: 'Install Node.js' + +- script: | + yarn + displayName: 'Yarn Install' + +- script: | + .\node_modules\.bin\gulp electron + displayName: 'Electron' + +- script: | + npm run compile + displayName: 'Compile' + +- script: | + .\scripts\test.bat + .\scripts\test-integration.bat + displayName: 'Test' + +- task: PublishTestResults@2 + inputs: + testResultsFiles: '**/test-results.xml' + condition: succeededOrFailed() \ No newline at end of file diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000000..6655460296 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,29 @@ +trigger: +- master +- releases/* + +jobs: + +# All tasks on Windows +- job: build_all_windows + displayName: Build all tasks (Windows) + pool: + vmImage: vs2017-win2016 + steps: + - template: azure-pipelines-windows.yml + +# All tasks on Linux +- job: build_all_linux + displayName: Build all tasks (Linux) + pool: + vmImage: 'Ubuntu 16.04' + steps: + - template: azure-pipelines-linux-mac.yml + +# All tasks on macOS +- job: build_all_darwin + displayName: Build all tasks (macOS) + pool: + vmImage: macos-10.13 + steps: + - template: azure-pipelines-linux-mac.yml diff --git a/scripts/test.bat b/scripts/test.bat index 3335c6e9f7..2ef3a49ed2 100644 --- a/scripts/test.bat +++ b/scripts/test.bat @@ -12,12 +12,18 @@ set CODE=".build\electron\%NAMESHORT%" rem TFS Builds if not "%BUILD_BUILDID%" == "" ( - %CODE% .\node_modules\mocha\bin\_mocha %* + if not "%ADD_REPORTER%" == "" ( + %CODE% .\node_modules\mocha\bin\_mocha --reporter mocha-junit-reporter %* + ) + + if "%ADD_REPORTER%" == "" ( + %CODE% .\node_modules\mocha\bin\_mocha %* + ) ) rem Otherwise if "%BUILD_BUILDID%" == "" ( - %CODE% .\node_modules\mocha\bin\_mocha --reporter dot %* + %CODE% .\node_modules\mocha\bin\_mocha --reporter mocha-junit-reporter %* ) popd diff --git a/scripts/test.sh b/scripts/test.sh index c38bc3d110..929f812f55 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -1,7 +1,7 @@ #!/bin/bash -if [[ "$OSTYPE" == "darwin"* ]]; then +if [[ "$OSTYPE" == "darwin"* ]] || [[ "$AGENT_OS" == "Darwin"* ]]; then realpath() { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"; } ROOT=$(dirname $(dirname $(realpath "$0"))) @@ -14,7 +14,7 @@ fi cd $ROOT -if [[ "$OSTYPE" == "darwin"* ]]; then +if [[ "$OSTYPE" == "darwin"* ]] || [[ "$AGENT_OS" == "Darwin"* ]]; then NAME=`node -p "require('./product.json').nameLong"` CODE="./.build/electron/$NAME.app/Contents/MacOS/Electron" else @@ -30,7 +30,7 @@ node build/lib/electron.js || ./node_modules/.bin/gulp electron # Unit Tests export ELECTRON_RUN_AS_NODE=1 -if [[ "$OSTYPE" == "darwin"* ]]; then +if [[ "$OSTYPE" == "darwin"* ]] || [[ "$AGENT_OS" == "Darwin"* ]]; then cd $ROOT ; ulimit -n 4096 ; \ "$CODE" \ node_modules/mocha/bin/_mocha "$@"