<?xml version='1.1' encoding='UTF-8'?>
<project>
  <actions/>
  <description>&lt;!-- Managed by Jenkins Job Builder --&gt;</description>
  <displayName>TCWG Build tcwg_bmk-code_size-spec2k6--llvm-arm-master-Oz</displayName>
  <keepDependencies>false</keepDependencies>
  <properties>
    <hudson.security.AuthorizationMatrixProperty>
      <inheritanceStrategy class="org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy"/>
      <permission>hudson.model.Item.Build:everyone-flat</permission>
      <permission>hudson.model.Item.Cancel:everyone-flat</permission>
      <permission>hudson.model.Item.ExtendedRead:anonymous</permission>
      <permission>hudson.model.Item.Read:anonymous</permission>
    </hudson.security.AuthorizationMatrixProperty>
    <jenkins.model.BuildDiscarderProperty>
      <strategy class="hudson.tasks.LogRotator">
        <daysToKeep>20</daysToKeep>
        <numToKeep>-1</numToKeep>
        <artifactDaysToKeep>-1</artifactDaysToKeep>
        <artifactNumToKeep>-1</artifactNumToKeep>
      </strategy>
    </jenkins.model.BuildDiscarderProperty>
    <hudson.plugins.buildblocker.BuildBlockerProperty plugin="build-blocker-plugin@1.7.9">
      <useBuildBlocker>true</useBuildBlocker>
      <blockLevel>GLOBAL</blockLevel>
      <scanQueueFor>ALL</scanQueueFor>
      <blockingJobs>tcwg_bmk-code_size-spec2k6--llvm-arm-master-Oz-bisect</blockingJobs>
    </hudson.plugins.buildblocker.BuildBlockerProperty>
    <hudson.model.ParametersDefinitionProperty>
      <parameterDefinitions>
        <hudson.model.StringParameterDefinition>
          <name>llvm_git</name>
          <description>llvm git_url#branch/sha1 to build, or &apos;default&apos;, &apos;baseline&apos; or &apos;jenkins-scm&apos;, or pw://series/&lt;id&gt; to build with patches from patchwork (&apos;precommit&apos; mode, use &apos;pw://series/&lt;id&gt;/retrigger/&apos; to force a rebuild)</description>
          <defaultValue>default</defaultValue>
          <trim>false</trim>
        </hudson.model.StringParameterDefinition>
        <hudson.model.ChoiceParameterDefinition>
          <name>update_baseline</name>
          <description>What to do with baseline in this build</description>
          <choices class="java.util.Arrays$ArrayList">
            <a class="string-array">
              <string>onsuccess</string>
              <string>force</string>
              <string>init</string>
              <string>ignore</string>
            </a>
          </choices>
        </hudson.model.ChoiceParameterDefinition>
        <hudson.model.ChoiceParameterDefinition>
          <name>notify</name>
          <description>Whether to notify developers about the result of this build</description>
          <choices class="java.util.Arrays$ArrayList">
            <a class="string-array">
              <string>ignore</string>
              <string>onregression</string>
              <string>precommit</string>
            </a>
          </choices>
        </hudson.model.ChoiceParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>rr_stage</name>
          <description>Describe the current round-robin stage for this run (informative only)</description>
          <defaultValue>build</defaultValue>
          <trim>false</trim>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>extra_build_params</name>
          <description>Extra parameters to pass to the build script; can be used to override settings extracted from ci_project/ci_config</description>
          <defaultValue></defaultValue>
          <trim>false</trim>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>distro</name>
          <description>Distro image to use</description>
          <defaultValue>default</defaultValue>
          <trim>false</trim>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>scripts_branch</name>
          <description>Scripts revision to use</description>
          <defaultValue>master</defaultValue>
          <trim>false</trim>
        </hudson.model.StringParameterDefinition>
        <hudson.model.StringParameterDefinition>
          <name>bmk_branch</name>
          <description>Benchmark scripts revision to use</description>
          <defaultValue>master</defaultValue>
          <trim>false</trim>
        </hudson.model.StringParameterDefinition>
      </parameterDefinitions>
    </hudson.model.ParametersDefinitionProperty>
  </properties>
  <scm class="org.jenkinsci.plugins.multiplescms.MultiSCM" plugin="multiple-scms@0.8">
    <scms>
      <hudson.plugins.git.GitSCM plugin="git@5.2.1">
        <configVersion>2</configVersion>
        <userRemoteConfigs>
          <hudson.plugins.git.UserRemoteConfig>
            <name>origin</name>
            <refspec>+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*</refspec>
            <url>https://gitlab.com/LinaroLtd/tcwg/jenkins-scripts.git</url>
          </hudson.plugins.git.UserRemoteConfig>
        </userRemoteConfigs>
        <branches>
          <hudson.plugins.git.BranchSpec>
            <name>$scripts_branch</name>
          </hudson.plugins.git.BranchSpec>
        </branches>
        <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
        <gitTool>Default</gitTool>
        <submoduleCfg class="list"/>
        <extensions>
          <hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
            <relativeTargetDir>jenkins-scripts</relativeTargetDir>
          </hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
          <hudson.plugins.git.extensions.impl.CleanBeforeCheckout>
            <deleteUntrackedNestedRepositories>false</deleteUntrackedNestedRepositories>
          </hudson.plugins.git.extensions.impl.CleanBeforeCheckout>
          <hudson.plugins.git.extensions.impl.CloneOption>
            <shallow>false</shallow>
            <noTags>false</noTags>
            <reference>/home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git</reference>
            <depth>1</depth>
            <honorRefspec>false</honorRefspec>
          </hudson.plugins.git.extensions.impl.CloneOption>
          <hudson.plugins.git.extensions.impl.PruneStaleBranch/>
        </extensions>
      </hudson.plugins.git.GitSCM>
      <hudson.plugins.git.GitSCM plugin="git@5.2.1">
        <configVersion>2</configVersion>
        <userRemoteConfigs>
          <hudson.plugins.git.UserRemoteConfig>
            <name>origin</name>
            <refspec>+refs/heads/main:refs/remotes/origin/main</refspec>
            <url>https://github.com/llvm/llvm-project.git</url>
          </hudson.plugins.git.UserRemoteConfig>
        </userRemoteConfigs>
        <branches>
          <hudson.plugins.git.BranchSpec>
            <name>refs/heads/main</name>
          </hudson.plugins.git.BranchSpec>
        </branches>
        <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
        <gitTool>Default</gitTool>
        <submoduleCfg class="list"/>
        <extensions>
          <hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
            <relativeTargetDir>llvm</relativeTargetDir>
          </hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
          <hudson.plugins.git.extensions.impl.CleanBeforeCheckout>
            <deleteUntrackedNestedRepositories>false</deleteUntrackedNestedRepositories>
          </hudson.plugins.git.extensions.impl.CleanBeforeCheckout>
          <hudson.plugins.git.extensions.impl.CloneOption>
            <shallow>true</shallow>
            <noTags>true</noTags>
            <reference>/home/tcwg-buildslave/snapshots-ref/llvm-project.git</reference>
            <depth>1</depth>
            <honorRefspec>false</honorRefspec>
          </hudson.plugins.git.extensions.impl.CloneOption>
          <hudson.plugins.git.extensions.impl.PruneStaleBranch/>
        </extensions>
      </hudson.plugins.git.GitSCM>
    </scms>
  </scm>
  <assignedNode>tcwg-build_bmk &amp;&amp; tcwg-armv8_64</assignedNode>
  <canRoam>false</canRoam>
  <disabled>true</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers>
    <hudson.triggers.SCMTrigger>
      <spec>H H H/3 * *</spec>
      <ignorePostCommitHooks>false</ignorePostCommitHooks>
    </hudson.triggers.SCMTrigger>
  </triggers>
  <concurrentBuild>false</concurrentBuild>
  <customWorkspace>workspace/tcwg_bmk_$EXECUTOR_NUMBER</customWorkspace>
  <builders>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
set -ex
# Delete artifacts now to avoid re-using stale artifacts if
# below docker-run.sh fails to start up a container.
rm -rf artifacts/
mkdir -p artifacts/jenkins

build_name=&quot;#$BUILD_NUMBER&quot;
echo &quot;$build_name&quot; &gt; artifacts/jenkins/build-name

git -C jenkins-scripts submodule update --init --remote

if [ &quot;False&quot; = &quot;True&quot; ]; then
  cat &gt;&gt; artifacts/jenkins/run-build.env &lt;&lt;EOF
update_baseline=ignore
EOF
fi

cat &gt;&gt; artifacts/jenkins/run-build.env &lt;&lt;EOF
build_name=&quot;$build_name&quot;
EOF
</command>
        <configuredLocalRules/>
        <unstableReturn>125</unstableReturn>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

# Skip SCM-triggered builds if there are other builds in
# the queue.  We need to process all pending bisection-triggered
# builds before fetching a new batch of upstream changes.
# Re. skipping post-commit build if pre-commit queue is
# not empty -- it&apos;s just a favor to pre-commit builds.
if [ x&quot;${BUILD_CAUSE_SCMTRIGGER-false}&quot; = x&quot;true&quot; ] \
  || [ x&quot;${BUILD_CAUSE_TIMERTRIGGER-false}&quot; = x&quot;true&quot; ]; then
  for job_type in build; do
    url=&quot;${JOB_URL%-build/}-$job_type&quot;
    inQueue=$(curl --retry 5 --max-time 5 -s &quot;$url/api/xml?tree=inQueue&quot; \
      | sed -e &quot;s#.*&lt;inQueue&gt;\(.*\)&lt;/inQueue&gt;.*#\1#&quot;)
    if [ &quot;$inQueue&quot; = &quot;true&quot; ]; then
      echo &quot;SKIP SCM BUILD&quot;
      touch artifacts/jenkins/skip-scm-build
      build_name=&quot;$build_name-skip-scm-build&quot;
      echo &quot;$build_name&quot; &gt; artifacts/jenkins/build-name

      # Mark build unstable aka a skipped build
      exit 125
    fi
  done
fi

trap &quot;&quot; EXIT
</command>
        <configuredLocalRules/>
        <unstableReturn>125</unstableReturn>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

repo=&apos;ssh://tcwg-buildslave@bkp.tcwglab/home/tcwg-buildslave/base-artifacts/tcwg_bmk-code_size-spec2k6/llvm-arm-master-Oz.git&apos;
branch=&apos;linaro-local/ci/tcwg_bmk-code_size-spec2k6/llvm-arm-master-Oz&apos;
git_result=$(git ls-remote --heads &quot;$repo&quot; &quot;refs/heads/$branch&quot;)
if [ -d base-artifacts ] &amp;&amp; [ &quot;$git_result&quot; != &quot;&quot; ]; then
  git -C base-artifacts fetch &quot;$repo&quot; &quot;refs/heads/$branch&quot; || true
fi

docker_opts=(
  --distro $distro
  --arch armhf
  --node $NODE_NAME
  --ssh_info true
  --node_labels &quot;$NODE_LABELS&quot;
)

./jenkins-scripts/start-container-docker.sh --prefix build_ \
  &quot;${docker_opts[@]}&quot; &gt; build_container.sh
source build_container.sh
trap &quot;cleanup_all_containers&quot; EXIT

# Run the build script to fetch base-artifacts/, which are
# required to fetch baseline sources to apply patches to in
# pw-apply.sh below.  This also initializes the build manifest
# with all below settings; we then import this manifest below.
#
# The parameter __finish_after makes the build script stop
# after fetching the baseline and &quot;__&quot; avoids saving this parameter
# in the manifest, so that we don&apos;t see this option in the main
# run of the build script below.
build_container_exec \
  ./jenkins-scripts/tcwg_bmk-build.sh \
  %%rr[top_artifacts] artifacts \
  ==rr[ci_project] &apos;tcwg_bmk-code_size-spec2k6&apos; \
  ==rr[ci_config] &apos;llvm-arm-master-Oz&apos; \
  $extra_build_params \
  --bmk_branch &quot;$bmk_branch&quot; \
  --scripts_branch &quot;$scripts_branch&quot; \
  ==rr[mode] &quot;build&quot; \
  ==rr[update_baseline] &quot;$update_baseline&quot; \
  --BUILD_URL &quot;$BUILD_URL&quot; \
  __finish_at reset_artifacts

echo &quot;$rr_stage&quot; &gt; artifacts/rr_stage.txt

cat &gt;&gt; artifacts/jenkins/run-build.env &lt;&lt;EOF
docker_opts=(${docker_opts[@]+$(printf &quot;%q$IFS&quot; &quot;${docker_opts[@]}&quot;)})
source build_container.sh
trap &quot;cleanup_all_containers&quot; EXIT
EOF

# Now that we have &quot;trap cleanup_all_containers EXIT&quot; in
# run-build.env we need to reset the trap at the end of every
# step to preserve container[s] for the next step.
trap &quot;&quot; EXIT
</command>
        <configuredLocalRules/>
        <unstableReturn>125</unstableReturn>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

branch_opt=()
# 1 to skip jenkins-scripts
i=1
for c in llvm; do
  eval &quot;g=\$${c}_git&quot;
  if [ x&quot;$g&quot; = x&quot;default&quot; ]; then
    if [ x&quot;${BUILD_CAUSE_SCMTRIGGER-false}&quot; = x&quot;true&quot; ] \
      || [ x&quot;${BUILD_CAUSE_TIMERTRIGGER-false}&quot; = x&quot;true&quot; ]; then
      g=&quot;jenkins-scm&quot;
    else
      g=&quot;baseline&quot;
    fi
  fi
  if [ x&quot;$g&quot; = x&quot;jenkins-scm&quot; ] || [ &quot;$update_baseline&quot; = &quot;init&quot; ]; then
    eval &quot;gb=\$GIT_BRANCH_$i&quot;
    gb=$(echo $gb | sed &apos;s+origin/++&apos;)
    eval &quot;g=\$GIT_URL_$i#$gb&quot;
  fi
  i=$(($i+1))

  if [ x&quot;$g&quot; != x&quot;baseline&quot; ]; then
    build_name=&quot;$build_name-$c&quot;
    branch_opt+=(&quot;==rr[${c}_git]&quot; &quot;$g&quot;)
  fi
done

echo &quot;$build_name&quot; &gt; artifacts/jenkins/build-name

cat &gt;&gt; artifacts/jenkins/run-build.env &lt;&lt;EOF
build_name=&quot;$build_name&quot;
branch_opt=(${branch_opt[@]+$(printf &quot;%q$IFS&quot; &quot;${branch_opt[@]}&quot;)})
EOF

trap &quot;&quot; EXIT
</command>
        <configuredLocalRules/>
        <unstableReturn>125</unstableReturn>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

# Update baseline branch of base-artifacts.
# If we made it this far, then the build is successful
# (possibly because it was forced to be declared successful).
if [ &quot;$update_baseline&quot; = &quot;ignore&quot; ]; then
  trap &quot;&quot; EXIT
  exit 0
fi

# We may need jira token while rewriting history.
if [ -f $HOME/.jipdate.yml ]; then
  (
    # BE CAREFUL WITH TCWG_JIRA_TOKEN
    set +x
    build_container_exec \
      sed -i -e &quot;s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/&quot; \
      &quot;$HOME/.jipdate.yml&quot;
  )
fi

build_container_exec \
  ./jenkins-scripts/rr/round-robin-baseline.sh \
  @@rr[top_artifacts] artifacts \
  __build_script tcwg_bmk-build.sh \
  __push_base_artifacts true \
  __rewrite_base_artifacts true \
  __commit_artifacts false \
  __rewrite_num 100 \
  &amp;&gt; ./artifacts/jenkins/rewrite-false.log &amp;

res=0 &amp;&amp; wait $! || res=$?

# Compress big files in artifacts/NN-* directories to save disk space
# on ci.linaro.org.
find artifacts/ -size +1M ! -name &quot;*.xz&quot; \
  -path &quot;artifacts/[0-9]*&quot; -print0 \
  | xargs -0 -i@ xz -T0 @

if [ $res != 0 ]; then
  echo &quot;maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org&quot; \
    &gt; artifacts/jenkins/error-mail-recipients.txt
  echo -e &quot;$BUILD_URL\nERROR: round-robin-baseline.sh failed&quot; \
    &gt;&gt; artifacts/jenkins/error-mail-body.txt
  echo &quot;ERROR: round-robin-baseline.sh failed&quot;
  # We have failed to update the baseline, so let&apos;s fail and
  # not notify developers.
  exit 1
fi

trap &quot;&quot; EXIT
</command>
        <configuredLocalRules/>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

# Run the build script to from the manifest created above.
#
# The parameter __start_at makes the build script start right
# where the above run finished.  This allows us to use read-only
# bind-mount for base-artifacts/, which, otherwise, may require
# multi-gig rsync.
build_container_exec \
  ./jenkins-scripts/tcwg_bmk-build.sh \
  @@rr[top_artifacts] artifacts \
  &quot;${branch_opt[@]}&quot; \
  __start_at reset_artifacts+ &amp;
res=0 &amp;&amp; wait $! || res=$?

# Update build_name
if [ -f artifacts/results ]; then
  build_name=&quot;$build_name-R$(tail -n1 artifacts/results)&quot;
fi
if [ &quot;$update_baseline&quot; != &quot;onsuccess&quot; ]; then
  build_name=&quot;$build_name-$update_baseline&quot;
fi

if [ -f artifacts/trigger-bisect ]; then
  build_name=&quot;$build_name-trigger-bisect&quot;
fi
echo &quot;$build_name&quot; &gt; artifacts/jenkins/build-name

# Everything but 0 and $INTERNAL_FAILURE is an unexpected exit code,
# so stop here and do nothing else.  From jenkins point of view ...
# - if $res==0: build is successful, so proceed with all
#   followup steps -- notify, push, trigger precommit.
# - if $res==123: build has a regression, so proceed with triggering
#   followup builds and sending precommit notifications; but stop
#   before run-push-baseline by checking artifacts/failed.
# - if $res is anything else: build has an unexpected failure, so
#   skip the rest of the steps by setting UNSTABLE build status.
#   This will cause all followup conditional-steps to skip due to
#   &quot;current-status&quot; condition.
#
# See comment before round-robin.sh:check_regression() for details.
case $res in
  0)
    ;;
  123)
    echo 123 &gt; artifacts/failed
    ;;
  *)
    res=125
    ;;
esac

if [ $res = 125 ]; then
  # We had unexpected failure in the build scripts, so can&apos;t
  # proceed with triggers and notifications.  Mark this build
  # as UNSTABLE, which will skip all following conditional-steps.
  exit 125
fi

cat &gt;&gt; artifacts/jenkins/run-build.env &lt;&lt;EOF
build_name=&quot;$build_name&quot;
EOF

trap &quot;&quot; EXIT
</command>
        <configuredLocalRules/>
        <unstableReturn>125</unstableReturn>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
      <runCondition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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>
      </runCondition>
      <conditionalbuilders>
        <hudson.tasks.Shell>
          <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

for i in artifacts/trigger-build-* artifacts/trigger-bisect; do
  if [ -f $i ]; then
    echo &quot;distro=$distro&quot; &gt;&gt; $i
    echo &quot;scripts_branch=$scripts_branch&quot; &gt;&gt; $i
    echo &quot;bmk_branch=$bmk_branch&quot; &gt;&gt; $i
  fi
done

trap &quot;&quot; EXIT
</command>
          <configuredLocalRules/>
        </hudson.tasks.Shell>
        <hudson.plugins.parameterizedtrigger.TriggerBuilder plugin="parameterized-trigger@787.v665fcf2a_830b_">
          <configs>
            <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
              <configs class="empty-list"/>
              <configFactories>
                <hudson.plugins.parameterizedtrigger.FileBuildParameterFactory>
                  <filePattern>artifacts/trigger-build-*</filePattern>
                  <noFilesFoundAction>SKIP</noFilesFoundAction>
                </hudson.plugins.parameterizedtrigger.FileBuildParameterFactory>
              </configFactories>
              <projects>tcwg_bmk-code_size-spec2k6--llvm-arm-master-Oz-build</projects>
              <condition>ALWAYS</condition>
              <triggerWithNoParameters>false</triggerWithNoParameters>
              <triggerFromChildProjects>false</triggerFromChildProjects>
              <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
            </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
            <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
              <configs>
                <hudson.plugins.parameterizedtrigger.FileBuildParameters>
                  <propertiesFile>artifacts/trigger-bisect</propertiesFile>
                  <failTriggerOnMissing>true</failTriggerOnMissing>
                  <textParamValueOnNewLine>false</textParamValueOnNewLine>
                  <useMatrixChild>false</useMatrixChild>
                  <onlyExactRuns>false</onlyExactRuns>
                </hudson.plugins.parameterizedtrigger.FileBuildParameters>
              </configs>
              <projects>tcwg_bmk-code_size-spec2k6--llvm-arm-master-Oz-bisect</projects>
              <condition>ALWAYS</condition>
              <triggerWithNoParameters>false</triggerWithNoParameters>
              <triggerFromChildProjects>false</triggerFromChildProjects>
              <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
            </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
          </configs>
        </hudson.plugins.parameterizedtrigger.TriggerBuilder>
      </conditionalbuilders>
    </org.jenkinsci.plugins.conditionalbuildstep.ConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

if [ -f artifacts/failed ]; then
  # Only send notifications for forced successful
  # (aka &quot;onregression&quot;) builds; never for failed builds.
  echo &quot;Build failed. Using option notify=ignore.&quot;
  notify=ignore
fi

# Basic notification -- create entry in interesting-commits.
# Note that we add --notify to the manifest -- we will need this
# later in round-robin-baseline.sh when re-writing history
# to update notifications files in interesting-commits and jira.
build_container_exec \
  ./jenkins-scripts/rr/round-robin-notify.sh \
  @@rr[top_artifacts] artifacts --notify &quot;$notify&quot; \
  __stage init __verbose true \
  __build_script tcwg_bmk-build.sh \
  &amp;&gt; ./artifacts/jenkins/notify-init.log &amp;

if ! wait $!; then
  echo &quot;maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org&quot; \
    &gt; artifacts/jenkins/error-mail-recipients.txt
  echo -e &quot;$BUILD_URL\nERROR: notify-init failed\n&quot; \
    &gt;&gt; artifacts/jenkins/error-mail-body.txt
  echo &quot;ERROR: notify-init failed&quot;
  exit 1
fi

# Full notification
echo &quot;NOTE: Notify developers about this build&quot;

build_container_exec \
  ./jenkins-scripts/rr/round-robin-notify.sh \
  @@rr[top_artifacts] artifacts __stage full __verbose true \
  __build_script tcwg_bmk-build.sh \
  &amp;&gt; ./artifacts/jenkins/notify-full.log &amp;

if ! wait $!; then
  echo &quot;maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org&quot; \
    &gt; artifacts/jenkins/error-mail-recipients.txt
  echo -e &quot;$BUILD_URL\nERROR: notify-full failed\n&quot; \
    &gt;&gt; artifacts/jenkins/error-mail-body.txt
  echo &quot;ERROR: notify-full failed&quot;
fi

# Failsafe for avoid spamming developers.
if [ &quot;$notify&quot; = &quot;ignore&quot; ] \
  &amp;&amp; [ -f artifacts/jenkins/mail-recipients.txt ]; then
  echo &quot;maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org&quot; \
    &gt; artifacts/jenkins/error-mail-recipients.txt
  echo -e &quot;$BUILD_URL\nERROR: tried to unexpectedly notify developers\n&quot; \
    &gt;&gt; artifacts/jenkins/error-mail-body.txt
  mv artifacts/jenkins/mail-recipients.txt \
  artifacts/jenkins/mail-recipients.bak
fi

trap &quot;&quot; EXIT
</command>
        <configuredLocalRules/>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

if [ -f artifacts/failed ]; then
  # Mark failed build as FAILURE; no further steps will run.
  exit $(cat artifacts/failed)
fi
# Only successful builds run beyond this point.

trap &quot;&quot; EXIT
</command>
        <configuredLocalRules/>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex

# Update baseline branch of base-artifacts.
# If we made it this far, then the build is successful
# (possibly because it was forced to be declared successful).
if [ &quot;$update_baseline&quot; = &quot;ignore&quot; ]; then
  trap &quot;&quot; EXIT
  exit 0
fi

# We may need jira token while rewriting history.
if [ -f $HOME/.jipdate.yml ]; then
  (
    # BE CAREFUL WITH TCWG_JIRA_TOKEN
    set +x
    build_container_exec \
      sed -i -e &quot;s/#TCWG_JIRA_TOKEN#/$TCWG_JIRA_TOKEN/&quot; \
      &quot;$HOME/.jipdate.yml&quot;
  )
fi

build_container_exec \
  ./jenkins-scripts/rr/round-robin-baseline.sh \
  @@rr[top_artifacts] artifacts \
  __build_script tcwg_bmk-build.sh \
  __push_base_artifacts true \
  __rewrite_base_artifacts true \
  __commit_artifacts true \
  __rewrite_num 100 \
  &amp;&gt; ./artifacts/jenkins/rewrite-true.log &amp;

res=0 &amp;&amp; wait $! || res=$?

# Compress big files in artifacts/NN-* directories to save disk space
# on ci.linaro.org.
find artifacts/ -size +1M ! -name &quot;*.xz&quot; \
  -path &quot;artifacts/[0-9]*&quot; -print0 \
  | xargs -0 -i@ xz -T0 @

if [ $res != 0 ]; then
  echo &quot;maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org&quot; \
    &gt; artifacts/jenkins/error-mail-recipients.txt
  echo -e &quot;$BUILD_URL\nERROR: round-robin-baseline.sh failed&quot; \
    &gt;&gt; artifacts/jenkins/error-mail-body.txt
  echo &quot;ERROR: round-robin-baseline.sh failed&quot;
  # We have failed to update the baseline, so let&apos;s fail and
  # not notify developers.
  exit 1
fi

trap &quot;&quot; EXIT
</command>
        <configuredLocalRules/>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.plugins.parameterizedtrigger.TriggerBuilder" plugin="parameterized-trigger@787.v665fcf2a_830b_">
        <configs>
          <hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
            <configs>
              <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
                <properties>ci_project=tcwg_bmk-code_size-spec2k6
ci_config=llvm-arm-master-Oz
</properties>
                <textParamValueOnNewLine>false</textParamValueOnNewLine>
              </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters>
            </configs>
            <projects>tcwg-update-lnt-results</projects>
            <condition>ALWAYS</condition>
            <triggerWithNoParameters>false</triggerWithNoParameters>
            <triggerFromChildProjects>false</triggerFromChildProjects>
            <buildAllNodesWithLabel>false</buildAllNodesWithLabel>
          </hudson.plugins.parameterizedtrigger.BlockableBuildTriggerConfig>
        </configs>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
    <org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater plugin="build-name-setter@2.4.1">
      <buildName>artifacts/jenkins/build-name</buildName>
      <macroTemplate>#${BUILD_NUMBER}</macroTemplate>
      <fromFile>true</fromFile>
      <fromMacro>false</fromMacro>
      <macroFirst>false</macroFirst>
    </org.jenkinsci.plugins.buildnameupdater.BuildNameUpdater>
    <org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder plugin="conditional-buildstep@1.4.3">
      <condition class="org.jenkins_ci.plugins.run_condition.core.StatusCondition" plugin="run-condition@1.7">
        <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="hudson.tasks.Shell">
        <command>#!/bin/bash
source artifacts/jenkins/run-build.env
set -ex
# The &quot;trap cleanup_all_containers EXIT&quot; statement in
# artifacts/jenkins/run-build.env will remove build and precommit
# containers.
</command>
        <configuredLocalRules/>
        <unstableReturn>0</unstableReturn>
      </buildStep>
      <runner class="org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail" plugin="run-condition@1.7"/>
    </org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder>
  </builders>
  <publishers>
    <hudson.tasks.ArtifactArchiver>
      <artifacts>artifacts/**</artifacts>
      <allowEmptyArchive>false</allowEmptyArchive>
      <onlyIfSuccessful>false</onlyIfSuccessful>
      <fingerprint>false</fingerprint>
      <defaultExcludes>true</defaultExcludes>
      <caseSensitive>true</caseSensitive>
      <followSymlinks>true</followSymlinks>
    </hudson.tasks.ArtifactArchiver>
    <hudson.plugins.emailext.ExtendedEmailPublisher plugin="email-ext@2.104">
      <recipientList>${FILE,path=&quot;artifacts/jenkins/mail-recipients.txt&quot;}
</recipientList>
      <configuredTriggers>
        <hudson.plugins.emailext.plugins.trigger.FailureTrigger>
          <email>
            <recipientList></recipientList>
            <subject>$PROJECT_DEFAULT_SUBJECT</subject>
            <body>$PROJECT_DEFAULT_CONTENT</body>
            <recipientProviders>
              <hudson.plugins.emailext.plugins.recipients.ListRecipientProvider/>
            </recipientProviders>
            <attachBuildLog>false</attachBuildLog>
            <compressBuildLog>false</compressBuildLog>
          </email>
        </hudson.plugins.emailext.plugins.trigger.FailureTrigger>
        <hudson.plugins.emailext.plugins.trigger.SuccessTrigger>
          <email>
            <recipientList></recipientList>
            <subject>$PROJECT_DEFAULT_SUBJECT</subject>
            <body>$PROJECT_DEFAULT_CONTENT</body>
            <recipientProviders>
              <hudson.plugins.emailext.plugins.recipients.ListRecipientProvider/>
            </recipientProviders>
            <attachBuildLog>false</attachBuildLog>
            <compressBuildLog>false</compressBuildLog>
          </email>
        </hudson.plugins.emailext.plugins.trigger.SuccessTrigger>
      </configuredTriggers>
      <contentType>text/plain</contentType>
      <defaultSubject>${FILE,path=&quot;artifacts/jenkins/mail-subject.txt&quot;}
</defaultSubject>
      <defaultContent>${FILE,path=&quot;artifacts/jenkins/mail-body.txt&quot;}
</defaultContent>
      <attachmentsPattern></attachmentsPattern>
      <presendScript></presendScript>
      <postsendScript></postsendScript>
      <attachBuildLog>false</attachBuildLog>
      <compressBuildLog>false</compressBuildLog>
      <replyTo>linaro-toolchain@lists.linaro.org</replyTo>
      <saveOutput>false</saveOutput>
      <disabled>false</disabled>
    </hudson.plugins.emailext.ExtendedEmailPublisher>
    <hudson.plugins.emailext.ExtendedEmailPublisher plugin="email-ext@2.104">
      <recipientList>${FILE,path=&quot;artifacts/jenkins/error-mail-recipients.txt&quot;}
</recipientList>
      <configuredTriggers>
        <hudson.plugins.emailext.plugins.trigger.AbortedTrigger>
          <email>
            <recipientList></recipientList>
            <subject>$PROJECT_DEFAULT_SUBJECT</subject>
            <body>$PROJECT_DEFAULT_CONTENT</body>
            <recipientProviders>
              <hudson.plugins.emailext.plugins.recipients.ListRecipientProvider/>
            </recipientProviders>
            <attachBuildLog>false</attachBuildLog>
            <compressBuildLog>false</compressBuildLog>
          </email>
        </hudson.plugins.emailext.plugins.trigger.AbortedTrigger>
        <hudson.plugins.emailext.plugins.trigger.FailureTrigger>
          <email>
            <recipientList></recipientList>
            <subject>$PROJECT_DEFAULT_SUBJECT</subject>
            <body>$PROJECT_DEFAULT_CONTENT</body>
            <recipientProviders>
              <hudson.plugins.emailext.plugins.recipients.ListRecipientProvider/>
            </recipientProviders>
            <attachBuildLog>false</attachBuildLog>
            <compressBuildLog>false</compressBuildLog>
          </email>
        </hudson.plugins.emailext.plugins.trigger.FailureTrigger>
        <hudson.plugins.emailext.plugins.trigger.SuccessTrigger>
          <email>
            <recipientList></recipientList>
            <subject>$PROJECT_DEFAULT_SUBJECT</subject>
            <body>$PROJECT_DEFAULT_CONTENT</body>
            <recipientProviders>
              <hudson.plugins.emailext.plugins.recipients.ListRecipientProvider/>
            </recipientProviders>
            <attachBuildLog>false</attachBuildLog>
            <compressBuildLog>false</compressBuildLog>
          </email>
        </hudson.plugins.emailext.plugins.trigger.SuccessTrigger>
      </configuredTriggers>
      <contentType>default</contentType>
      <defaultSubject>$DEFAULT_SUBJECT</defaultSubject>
      <defaultContent>${FILE,path=&quot;artifacts/jenkins/error-mail-body.txt&quot;}
</defaultContent>
      <attachmentsPattern></attachmentsPattern>
      <presendScript></presendScript>
      <postsendScript></postsendScript>
      <attachBuildLog>false</attachBuildLog>
      <compressBuildLog>false</compressBuildLog>
      <replyTo>$DEFAULT_REPLYTO</replyTo>
      <saveOutput>false</saveOutput>
      <disabled>false</disabled>
    </hudson.plugins.emailext.ExtendedEmailPublisher>
  </publishers>
  <buildWrappers>
    <hudson.plugins.build__timeout.BuildTimeoutWrapper plugin="build-timeout@1.32">
      <strategy class="hudson.plugins.build_timeout.impl.AbsoluteTimeOutStrategy">
        <timeoutMinutes>600</timeoutMinutes>
      </strategy>
      <operationList>
        <hudson.plugins.build__timeout.operations.AbortOperation/>
      </operationList>
    </hudson.plugins.build__timeout.BuildTimeoutWrapper>
    <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="timestamper@1.26"/>
    <com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper plugin="ssh-agent@346.vda_a_c4f2c8e50">
      <credentialIds>
        <string>e0958a95-204f-4c14-a66c-5e2be6c5d50a</string>
        <string>tcwg-buildslave-20220725</string>
      </credentialIds>
      <ignoreMissing>false</ignoreMissing>
    </com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper>
    <org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper plugin="credentials-binding@657.v2b_19db_7d6e6d">
      <bindings>
        <org.jenkinsci.plugins.credentialsbinding.impl.StringBinding>
          <credentialsId>TCWG_JIRA_TOKEN</credentialsId>
          <variable>TCWG_JIRA_TOKEN</variable>
        </org.jenkinsci.plugins.credentialsbinding.impl.StringBinding>
      </bindings>
    </org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
  </buildWrappers>
</project>