<?xml version="1.0" encoding="UTF-8"?><project>
  <actions/>
  <description>Plugin code-owners stable-3.9 branch build with Bazel&lt;!-- Managed by Jenkins Job Builder --&gt;</description>
  <keepDependencies>false</keepDependencies>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <concurrentBuild>false</concurrentBuild>
  <assignedNode>bazel-debian</assignedNode>
  <canRoam>false</canRoam>
  <properties>
    <jenkins.model.BuildDiscarderProperty>
      <strategy class="hudson.tasks.LogRotator">
        <daysToKeep>20</daysToKeep>
        <numToKeep>-1</numToKeep>
        <artifactDaysToKeep>20</artifactDaysToKeep>
        <artifactNumToKeep>-1</artifactNumToKeep>
      </strategy>
    </jenkins.model.BuildDiscarderProperty>
    <hudson.security.AuthorizationMatrixProperty>
      <inheritanceStrategy class="org.jenkinsci.plugins.matrixauth.inheritance.InheritParentStrategy"/>
      <permission>hudson.model.Item.Discover:anonymous</permission>
      <permission>hudson.model.Item.Read:anonymous</permission>
      <permission>hudson.model.Item.ExtendedRead:anonymous</permission>
    </hudson.security.AuthorizationMatrixProperty>
  </properties>
  <scm class="hudson.plugins.git.GitSCM">
    <configVersion>2</configVersion>
    <userRemoteConfigs>
      <hudson.plugins.git.UserRemoteConfig>
        <name>origin</name>
        <refspec>+refs/heads/*:refs/remotes/origin/*</refspec>
        <url>https://gerrit.googlesource.com/a/plugins/code-owners</url>
        <credentialsId>gerrit.googlesource.com</credentialsId>
      </hudson.plugins.git.UserRemoteConfig>
      <hudson.plugins.git.UserRemoteConfig>
        <name>gerrit</name>
        <refspec>+refs/heads/*:refs/remotes/gerrit/*</refspec>
        <url>https://gerrit.googlesource.com/a/gerrit</url>
        <credentialsId>gerrit.googlesource.com</credentialsId>
      </hudson.plugins.git.UserRemoteConfig>
    </userRemoteConfigs>
    <branches>
      <hudson.plugins.git.BranchSpec>
        <name>origin/stable-3.9</name>
      </hudson.plugins.git.BranchSpec>
    </branches>
    <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
    <remotePoll>false</remotePoll>
    <gitTool>Default</gitTool>
    <submoduleCfg class="list"/>
    <reference/>
    <gitConfigName/>
    <gitConfigEmail/>
    <extensions>
      <hudson.plugins.git.extensions.impl.CloneOption>
        <shallow>false</shallow>
        <depth>1</depth>
        <noTags>true</noTags>
      </hudson.plugins.git.extensions.impl.CloneOption>
      <hudson.plugins.git.extensions.impl.SubmoduleOption>
        <disableSubmodules>false</disableSubmodules>
        <recursiveSubmodules>true</recursiveSubmodules>
        <trackingSubmodules>false</trackingSubmodules>
        <parentCredentials>true</parentCredentials>
        <reference/>
        <timeout>10</timeout>
        <threads>1</threads>
      </hudson.plugins.git.extensions.impl.SubmoduleOption>
      <hudson.plugins.git.extensions.impl.WipeWorkspace/>
    </extensions>
  </scm>
  <triggers class="vector">
    <hudson.triggers.SCMTrigger>
      <spec>H/50 * * * *</spec>
      <ignorePostCommitHooks>false</ignorePostCommitHooks>
    </hudson.triggers.SCMTrigger>
  </triggers>
  <builders>
    <hudson.tasks.Shell>
      <command>#!/bin/bash -e
echo "machine gerrit.googlesource.com login $GS_GIT_USER password $GS_GIT_PASS"&gt;&gt; ~/.netrc
chmod 600 ~/.netrc
</command>
    </hudson.tasks.Shell>
    <hudson.tasks.Shell>
      <command>#!/bin/bash -e

. set-java.sh --branch "stable-3.9"

if [ -n "" ]; then
  SRC_DIR=
else
  SRC_DIR=code-owners
fi

echo "Building plugin code-owners with Gerrit on stable-3.9 from plugins/$SRC_DIR"

git checkout -fb stable-3.9 gerrit/stable-3.9
git submodule update --init
rm -rf plugins/code-owners
git read-tree -u --prefix=plugins/$SRC_DIR origin/stable-3.9
git fetch --tags origin

if [ -n "" ] &amp;&amp; [ -n "" ]; then
  echo "Linking '/' to 'plugins/code-owners'"
  pushd plugins &amp;&amp; ln -s / . &amp;&amp; popd
fi

for file in external_plugin_deps.bzl external_package.json
do
  if [ -f plugins/code-owners/$file ]
  then
    cp -f plugins/code-owners/$file plugins/
  fi
done

PLUGIN_SCM_BASE_URL="https://gerrit.googlesource.com/a"
for extraPlugin in 
do
    pushd ..
    git clone -b stable-3.9 $PLUGIN_SCM_BASE_URL/plugins/$extraPlugin
    popd
    pushd plugins
    ln -s ../../$extraPlugin .
    popd
done
for extraModule in 
do
    pushd ..
    git clone -b stable-3.9 $PLUGIN_SCM_BASE_URL/modules/$extraModule
    popd
    pushd plugins
    ln -s ../../$extraModule .
    popd
done

TARGETS=$(echo "plugins/{name}:{name}" | sed -e 's/{name}/code-owners/g')

java -fullversion
bazelisk version

if test "" != ""
then
  echo "Running setup script ..."
  bash -c ""
fi

if [ "stable-3.9" == "stable-3.11" ]; then
  BAZEL_OPTS="$BAZEL_OPTS --config=java21"
  echo -e "Build stable-3.11 on java21. BAZEL_OPTS = $BAZEL_OPTS"
fi

bazelisk build $BAZEL_OPTS $TARGETS
bazelisk test $BAZEL_OPTS --test_env DOCKER_HOST=$DOCKER_HOST //tools/bzl:always_pass_test plugins/code-owners/...

for JAR in $(find bazel-bin/plugins/code-owners -maxdepth 1 -name code-owners*.jar)
do
    PLUGIN_VERSION=$(git describe  --always origin/stable-3.9)
    echo -e "Implementation-Version: $PLUGIN_VERSION" &gt; MANIFEST.MF
    jar ufm $JAR MANIFEST.MF &amp;&amp; rm MANIFEST.MF
    DEST_JAR=bazel-bin/plugins/code-owners/$(basename $JAR)
    [ "$JAR" -ef "$DEST_JAR" ] || mv $JAR $DEST_JAR
    echo "$PLUGIN_VERSION" &gt; bazel-bin/plugins/code-owners/$(basename $JAR-version)
done

for JS in $(find bazel-bin/plugins/code-owners -maxdepth 1 -name code-owners*.js)
do
    PLUGIN_VERSION=$(git describe  --always origin/stable-3.9)
    echo "$PLUGIN_VERSION" &gt; bazel-bin/plugins/code-owners/$(basename $JS-version)
done
</command>
    </hudson.tasks.Shell>
    <hudson.tasks.Shell>
      <command>#!/bin/bash -e

curl -L https://gerrit-review.googlesource.com/projects/plugins%2Fcode-owners/config | \
     tail -n +2 &gt; bazel-bin/plugins/code-owners/code-owners.json

</command>
    </hudson.tasks.Shell>
  </builders>
  <publishers>
    <hudson.tasks.ArtifactArchiver>
      <artifacts>bazel-bin/plugins/code-owners/code-owners.jar, bazel-bin/plugins/code-owners/code-owners.jar-version, bazel-bin/plugins/code-owners/code-owners.json, 
</artifacts>
      <allowEmptyArchive>false</allowEmptyArchive>
      <onlyIfSuccessful>false</onlyIfSuccessful>
      <fingerprint>false</fingerprint>
      <defaultExcludes>true</defaultExcludes>
      <caseSensitive>true</caseSensitive>
      <latestOnly>false</latestOnly>
      <followSymlinks>true</followSymlinks>
    </hudson.tasks.ArtifactArchiver>
  </publishers>
  <buildWrappers>
    <hudson.plugins.build__timeout.BuildTimeoutWrapper>
      <strategy class="hudson.plugins.build_timeout.impl.AbsoluteTimeOutStrategy">
        <timeoutMinutes>60</timeoutMinutes>
      </strategy>
      <operationList>
        <hudson.plugins.build__timeout.operations.FailOperation/>
      </operationList>
    </hudson.plugins.build__timeout.BuildTimeoutWrapper>
    <hudson.plugins.timestamper.TimestamperBuildWrapper/>
    <org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
      <bindings>
        <org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding>
          <usernameVariable>GS_GIT_USER</usernameVariable>
          <passwordVariable>GS_GIT_PASS</passwordVariable>
          <credentialsId>gerrit.googlesource.com</credentialsId>
        </org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding>
      </bindings>
    </org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper>
  </buildWrappers>
</project>