Hi guys,

On XWiki we have a Jenkins pipeline committed in our SCM (in a Jenkinsfile) 
which looks like this:

def globalMavenOpts = '-Xmx1536m -XX:MaxPermSize=512m -Xms256m'

stage ('Commons Builds') {
  parallel(
    'main': {
      node {
        // Build, skipping quality checks so that the result of the build can 
be sent as fast as possible to the devs.
        // In addition, we want the generated artifacts to be deployed to our 
remote Maven repository so that developers
        // can benefit from them even though some quality checks have not yet 
passed. In // we start a build with the
        // quality profile that executes various quality checks.
        xwikiBuild('Main') {
          mavenOpts = globalMavenOpts
          profiles = 'legacy,integration-tests'
          properties = '-Dxwiki.checkstyle.skip=true 
-Dxwiki.surefire.captureconsole.skip=true -Dxwiki.revapi.skip=true'
        }
      }

      // If the "main" build has succeeded then trigger the rendering pipeline
      build job: "../xwiki-rendering/${env.BRANCH_NAME}", wait: false
    },
    'testrelease': {
      node {
        // Simulate a release and verify all is fine, in preparation for the 
release day.
        xwikiBuild('TestRelease') {
          mavenOpts = globalMavenOpts
          goals = 'clean install'
          profiles = 'legacy,integration-tests'
          properties = '-DskipTests -DperformRelease=true -Dgpg.skip=true 
-Dxwiki.checkstyle.skip=true'
        }
      }
    },
    'quality': {
      node {
        // Run the quality checks.
        xwikiBuild('Quality') {
          mavenOpts = globalMavenOpts
          goals = 'clean install jacoco:report'
          profiles = 'quality,legacy'
        }
      }
    },
    'checkstyle': {
      node {
        // Build with checkstyle. Make sure "mvn checkstyle:check" passes so 
that we don't cause false positive on
        // Checkstyle side. This is for the Checkstyle project itself so that 
they can verify that when they bring
        // changes to Checkstyle, there's no regression to the XWiki build.
        xwikiBuild('Checkstyle') {
          mavenOpts = globalMavenOpts
          goals = 'clean test-compile checkstyle:check'
          profiles = 'legacy'
        }
      }
    }
  )

  // If the job is successful, trigger the rendering job
  if (currentBuild.result == 'SUCCESS') {
    build job: "../xwiki-rendering/${env.BRANCH_NAME}", wait: false
  }
}



So we trigger several maven builds whenever a commit is pushed to GitHub 
(the xwikiBuild() step is located in a shared pipeline library of ours).

Now I have the need to trigger another build in the parallel() step but 
that build should execute only once per day (for example). Is there a way 
to do this?

I've googled and the only thing I've found is using the following syntax: 
properties([pipelineTriggers([cron('H 
23 * * *')])])

However it's not clear to me how that would work: whenever a commit happens 
the JenkinsFile gets executed and thus if I have the following, I guess 
it's going to execute the build at each commit and not only once per day?

  parallel(

    ...
    'quality-long': {
      node {

        properties([pipelineTriggers([cron('H 23 * * *')])])
        xwikiBuild('Quality checks taking long') {
          profiles = '....'
          properties = '....'
        }      
    },

    ...



I'd really like to not have to manually create a job using the Jenkins UI 
and instead have that job automatically created by the pipeline script.

Is that possible?

Thanks a lot
-Vincent Massol






-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/2c99dc1f-6092-4607-bd00-314b3ba6e366%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to