AusweisApp2/resources/jenkins/dsl/common/Appcast.groovy

85 lines
1.7 KiB
Groovy

package common
import javaposse.jobdsl.dsl.Job
import javaposse.jobdsl.dsl.DslFactory
import common.Build
class Appcast extends Build
{
String name = 'Appcast'
String label= 'Common'
String artifacts = 'build/*.msi,build/*.dmg,build/*.tar.gz,build/*.sha256,build/Appcast.*,build/ReleaseNotes.html,build/docs/**/*.pdf,build/docs/**/*.tar.xz,source/resources/default-*'
String trigger = null
List oldBuilds = [-1, 5]
boolean sendMail = false
String getSourceJobName(String artifactJob)
{
def prefixSource = ''
if(getReleaseJob())
prefixSource = 'Release_'
return buildName(prefixSource, artifactJob)
}
Job generate(DslFactory dslFactory)
{
def j = super.generate(dslFactory)
j.with
{
if(!getReleaseJob())
{
triggers
{
upstream(getSourceJobName('Win32_GNU_MSI') + ',' + getSourceJobName('MacOS_DMG') + ',' + getSourceJobName('Source') + ',' + getSourceJobName('Docs'))
}
}
steps
{
copyArtifacts(getSourceJobName('Win32_GNU_MSI'))
{
buildSelector
{
latestSuccessful(true)
}
}
copyArtifacts(getSourceJobName('MacOS_DMG'))
{
buildSelector
{
latestSuccessful(true)
}
}
copyArtifacts(getSourceJobName('Source'))
{
buildSelector
{
latestSuccessful(true)
}
}
copyArtifacts(getSourceJobName('Docs'))
{
buildSelector
{
latestSuccessful(true)
}
}
def appCastJob = getReleaseJob() ? '' : '-DJENKINS_APPCAST=\${JOB_NAME}'
shell("cd build; cmake ../source -DCMAKE_BUILD_TYPE=release -Dtools.only=true ${appCastJob}")
shell('cd build; cmake -E copy docs/notes/singlehtml/de/appcast.html ReleaseNotes.html')
}
}
return j
}
}