<?xml version='1.1' encoding='UTF-8'?>
<project>
  <actions/>
  <description>&lt;!-- Managed by Jenkins Job Builder --&gt;</description>
  <displayName>TCWG CCC Cleanup stale results</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.model.ParametersDefinitionProperty>
      <parameterDefinitions>
        <hudson.model.ChoiceParameterDefinition>
          <name>cleanup_gc</name>
          <description>Cleanup the git repositories</description>
          <choices class="java.util.Arrays$ArrayList">
            <a class="string-array">
              <string>true</string>
              <string>dryrun</string>
              <string>false</string>
            </a>
          </choices>
        </hudson.model.ChoiceParameterDefinition>
        <hudson.model.ChoiceParameterDefinition>
          <name>cleanup_annex</name>
          <description>Cleanup the annex results files</description>
          <choices class="java.util.Arrays$ArrayList">
            <a class="string-array">
              <string>dryrun</string>
              <string>true</string>
              <string>false</string>
            </a>
          </choices>
        </hudson.model.ChoiceParameterDefinition>
        <hudson.model.BooleanParameterDefinition>
          <name>verbose</name>
          <description>Whether to be verbose</description>
          <defaultValue>false</defaultValue>
        </hudson.model.BooleanParameterDefinition>
      </parameterDefinitions>
    </hudson.model.ParametersDefinitionProperty>
  </properties>
  <scm class="hudson.plugins.git.GitSCM" plugin="git@5.2.1">
    <configVersion>2</configVersion>
    <userRemoteConfigs>
      <hudson.plugins.git.UserRemoteConfig>
        <name>origin</name>
        <refspec>+refs/heads/master:refs/remotes/origin/master</refspec>
        <url>https://gitlab.com/LinaroLtd/tcwg/jenkins-scripts.git</url>
      </hudson.plugins.git.UserRemoteConfig>
    </userRemoteConfigs>
    <branches>
      <hudson.plugins.git.BranchSpec>
        <name>master</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>
  </scm>
  <assignedNode>tcwg-bkp-01</assignedNode>
  <canRoam>false</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers>
    <hudson.triggers.TimerTrigger>
      <spec>@daily</spec>
    </hudson.triggers.TimerTrigger>
  </triggers>
  <concurrentBuild>false</concurrentBuild>
  <customWorkspace>workspace/tcwg-cleanup-stale-results</customWorkspace>
  <builders>
    <hudson.tasks.Shell>
      <command>#!/bin/bash
set -ex

rm -rf artifacts
mkdir artifacts

./jenkins-scripts/tcwg-cleanup-stale-results.sh \
--cleanup_gc $cleanup_gc \
--cleanup_annex $cleanup_annex \
--verbose $verbose

if [ x&quot;$(cat list_annex.exist_but_not_referenced.txt | wc -l)&quot; != x&quot;0&quot; ]; then
  (
    if [ &quot;$cleanup_annex&quot; = &quot;dryrun&quot; ]; then
      echo &quot;# Cleanup-stale-results was run in DRYRUN mode.&quot;
      echo &quot;# Please double check and run this script manually.&quot;
    else
      echo &quot;# Cleanup-stale-results executed the following&quot;
    fi
    echo &quot;#&quot;
    echo &quot;# List of missing results :&quot;
    sed -e &apos;s|^|#     |&apos; list_annex.referenced_but_not_exist.txt
    echo &quot;#&quot;
    echo &quot;# List of useless results :&quot;
    sed -e &apos;s|^|rm -f |&apos; list_annex.exist_but_not_referenced.txt
    echo &quot;&quot;
  )
  exit 1
fi &gt; artifacts/email-body.txt
</command>
      <configuredLocalRules/>
    </hudson.tasks.Shell>
  </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>maxim.kuvyrkov@linaro.org, laurent.alfonsi@linaro.org</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>
      </configuredTriggers>
      <contentType>text/plain</contentType>
      <defaultSubject>$DEFAULT_SUBJECT</defaultSubject>
      <defaultContent>${FILE,path=&quot;artifacts/email-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"/>
    <org.jenkinsci.plugins.buildnamesetter.BuildNameSetter plugin="build-name-setter@2.4.1">
      <template>#${BUILD_NUMBER}</template>
      <runAtStart>true</runAtStart>
      <runAtEnd>true</runAtEnd>
    </org.jenkinsci.plugins.buildnamesetter.BuildNameSetter>
  </buildWrappers>
</project>