Skip to content

Instantly share code, notes, and snippets.

@refack
Created November 3, 2017 21:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save refack/29f04103fbf9112101a74d721a868add to your computer and use it in GitHub Desktop.
Save refack/29f04103fbf9112101a74d721a868add to your computer and use it in GitHub Desktop.
<?xml version='1.0' encoding='UTF-8'?>
<matrix-project plugin="matrix-project@1.12">
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.28.1">
<projectUrl>https://github.com/nodejs/node/</projectUrl>
<displayName></displayName>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.27">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>TEMP_REPO</name>
<description>URL of the temporary repository to use.</description>
<defaultValue>git@github.com:janeasystems/node_binary_tmp.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>TEMP_BRANCH</name>
<description>The Git branch to fetch form the temporaries repository.</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>TEMP_PUSH_BRANCH</name>
<description>The Git branch prefix to push to the temporaries repository with the result.</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>NODE_MAJOR_VERSION</name>
<description></description>
<defaultValue>10</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>ENGINE</name>
<description>Build binary with engine (only V8 is supported)</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>V8</string>
<string>ChakraCore</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@2.0.1">
<maxConcurrentPerNode>0</maxConcurrentPerNode>
<maxConcurrentTotal>0</maxConcurrentTotal>
<categories class="java.util.concurrent.CopyOnWriteArrayList"/>
<throttleEnabled>false</throttleEnabled>
<throttleOption>project</throttleOption>
<limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams>
<matrixOptions>
<throttleMatrixBuilds>true</throttleMatrixBuilds>
<throttleMatrixConfigurations>false</throttleMatrixConfigurations>
</matrixOptions>
<paramsToUseForLimit></paramsToUseForLimit>
</hudson.plugins.throttleconcurrents.ThrottleJobProperty>
</properties>
<scm class="hudson.plugins.git.GitSCM" plugin="git@3.6.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>jenkins_tmp</name>
<refspec>+refs/heads/$TEMP_BRANCH:refs/remotes/jenkins_tmp/_jenkins_local_branch</refspec>
<url>$TEMP_REPO</url>
<credentialsId>dea9092d-214b-471a-be5d-5343dd7755c1</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>jenkins_tmp/_jenkins_local_branch</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<browser class="hudson.plugins.git.browser.GithubWeb">
<url>https://github.com/janeasystems/node_binary_tmp</url>
</browser>
<submoduleCfg class="list"/>
<extensions>
<hudson.plugins.git.extensions.impl.CleanCheckout/>
<hudson.plugins.git.extensions.impl.CloneOption>
<shallow>false</shallow>
<noTags>false</noTags>
<reference>/home/iojs/git/node.reference</reference>
<timeout>20</timeout>
<depth>0</depth>
<honorRefspec>false</honorRefspec>
</hudson.plugins.git.extensions.impl.CloneOption>
<hudson.plugins.git.extensions.impl.ChangelogToBranch>
<options>
<compareRemote>jenkins_tmp</compareRemote>
<compareTarget>_jenkins_local_branch~1</compareTarget>
</options>
</hudson.plugins.git.extensions.impl.ChangelogToBranch>
</extensions>
</scm>
<assignedNode>jenkins-workspace</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>true</concurrentBuild>
<axes>
<hudson.matrix.LabelAxis>
<name>label</name>
<values>
<string>win-vcbt2015</string>
<string>win-vs2013</string>
<string>win-vs2015</string>
<string>win-vs2015-arm</string>
<string>win-vs2015-x86</string>
<string>win-vs2017</string>
</values>
</hudson.matrix.LabelAxis>
</axes>
<combinationFilter>(ENGINE==&quot;ChakraCore&quot; || label!=&quot;win-vs2015-arm&quot;) &amp;&amp; (NODE_MAJOR_VERSION.toInteger()&lt;6 || label!=&quot;win-vs2013&quot;) &amp;&amp; (NODE_MAJOR_VERSION.toInteger()&gt;=8 || label!=&quot;win-vs2017&quot;)</combinationFilter>
<builders>
<hudson.tasks.BatchFile>
<command>:: https://github.com/nodejs/node/issues/5094&#xd;
ECHO OFF&#xd;
FOR /F %%F IN (&apos;git status --porcelain&apos;) DO (&#xd;
git status&#xd;
echo.&#xd;
echo ERROR: Workspace cannot be cleaned, possible problem with committed file names&#xd;
exit /b 1&#xd;
)&#xd;
ECHO ON</command>
</hudson.tasks.BatchFile>
<hudson.tasks.BatchFile>
<command>TASKKILL /F /IM node.exe /T || TRUE&#xd;
TASKKILL /F /IM cctest.exe /T || TRUE&#xd;
TASKKILL /F /IM run-tests.exe /T || TRUE&#xd;
&#xd;
for /f &quot;delims=&quot; %%a in (&apos;python tools\getnodeversion.py&apos;) do @set node_version_from_branch=%%a&#xd;
echo Detected version from branch: %node_version_from_branch%&#xd;
&#xd;
set vcbuild_extra_args=&#xd;
if /I &quot;%node_version_from_branch:~0,4%&quot; == &quot;0.10&quot; set vcbuild_extra_args=nosnapshot %vcbuild_extra_args%&#xd;
if /I &quot;%node_version_from_branch:~0,4%&quot; == &quot;0.12&quot; set vcbuild_extra_args=nosnapshot %vcbuild_extra_args%&#xd;
&#xd;
set &quot;BINARY_FILES=config.gypi icu_config.gypi Release/node.exe Release/node.lib Release/openssl-cli.exe Release/cctest.exe&quot;&#xd;
&#xd;
if /I &quot;%ENGINE%&quot;==&quot;ChakraCore&quot; (&#xd;
set &quot;vcbuild_extra_args=chakracore %vcbuild_extra_args%&quot;&#xd;
set &quot;BINARY_FILES=%BINARY_FILES% Release/chakracore.dll Release/chakracore.lib deps/chakrashim/include/Chakra*.h&quot;&#xd;
)&#xd;
&#xd;
if &quot;%label:~-4%&quot; == &quot;-x86&quot; (&#xd;
set &quot;vcbuild_extra_args=x86 %vcbuild_extra_args%&quot;&#xd;
) else if &quot;%label:~-4%&quot; == &quot;-arm&quot; (&#xd;
set &quot;vcbuild_extra_args=arm %vcbuild_extra_args%&quot;&#xd;
) else (&#xd;
set &quot;vcbuild_extra_args=x64 %vcbuild_extra_args%&quot;&#xd;
)&#xd;
&#xd;
if &quot;%label%&quot; == &quot;win-vs2017&quot; (&#xd;
set &quot;vcbuild_extra_args=vs2017 %vcbuild_extra_args%&quot;&#xd;
)&#xd;
&#xd;
call vcbuild.bat release nosign %vcbuild_extra_args%&#xd;
if %errorlevel% neq 0 exit /b %errorlevel%&#xd;
echo on&#xd;
&#xd;
if exist Release\node_test_engine.dll set &quot;BINARY_FILES=%BINARY_FILES% Release/node_test_engine.dll&quot;&#xd;
&#xd;
rm -rf binary&#xd;
mkdir binary&#xd;
tar cavf binary/binary.tar.gz %BINARY_FILES%&#xd;
md5sum binary/binary.tar.gz %BINARY_FILES% || true&#xd;
git add binary\binary.tar.gz&#xd;
if %errorlevel% neq 0 exit /b %errorlevel%&#xd;
&#xd;
&#xd;
git checkout -B %TEMP_PUSH_BRANCH%/%label%&#xd;
if %errorlevel% neq 0 exit /b %errorlevel%&#xd;
&#xd;
git config --replace-all user.name &quot;Node.js Jenkins CI&quot;&#xd;
git config --replace-all user.email ci@iojs.org&#xd;
git commit -m &quot;added binaries&quot;&#xd;
if %errorlevel% neq 0 exit /b %errorlevel%&#xd;
&#xd;
grep -q ^github.com %USERPROFILE%\.ssh\known_hosts || (ssh-keyscan -t rsa github.com &gt;&gt; %USERPROFILE%\.ssh\known_hosts)&#xd;
echo off&#xd;
FOR /F &quot;delims=&quot; %%F IN (&apos;cygpath -u %JENKINS_TMP_KEY%&apos;) DO SET &quot;GIT_SSH_COMMAND=ssh -i %%F&quot;&#xd;
echo on&#xd;
git push &quot;%TEMP_REPO%&quot; &quot;+%TEMP_PUSH_BRANCH%/%label%&quot;&#xd;
if %errorlevel% neq 0 exit /b %errorlevel%&#xd;
set &quot;GIT_SSH_COMMAND=&quot;&#xd;
&#xd;
git clean -fdx&#xd;
TASKKILL /F /IM node.exe /T || TRUE&#xd;
TASKKILL /F /IM cctest.exe /T || TRUE&#xd;
TASKKILL /F /IM run-tests.exe /T || TRUE&#xd;
&#xd;
&#xd;
</command>
</hudson.tasks.BatchFile>
</builders>
<publishers>
<hudson.tasks.ArtifactArchiver>
<artifacts>binary/binary.tar.gz</artifacts>
<allowEmptyArchive>true</allowEmptyArchive>
<onlyIfSuccessful>true</onlyIfSuccessful>
<fingerprint>true</fingerprint>
<defaultExcludes>true</defaultExcludes>
<caseSensitive>true</caseSensitive>
</hudson.tasks.ArtifactArchiver>
</publishers>
<buildWrappers>
<hudson.plugins.ansicolor.AnsiColorBuildWrapper plugin="ansicolor@0.5.2">
<colorMapName>xterm</colorMapName>
</hudson.plugins.ansicolor.AnsiColorBuildWrapper>
<EnvInjectBuildWrapper plugin="envinject@2.1.5">
<info>
<propertiesContent>PYTHON=c:\python27\python.exe</propertiesContent>
<secureGroovyScript plugin="script-security@1.34">
<script></script>
<sandbox>false</sandbox>
</secureGroovyScript>
<loadFilesFromMaster>false</loadFilesFromMaster>
</info>
</EnvInjectBuildWrapper>
<org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@1.13">
<bindings>
<org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
<credentialsId>7cff4811-b2bb-4e4d-afae-d75e1c07ae4f</credentialsId>
<variable>JENKINS_TMP_KEY</variable>
</org.jenkinsci.plugins.credentialsbinding.impl.FileBinding>
</bindings>
</org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
</buildWrappers>
<executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl">
<runSequentially>false</runSequentially>
</executionStrategy>
<childCustomWorkspace>.</childCustomWorkspace>
</matrix-project>
<?xml version='1.0' encoding='UTF-8'?>
<matrix-project plugin="matrix-project@1.12">
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.28.1">
<projectUrl>https://github.com/nodejs/node/</projectUrl>
<displayName></displayName>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.27">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>TEMP_REPO</name>
<description>URL of the temporary repository to use.</description>
<defaultValue>git@github.com:janeasystems/node_binary_tmp.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>TEMP_BRANCH</name>
<description>The Git branch to fetch form the temporaries repository.</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>NODE_MAJOR_VERSION</name>
<description></description>
<defaultValue>10</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>NODES_SUBSET</name>
<description>The subset of nodes to run tests on</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>io.js</string>
<string>0.12</string>
<string>0.10</string>
<string>pure_docs_change</string>
<string>all_nodes</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>IGNORE_FLAKY_TESTS</name>
<description>Mark the build as unstable instead of failure if only flaky tests fail</description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>ENGINE</name>
<description>Run on combinations supported by engine</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>V8</string>
<string>ChakraCore</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@2.0.1">
<maxConcurrentPerNode>0</maxConcurrentPerNode>
<maxConcurrentTotal>0</maxConcurrentTotal>
<categories class="java.util.concurrent.CopyOnWriteArrayList"/>
<throttleEnabled>false</throttleEnabled>
<throttleOption>project</throttleOption>
<limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams>
<matrixOptions>
<throttleMatrixBuilds>true</throttleMatrixBuilds>
<throttleMatrixConfigurations>false</throttleMatrixConfigurations>
</matrixOptions>
<paramsToUseForLimit></paramsToUseForLimit>
</hudson.plugins.throttleconcurrents.ThrottleJobProperty>
</properties>
<scm class="hudson.plugins.git.GitSCM" plugin="git@3.6.0">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>jenkins_tmp</name>
<refspec>+refs/heads/$TEMP_BRANCH/*:refs/remotes/jenkins_tmp/$TEMP_BRANCH/*</refspec>
<url>$TEMP_REPO</url>
<credentialsId>dea9092d-214b-471a-be5d-5343dd7755c1</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>refs/remotes/jenkins_tmp/$TEMP_BRANCH/win-vs2015^</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<browser class="hudson.plugins.git.browser.GithubWeb">
<url>https://github.com/nodejs/node</url>
</browser>
<submoduleCfg class="list"/>
<extensions>
<hudson.plugins.git.extensions.impl.CleanBeforeCheckout/>
<hudson.plugins.git.extensions.impl.CleanCheckout/>
<hudson.plugins.git.extensions.impl.CloneOption>
<shallow>false</shallow>
<noTags>false</noTags>
<reference>/home/iojs/git/io.js.reference</reference>
<timeout>30</timeout>
<depth>0</depth>
<honorRefspec>false</honorRefspec>
</hudson.plugins.git.extensions.impl.CloneOption>
</extensions>
</scm>
<assignedNode>jenkins-workspace</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>true</concurrentBuild>
<axes>
<hudson.matrix.LabelAxis>
<name>RUNNER</name>
<values>
<string>win10</string>
<string>win2008r2-vs2013</string>
<string>win2008r2-vs2017</string>
<string>win2012r2</string>
<string>win2016</string>
</values>
</hudson.matrix.LabelAxis>
<hudson.matrix.TextAxis>
<name>RUN_SUBSET</name>
<values>
<string>0</string>
<string>1</string>
<string>2</string>
<string>3</string>
</values>
</hudson.matrix.TextAxis>
<hudson.matrix.TextAxis>
<name>COMPILED_BY</name>
<values>
<string>vs2013</string>
<string>vs2015</string>
<string>vcbt2015</string>
<string>vs2015-x86</string>
<string>vs2017</string>
</values>
</hudson.matrix.TextAxis>
</axes>
<combinationFilter>((RUNNER==&quot;win10&quot; &amp;&amp; COMPILED_BY==&quot;vcbt2015&quot;) || (RUNNER==&quot;win2008r2-vs2013&quot; &amp;&amp; NODE_MAJOR_VERSION.toInteger()&lt;9 &amp;&amp; ((NODE_MAJOR_VERSION.toInteger()&lt;6 &amp;&amp; COMPILED_BY==&quot;vs2013&quot;) || (NODE_MAJOR_VERSION.toInteger()&gt;=6 &amp;&amp; COMPILED_BY==&quot;vs2015&quot;))) || (RUNNER==&quot;win2008r2-vs2017&quot; &amp;&amp; NODE_MAJOR_VERSION.toInteger()&gt;=9 &amp;&amp; COMPILED_BY==&quot;vs2015&quot;) || (RUNNER==&quot;win2012r2&quot; &amp;&amp; (COMPILED_BY==&quot;vs2015&quot; || COMPILED_BY==&quot;vs2015-x86&quot;)) || (RUNNER==&quot;win2016&quot; &amp;&amp; ((NODE_MAJOR_VERSION.toInteger()&lt;8 &amp;&amp; COMPILED_BY==&quot;vs2015&quot;) || (NODE_MAJOR_VERSION.toInteger()&gt;=8 &amp;&amp; COMPILED_BY==&quot;vs2017&quot;)))) &amp;&amp; (NODE_MAJOR_VERSION.toInteger()&gt;0 || RUN_SUBSET==&quot;0&quot;)</combinationFilter>
<builders>
<hudson.tasks.BatchFile>
<command>@rem Diagnostics&#xd;
echo off&#xd;
set &quot;DIAGFILE=c:\jenkins_diagnostics.txt&quot;&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
set &quot;TS=%date% %time%&quot;&#xd;
echo %TS%&#xd;
echo %TS% &gt;&gt; %DIAGFILE%&#xd;
echo Before building &gt;&gt; %DIAGFILE%&#xd;
echo %BUILD_TAG% &gt;&gt; %DIAGFILE%&#xd;
echo %BUILD_URL% &gt;&gt; %DIAGFILE%&#xd;
echo %NODE_NAME% &gt;&gt; %DIAGFILE%&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo netstat -abno &gt;&gt; %DIAGFILE%&#xd;
netstat -abno &gt;&gt; %DIAGFILE% 2&gt;&amp;1 || true&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo tasklist /v &gt;&gt; %DIAGFILE%&#xd;
tasklist /v &gt;&gt; %DIAGFILE% 2&gt;&amp;1 || true&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo tasklist /svc &gt;&gt; %DIAGFILE%&#xd;
tasklist /svc &gt;&gt; %DIAGFILE% 2&gt;&amp;1 || true&#xd;
mv %DIAGFILE% %DIAGFILE%-OLD || true&#xd;
tail -c 20000000 %DIAGFILE%-OLD &gt; %DIAGFILE% || true&#xd;
rm %DIAGFILE%-OLD || true&#xd;
echo on&#xd;
tasklist | grep node || true&#xd;
</command>
</hudson.tasks.BatchFile>
<hudson.tasks.BatchFile>
<command>TASKKILL /F /IM node.exe /T || TRUE&#xd;
TASKKILL /F /IM cctest.exe /T || TRUE&#xd;
TASKKILL /F /IM run-tests.exe /T || TRUE&#xd;
TASKKILL /F /IM yes.exe /T || TRUE&#xd;
&#xd;
git checkout -f refs/remotes/jenkins_tmp/%TEMP_BRANCH%/win-%COMPILED_BY%&#xd;
if %errorlevel% neq 0 exit /b %errorlevel%&#xd;
git rev-parse --verify HEAD || true&#xd;
&#xd;
tar xavf binary/binary.tar.gz&#xd;
if %errorlevel% neq 0 exit /b %errorlevel%&#xd;
md5sum binary/binary.tar.gz config.gypi icu_config.gypi Release/node.exe Release/node.lib Release/openssl-cli.exe Release/cctest.exe || true&#xd;
&#xd;
if /i &quot;%IGNORE_FLAKY_TESTS%&quot; == &quot;true&quot; (&#xd;
set FLAKY_TEST_ARG=ignore-flaky&#xd;
) else (&#xd;
set FLAKY_TEST_ARG=&#xd;
)&#xd;
echo FLAKY_TEST_ARG=%FLAKY_TEST_ARG%&#xd;
&#xd;
set &quot;test_ci_args=--run=%RUN_SUBSET%,4&quot;&#xd;
&#xd;
@rem It is necessary to use rm because git clean cannot clean very long paths and the next job would fail&#xd;
&#xd;
call vcbuild.bat release nosign x64 noprojgen nobuild test-ci %FLAKY_TEST_ARG%&#xd;
set &quot;EXIT_RETURN_VALUE=%errorlevel%&quot;&#xd;
&#xd;
echo on&#xd;
TASKKILL /F /IM node.exe /T || TRUE&#xd;
TASKKILL /F /IM cctest.exe /T || TRUE&#xd;
TASKKILL /F /IM run-tests.exe /T || TRUE&#xd;
TASKKILL /F /IM yes.exe /T || TRUE&#xd;
rm -rfv test/tmp* || true&#xd;
&#xd;
if not exist test.tap (&#xd;
echo &quot;Missing test.tap file&quot;&#xd;
set &quot;EXIT_RETURN_VALUE=1&quot;&#xd;
)&#xd;
if not exist cctest.tap (&#xd;
echo &quot;Missing cctest.tap file&quot;&#xd;
set &quot;EXIT_RETURN_VALUE=1&quot;&#xd;
)&#xd;
&#xd;
rm -vf ../test.tap || true&#xd;
rm -vf ../cctest.tap || true&#xd;
mv test.tap ../test.tap || true&#xd;
mv cctest.tap ../cctest.tap || true&#xd;
git clean -fdx || true&#xd;
git reset --hard || true&#xd;
mv ../test.tap test.tap || true&#xd;
mv ../cctest.tap cctest.tap || true&#xd;
&#xd;
exit /b %EXIT_RETURN_VALUE%&#xd;
</command>
</hudson.tasks.BatchFile>
<hudson.tasks.BatchFile>
<command>@rem Diagnostics&#xd;
echo off&#xd;
set &quot;DIAGFILE=c:\jenkins_diagnostics.txt&quot;&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
set &quot;TS=%date% %time%&quot;&#xd;
echo %TS%&#xd;
echo %TS% &gt;&gt; %DIAGFILE%&#xd;
echo After building &gt;&gt; %DIAGFILE%&#xd;
echo %BUILD_TAG% &gt;&gt; %DIAGFILE%&#xd;
echo %BUILD_URL% &gt;&gt; %DIAGFILE%&#xd;
echo %NODE_NAME% &gt;&gt; %DIAGFILE%&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo netstat -abno &gt;&gt; %DIAGFILE%&#xd;
netstat -abno &gt;&gt; %DIAGFILE% 2&gt;&amp;1 || true&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo tasklist /v &gt;&gt; %DIAGFILE%&#xd;
tasklist /v &gt;&gt; %DIAGFILE% 2&gt;&amp;1 || true&#xd;
echo. &gt;&gt; %DIAGFILE%&#xd;
echo tasklist /svc &gt;&gt; %DIAGFILE%&#xd;
tasklist /svc &gt;&gt; %DIAGFILE% 2&gt;&amp;1 || true&#xd;
mv %DIAGFILE% %DIAGFILE%-OLD || true&#xd;
tail -c 20000000 %DIAGFILE%-OLD &gt; %DIAGFILE% || true&#xd;
rm %DIAGFILE%-OLD || true&#xd;
echo on&#xd;
tasklist | grep node || true&#xd;
&#xd;
</command>
</hudson.tasks.BatchFile>
</builders>
<publishers>
<org.tap4j.plugin.TapPublisher plugin="tap@2.1">
<testResults>*.tap</testResults>
<failIfNoResults>true</failIfNoResults>
<failedTestsMarkBuildAsFailure>true</failedTestsMarkBuildAsFailure>
<outputTapToConsole>false</outputTapToConsole>
<enableSubtests>false</enableSubtests>
<discardOldReports>false</discardOldReports>
<todoIsFailure>false</todoIsFailure>
<includeCommentDiagnostics>true</includeCommentDiagnostics>
<validateNumberOfTests>true</validateNumberOfTests>
<planRequired>true</planRequired>
<verbose>true</verbose>
<showOnlyFailures>false</showOnlyFailures>
<stripSingleParents>false</stripSingleParents>
<flattenTapResult>false</flattenTapResult>
<skipIfBuildNotOk>false</skipIfBuildNotOk>
</org.tap4j.plugin.TapPublisher>
<hudson.plugins.textfinder.TextFinderPublisher plugin="text-finder@1.10">
<fileSet>*.tap</fileSet>
<regexp>^not ok</regexp>
<succeedIfFound>false</succeedIfFound>
<unstableIfFound>true</unstableIfFound>
<alsoCheckConsoleOutput>false</alsoCheckConsoleOutput>
</hudson.plugins.textfinder.TextFinderPublisher>
</publishers>
<buildWrappers>
<hudson.plugins.ansicolor.AnsiColorBuildWrapper plugin="ansicolor@0.5.2">
<colorMapName>xterm</colorMapName>
</hudson.plugins.ansicolor.AnsiColorBuildWrapper>
</buildWrappers>
<executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl">
<runSequentially>false</runSequentially>
</executionStrategy>
<childCustomWorkspace>.</childCustomWorkspace>
</matrix-project>
<?xml version='1.0' encoding='UTF-8'?>
<com.tikal.jenkins.plugins.multijob.MultiJobProject plugin="jenkins-multijob-plugin@1.28">
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<com.coravy.hudson.plugins.github.GithubProjectProperty plugin="github@1.28.1">
<projectUrl>https://github.com/nodejs/node/</projectUrl>
<displayName></displayName>
</com.coravy.hudson.plugins.github.GithubProjectProperty>
<com.sonyericsson.rebuild.RebuildSettings plugin="rebuild@1.27">
<autoRebuild>false</autoRebuild>
<rebuildDisabled>false</rebuildDisabled>
</com.sonyericsson.rebuild.RebuildSettings>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>GITHUB_ORG</name>
<description>The user/org of the GitHub repo</description>
<defaultValue>nodejs</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>REPO_NAME</name>
<description>The name of the repo</description>
<defaultValue>node</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>GIT_REMOTE_REF</name>
<description>The remote portion of the Git refspec to fetch and test</description>
<defaultValue>refs/heads/master</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>REBASE_ONTO</name>
<description>Optionally, rebase onto the given ref before testing. Leave blank to skip rebasing.</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>POST_REBASE_SHA1_CHECK</name>
<description>After rebasing, check that the resulting commit sha1 matches the given one. If left blank, no check is performed.</description>
<defaultValue></defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>NODE_MAJOR_VERSION</name>
<description></description>
<defaultValue>10</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>NODES_SUBSET</name>
<description>The subset of nodes to run tests on</description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>io.js</string>
<string>0.12</string>
<string>0.10</string>
<string>pure_docs_change</string>
<string>all_nodes</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>IGNORE_FLAKY_TESTS</name>
<description>Mark the build as unstable instead of failure if only flaky tests fail</description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.StringParameterDefinition>
<name>TEMP_REPO</name>
<description>URL of the temporary repository to use.</description>
<defaultValue>git@github.com:janeasystems/node_binary_tmp.git</defaultValue>
</hudson.model.StringParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>DELETE_TEMP_BRANCH</name>
<description>Delete the branch created in the temporary repository.</description>
<defaultValue>true</defaultValue>
</hudson.model.BooleanParameterDefinition>
<hudson.model.ChoiceParameterDefinition>
<name>GIT_ORIGIN_SCHEME</name>
<description></description>
<choices class="java.util.Arrays$ArrayList">
<a class="string-array">
<string>https://github.com/</string>
<string>git@github.com:</string>
</a>
</choices>
</hudson.model.ChoiceParameterDefinition>
<hudson.model.BooleanParameterDefinition>
<name>POST_STATUS_TO_PR</name>
<description>Posts build status updates to a nodejs/node PR.</description>
<defaultValue>false</defaultValue>
</hudson.model.BooleanParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
<hudson.plugins.throttleconcurrents.ThrottleJobProperty plugin="throttle-concurrents@2.0.1">
<maxConcurrentPerNode>0</maxConcurrentPerNode>
<maxConcurrentTotal>0</maxConcurrentTotal>
<categories class="java.util.concurrent.CopyOnWriteArrayList"/>
<throttleEnabled>false</throttleEnabled>
<throttleOption>project</throttleOption>
<limitOneJobWithMatchingParams>false</limitOneJobWithMatchingParams>
<paramsToUseForLimit></paramsToUseForLimit>
</hudson.plugins.throttleconcurrents.ThrottleJobProperty>
</properties>
<scm class="hudson.scm.NullSCM"/>
<assignedNode>jenkins-workspace</assignedNode>
<canRoam>false</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers/>
<concurrentBuild>true</concurrentBuild>
<builders>
<hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@2.35.2">
<configs>
<hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>GIT_ORIGIN_SCHEME=${GIT_ORIGIN_SCHEME}
GITHUB_REPOSITORY=${GITHUB_ORG}/${REPO_NAME}
GIT_REMOTE_REF=${GIT_REMOTE_REF}
REBASE_ONTO=${REBASE_ONTO}
TEMP_REPO=${TEMP_REPO}
TEMP_PUSH_BRANCH=${BUILD_TAG}</properties>
<textParamValueOnNewLine>false</textParamValueOnNewLine>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<projects>git-rebase</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
<triggerFromChildProjects>false</triggerFromChildProjects>
<block>
<buildStepFailureThreshold>
<name>FAILURE</name>
<ordinal>2</ordinal>
<color>RED</color>
<completeBuild>true</completeBuild>
</buildStepFailureThreshold>
<unstableThreshold>
<name>UNSTABLE</name>
<ordinal>1</ordinal>
<color>YELLOW</color>
<completeBuild>true</completeBuild>
</unstableThreshold>
<failureThreshold>
<name>FAILURE</name>
<ordinal>2</ordinal>
<color>RED</color>
<completeBuild>true</completeBuild>
</failureThreshold>
</block>
<buildAllNodesWithLabel>false</buildAllNodesWithLabel>
</hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.TriggerBuilder>
<hudson.tasks.Shell>
<command>set +x
if test $POST_STATUS_TO_PR = &quot;true&quot;; then
curl -s -o /dev/null \
--connect-timeout 5 \
-X POST \
-H &quot;Content-Type: application/json&quot; \
-d &quot;{ \
\&quot;identifier\&quot;: \&quot;test/windows-fanned\&quot;, \
\&quot;status\&quot;: \&quot;pending\&quot;, \
\&quot;url\&quot;: \&quot;${BUILD_URL}\&quot;, \
\&quot;commit\&quot;: \&quot;$(git rev-parse HEAD)\&quot;, \
\&quot;ref\&quot;: \&quot;${GIT_REMOTE_REF}\&quot;, \
\&quot;message\&quot;: \&quot;running tests\&quot; \
}&quot; \
http://github-bot.nodejs.org:3333/node/jenkins/start &amp;
fi
</command>
</hudson.tasks.Shell>
<com.tikal.jenkins.plugins.multijob.MultiJobBuilder>
<phaseName>Compilation</phaseName>
<phaseJobs>
<com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
<jobName>node-compile-windows</jobName>
<currParams>false</currParams>
<exposedSCM>false</exposedSCM>
<disableJob>false</disableJob>
<parsingRulesPath></parsingRulesPath>
<maxRetries>0</maxRetries>
<enableRetryStrategy>false</enableRetryStrategy>
<enableCondition>false</enableCondition>
<abortAllJob>true</abortAllJob>
<condition></condition>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters plugin="parameterized-trigger@2.35.2">
<properties>TEMP_REPO=${TEMP_REPO}
TEMP_BRANCH=${BUILD_TAG}
TEMP_PUSH_BRANCH=${BUILD_TAG}-binary-windows
NODE_MAJOR_VERSION=${NODE_MAJOR_VERSION}</properties>
<textParamValueOnNewLine>false</textParamValueOnNewLine>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<killPhaseOnJobResultCondition>FAILURE</killPhaseOnJobResultCondition>
<buildOnlyIfSCMChanges>false</buildOnlyIfSCMChanges>
<applyConditionOnlyIfNoSCMChanges>false</applyConditionOnlyIfNoSCMChanges>
</com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
</phaseJobs>
<continuationCondition>ALWAYS</continuationCondition>
<executionType>PARALLEL</executionType>
</com.tikal.jenkins.plugins.multijob.MultiJobBuilder>
<org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.3.6">
<condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.0">
<worstResult>
<name>SUCCESS</name>
<ordinal>0</ordinal>
<color>BLUE</color>
<completeBuild>true</completeBuild>
</worstResult>
<bestResult>
<name>SUCCESS</name>
<ordinal>0</ordinal>
<color>BLUE</color>
<completeBuild>true</completeBuild>
</bestResult>
</condition>
<buildStep class="com.tikal.jenkins.plugins.multijob.MultiJobBuilder" plugin="jenkins-multijob-plugin@1.28">
<phaseName>Binary Tests</phaseName>
<phaseJobs>
<com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
<jobName>node-test-binary-windows</jobName>
<currParams>false</currParams>
<exposedSCM>false</exposedSCM>
<disableJob>false</disableJob>
<parsingRulesPath></parsingRulesPath>
<maxRetries>0</maxRetries>
<enableRetryStrategy>false</enableRetryStrategy>
<enableCondition>false</enableCondition>
<abortAllJob>true</abortAllJob>
<condition></condition>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters plugin="parameterized-trigger@2.35.2">
<properties>TEMP_REPO=${TEMP_REPO}
TEMP_BRANCH=${BUILD_TAG}-binary-windows
NODES_SUBSET=${NODES_SUBSET}
IGNORE_FLAKY_TESTS=${IGNORE_FLAKY_TESTS}
NODE_MAJOR_VERSION=${NODE_MAJOR_VERSION}</properties>
<textParamValueOnNewLine>false</textParamValueOnNewLine>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<killPhaseOnJobResultCondition>NEVER</killPhaseOnJobResultCondition>
<buildOnlyIfSCMChanges>false</buildOnlyIfSCMChanges>
<applyConditionOnlyIfNoSCMChanges>false</applyConditionOnlyIfNoSCMChanges>
</com.tikal.jenkins.plugins.multijob.PhaseJobsConfig>
</phaseJobs>
<continuationCondition>ALWAYS</continuationCondition>
<executionType>PARALLEL</executionType>
</buildStep>
<runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/>
</org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
</builders>
<publishers>
<org.jenkins__ci.plugins.flexible__publish.FlexiblePublisher plugin="flexible-publish@0.15.2">
<publishers>
<org.jenkins__ci.plugins.flexible__publish.ConditionalPublisher>
<condition class="org.jenkins_ci.plugins.run_condition.core.AlwaysRun" plugin="run-condition@1.0"/>
<publisherList/>
<runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.0"/>
<executionStrategy class="org.jenkins_ci.plugins.flexible_publish.strategy.FailAtEndExecutionStrategy"/>
</org.jenkins__ci.plugins.flexible__publish.ConditionalPublisher>
</publishers>
</org.jenkins__ci.plugins.flexible__publish.FlexiblePublisher>
<hudson.tasks.test.AggregatedTestResultPublisher plugin="junit@1.21">
<includeFailedBuilds>true</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
<hudson.plugins.parameterizedtrigger.BuildTrigger plugin="parameterized-trigger@2.35.2">
<configs>
<hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
<configs>
<hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
<properties>REPO=${TEMP_REPO}
BRANCH_PREFIX=${BUILD_TAG}
DELETE_TEMP_BRANCH=${DELETE_TEMP_BRANCH}
</properties>
<textParamValueOnNewLine>false</textParamValueOnNewLine>
</hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
</configs>
<projects>git-delete-branches</projects>
<condition>ALWAYS</condition>
<triggerWithNoParameters>false</triggerWithNoParameters>
<triggerFromChildProjects>false</triggerFromChildProjects>
</hudson.plugins.parameterizedtrigger.BuildTriggerConfig>
</configs>
</hudson.plugins.parameterizedtrigger.BuildTrigger>
</publishers>
<buildWrappers>
<hudson.plugins.ansicolor.AnsiColorBuildWrapper plugin="ansicolor@0.5.2">
<colorMapName>xterm</colorMapName>
</hudson.plugins.ansicolor.AnsiColorBuildWrapper>
</buildWrappers>
<pollSubjobs>false</pollSubjobs>
</com.tikal.jenkins.plugins.multijob.MultiJobProject>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment