<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://performiq.com/kb/index.php?action=history&amp;feed=atom&amp;title=Jenkins_Notes</id>
	<title>Jenkins Notes - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://performiq.com/kb/index.php?action=history&amp;feed=atom&amp;title=Jenkins_Notes"/>
	<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Jenkins_Notes&amp;action=history"/>
	<updated>2026-05-18T19:46:01Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://performiq.com/kb/index.php?title=Jenkins_Notes&amp;diff=5045&amp;oldid=prev</id>
		<title>PeterHarding: Created page with &quot;=Jenkins Scripts=  &lt;pre&gt; #!/usr/bin/env groovy  pipeline {    agent { label &#039;ci&#039; }    environment {     REPO_NAME = getRepoName(&quot;${JOB_NAME}&quot;) // JOB_BASE_NAME is identical to...&quot;</title>
		<link rel="alternate" type="text/html" href="https://performiq.com/kb/index.php?title=Jenkins_Notes&amp;diff=5045&amp;oldid=prev"/>
		<updated>2020-08-04T01:05:38Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=Jenkins Scripts=  &amp;lt;pre&amp;gt; #!/usr/bin/env groovy  pipeline {    agent { label &amp;#039;ci&amp;#039; }    environment {     REPO_NAME = getRepoName(&amp;quot;${JOB_NAME}&amp;quot;) // JOB_BASE_NAME is identical to...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Jenkins Scripts=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env groovy&lt;br /&gt;
&lt;br /&gt;
pipeline {&lt;br /&gt;
&lt;br /&gt;
  agent { label &amp;#039;ci&amp;#039; }&lt;br /&gt;
&lt;br /&gt;
  environment {&lt;br /&gt;
    REPO_NAME = getRepoName(&amp;quot;${JOB_NAME}&amp;quot;) // JOB_BASE_NAME is identical to the github repo name&lt;br /&gt;
    APPLICATION_REPO_NAME = getRepoName(&amp;quot;${JOB_NAME}&amp;quot;)&lt;br /&gt;
    APPLICATION_REPO = &amp;quot;git@github.aus.thenational.com:${GITHUB_ORGANIZATION}/${APPLICATION_REPO_NAME}.git&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  parameters{&lt;br /&gt;
    string(name: &amp;#039;SCRIPT_BRANCH&amp;#039;, defaultValue: &amp;#039;develop&amp;#039;, description: &amp;#039;performance script branch.&amp;#039;)&lt;br /&gt;
    string(name: &amp;#039;TARGET_CLUSTER&amp;#039;, defaultValue: &amp;#039;perf2&amp;#039;, description: &amp;#039;e.g. perf2. leave empty to use the value in application-ppte-load.conf&amp;#039;)&lt;br /&gt;
    string(name: &amp;#039;MAX_USERS&amp;#039;, defaultValue: &amp;#039;&amp;#039;, description: &amp;#039;leave emtpy to pick this value from application.conf&amp;#039;)&lt;br /&gt;
    booleanParam(name: &amp;#039;SHAKEOUT&amp;#039;, defaultValue: &amp;#039;true&amp;#039;, description: &amp;#039;shakeout before running full load and abort if shakeout has 100% failures&amp;#039;)&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  stages {&lt;br /&gt;
    stage(&amp;#039;Checkout&amp;#039;) {&lt;br /&gt;
      steps {&lt;br /&gt;
        script {&lt;br /&gt;
          echo &amp;quot;${env.REPO_NAME}&amp;quot;&lt;br /&gt;
          checkout([$class: &amp;#039;GitSCM&amp;#039;, branches: [[name: &amp;quot;${params.SCRIPT_BRANCH}&amp;quot;]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: &amp;#039;GITHUB_PRIVATE_KEY&amp;#039;, url: &amp;quot;${APPLICATION_REPO}&amp;quot;]]])&lt;br /&gt;
          env.APP_NAME = getAppName()&lt;br /&gt;
&lt;br /&gt;
          env.EXTRA_OPTS = &amp;quot;-Dconfiguration=application-ppte-load.conf&amp;quot;&lt;br /&gt;
          if ( &amp;quot;${params.TARGET_CLUSTER}&amp;quot; ) {&lt;br /&gt;
            env.EXTRA_OPTS = env.EXTRA_OPTS + &amp;quot; -Dgatling.endpoint=gatling.baseUrl.${params.TARGET_CLUSTER}&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
          if ( &amp;quot;${params.MAX_USERS}&amp;quot; ) {&lt;br /&gt;
            env.EXTRA_OPTS = env.EXTRA_OPTS + &amp;quot; -Dgatling.users=${params.MAX_USERS}&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
          echo &amp;quot;env.EXTRA_OPTS=${env.EXTRA_OPTS}&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    stage(&amp;#039;Shakeout&amp;#039;) {&lt;br /&gt;
      steps {&lt;br /&gt;
        script {&lt;br /&gt;
          if ( params.SHAKEOUT ) {&lt;br /&gt;
            echo &amp;quot;Running shakeout&amp;quot;&lt;br /&gt;
&lt;br /&gt;
            def result = sh script: &amp;quot;./gradlew -Dwarm.up=true performance:runPerformanceTest ${env.EXTRA_OPTS} -Dgatling.users=1 | tee perf_test_warm_up.log&amp;quot;, returnStatus: true&lt;br /&gt;
&lt;br /&gt;
            //check to see if there are any failed transactions&lt;br /&gt;
            sh script: &amp;quot;if [ `grep -w &amp;#039;count.*[[:digit:]]*OK=0&amp;#039; perf_test_warm_up.log | wc -l` -gt \&amp;quot;0\&amp;quot; ] || [ ! -f \&amp;quot;perf_test_warm_up.log\&amp;quot; ]; then echo \&amp;quot;Warm up test failed with high number of KOs. Please check the perf_test_warm_up.log for more details.\&amp;quot;; exit 1; else echo \&amp;quot;Successfully completed warm up test.\&amp;quot;; fi&amp;quot;&lt;br /&gt;
&lt;br /&gt;
            if (result != 0) {&lt;br /&gt;
              echo &amp;quot;Warm up errors can be ignored.&amp;quot;&lt;br /&gt;
              zip zipFile: &amp;#039;perf_test_warm_up.zip&amp;#039;, glob: &amp;#039;perf_test_warm_up.log&amp;#039;&lt;br /&gt;
              archiveArtifacts artifacts: &amp;quot;perf_test_warm_up.zip&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
          } else {&lt;br /&gt;
            echo &amp;quot;Skipping shakeout&amp;quot;&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    stage(&amp;#039;Performance Test&amp;#039;) {&lt;br /&gt;
      steps {&lt;br /&gt;
        script {&lt;br /&gt;
          sh script: &amp;quot;rm -rf performance/results&amp;quot;&lt;br /&gt;
          def result = sh script: &amp;quot;./gradlew performance:runLoadTest ${env.EXTRA_OPTS}&amp;quot;, returnStatus: true&lt;br /&gt;
          sh script: &amp;quot;./gradlew performance:performanceReport&amp;quot;&lt;br /&gt;
          sh script: &amp;quot;COMMIT_SHA_TAG=`git rev-parse HEAD`; ./gradlew performance:performanceResultsSummaryForSplunk -Papp_name=${APP_NAME} -Pbranch_name=${params.SCRIPT_BRANCH} -Pcommit_sha_tag=${env.COMMIT_SHA_TAG} -Pbuild_number=${BUILD_NUMBER}&amp;quot;&lt;br /&gt;
          def results  = sh ( script: &amp;#039;cat performance/results/ese_perf_results.csv&amp;#039;, returnStdout: true ).trim()&lt;br /&gt;
          def payload = groovy.json.JsonOutput.toJson([&amp;quot;event&amp;quot;: &amp;quot;${results}&amp;quot;, &amp;quot;source&amp;quot;: &amp;quot;${env.APP_NAME}-${params.SCRIPT_BRANCH}&amp;quot;, &amp;quot;sourcetype&amp;quot;: &amp;quot;gatling_perf&amp;quot;])&lt;br /&gt;
          def response = sh(returnStdout: true, script: &amp;quot;curl -k -H \&amp;quot;Authorization: Splunk ${env.SPLUNK_TOKEN_APP_LOGS}\&amp;quot; -d &amp;#039;${payload}&amp;#039; ${env.SPLUNK_URL}&amp;quot;).trim()&lt;br /&gt;
          if (result &amp;gt; 0) {&lt;br /&gt;
            error(&amp;quot;Performance Tests failed&amp;quot;)&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      post {&lt;br /&gt;
        always {&lt;br /&gt;
          sh &amp;quot;ls -larth&amp;quot;&lt;br /&gt;
          zip zipFile: &amp;#039;performance-test-report.zip&amp;#039;, dir: &amp;#039;performance&amp;#039;&lt;br /&gt;
          zip zipFile: &amp;#039;perf-run-log.zip&amp;#039;, glob: &amp;#039;perf-run.log&amp;#039;&lt;br /&gt;
          archiveArtifacts artifacts: &amp;quot;perf-run-log.zip&amp;quot;&lt;br /&gt;
          archiveArtifacts artifacts: &amp;#039;performance-test-report.zip&amp;#039;&lt;br /&gt;
          junit &amp;#039;performance/results/**/js/assertions.xml&amp;#039;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
String getRepoName(String job_name) {&lt;br /&gt;
  return job_name.split(&amp;quot;/&amp;quot;)[1].replaceAll(&amp;#039;_&amp;#039;, &amp;#039;-&amp;#039;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
String getAppName() {&lt;br /&gt;
  return sh(returnStdout: true, script: &amp;quot;awk -F\\&amp;#039; &amp;#039;/rootProject.name/ {print \$2}&amp;#039; settings.gradle&amp;quot;).trim().replaceAll(&amp;#039;_&amp;#039;, &amp;#039;-&amp;#039;)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Jenkins]]&lt;/div&gt;</summary>
		<author><name>PeterHarding</name></author>
	</entry>
</feed>