AusweisApp2/resources/jenkins/dsl/Reviews/Review_Trigger.groovy

100 lines
1.7 KiB
Groovy

import common.Trigger
import common.Constants
import common.Build.JobType
import static common.Constants.createEnvMap
import static common.Constants.createReviewMessage
def getJobs()
{
def list = ['Formatting', 'Source', 'Docs', 'MacOS_DMG', 'Win32_GNU_MSI', 'Win32_MSVC_MSI', 'iOS_IPA']
for(ARCH in Constants.AndroidArch)
{
list << 'Android_APK_' + ARCH
}
def unitTests = ['Linux', 'MacOS', 'Win32_GNU', 'FreeBSD']
list += unitTests
return list
}
String getName(String name)
{
return "${MERCURIAL_REVISION_BRANCH}_Review_" + name
}
def envMap = createEnvMap(getJobs(), this.&getName)
def reviewMessage = createReviewMessage(getJobs(), this.&getName) + ' | Libraries: ${Libraries}'
def j = new Trigger
(
name: '_Review_Trigger',
jobType: JobType.Multi
).generate(this)
j.with
{
concurrentBuild()
wrappers
{
environmentVariables
{
envs(envMap)
}
}
steps
{
shell('cd source; hg import --no-commit ../patch.diff')
phase('General', 'UNSTABLE')
{
phaseJob(getName('Formatting'))
phaseJob(getName('Source'))
phaseJob(getName('Docs'))
}
phase('Packages')
{
for(ARCH in Constants.AndroidArch)
{
phaseJob(getName('Android_APK_' + ARCH))
}
phaseJob(getName('Win32_GNU_MSI'))
phaseJob(getName('Win32_MSVC_MSI'))
phaseJob(getName('MacOS_DMG'))
phaseJob(getName('iOS_IPA'))
}
phase('Unit Tests')
{
phaseJob(getName('Linux'))
phaseJob(getName('Win32_GNU'))
phaseJob(getName('MacOS'))
phaseJob(getName('FreeBSD'))
}
}
configure
{
project -> project / 'publishers' << 'org.jenkinsci.plugins.jenkinsreviewbot.ReviewboardNotifier' {
shipItOnSuccess 'false'
useMarkdown 'true'
customMessage "${reviewMessage}"
}
}
}