testing_24

24
This commit is contained in:
psycho 2020-08-13 22:26:44 +02:00
parent a614997ad9
commit 5edec87c27

89
Jenkinsfile vendored
View File

@ -14,6 +14,10 @@ def sftp_host = ''
def sftp_user = '' def sftp_user = ''
def sftp_passwd = '' def sftp_passwd = ''
def sftp_path = '/jenkins/owrt/' def sftp_path = '/jenkins/owrt/'
def isBuildNeeded = false
def deleteUnbuild = true
def pre_clean = true
def post_clean = false
if(params.DEBUG) if(params.DEBUG)
@ -44,6 +48,18 @@ if(params.KNOWN_HOSTS)
{ {
known_hosts = params.KNOWN_HOSTS known_hosts = params.KNOWN_HOSTS
} }
if(params.DeleteUnbuild)
{
deleteUnbuild = params.DeleteUnbuild
}
if(params.PRE_CLEAN)
{
pre_clean = params.PRE_CLEAN
}
if(params.POST_CLEAN)
{
post_clean = params.POST_CLEAN
}
def printDebug(msg) def printDebug(msg)
{ {
@ -55,44 +71,63 @@ def printDebug(msg)
node('test') node('test')
{ {
stageName = 'checkout' stage('checkout')
stage(stageName)
{ {
cleanWs() if(pre_clean)
{
cleanWs()
}
sh label: 'checkout_configs', script: 'git clone ' + script_git + ' ' + script_folder sh label: 'checkout_configs', script: 'git clone ' + script_git + ' ' + script_folder
sh label: 'checkout_openwrt', script: 'git clone ' + git_link + ' ' + git_folder sh label: 'checkout_openwrt', script: 'git clone ' + git_link + ' ' + git_folder
def ret = sh label: 'is_build_needed', script: 'python ' + scripts_path + 'sftp_test.py -a ' + sftp_host + ' -u ' + sftp_user + ' -p ' + sftp_passwd + ' -g ' + git_folder + ' -f ' + scripts_path + known_hosts + ' -l ' + sftp_path, returnStdout: true def ret = sh label: 'is_build_needed', script: 'python ' + scripts_path + 'sftp_test.py -a ' + sftp_host + ' -u ' + sftp_user + ' -p ' + sftp_passwd + ' -g ' + git_folder + ' -f ' + scripts_path + known_hosts + ' -l ' + sftp_path, returnStdout: true
printDebug(ret) if(ret.trim().equalsIgnoreCase('True')
isBuildNeeded = true
} }
return return
stageName = 'pre-build' if(isBuildNeeded)
stage(stageName)
{ {
sh label: 'patch_sources', script: 'cd ' + git_folder + '; patch -p1 < ../' + patch stage('pre-build')
sh label: 'feeds_update', script: 'cd ' + git_folder + '; ./scripts/feeds update -a' {
sh label: 'feeds_install', script: 'cd ' + git_folder + '; ./scripts/feeds install -a' sh label: 'patch_sources', script: 'cd ' + git_folder + '; patch -p1 < ../' + patch
sh label: 'feeds_update', script: 'cd ' + git_folder + '; ./scripts/feeds update -a'
sh label: 'feeds_install', script: 'cd ' + git_folder + '; ./scripts/feeds install -a'
} }
stageName = 'build' stage('build')
stage(stageName) {
{ //step
//step //{
//{ sh label: 'copy_config', script: 'cp ' + config_path + 'tl_wr841_v11_config ' + git_folder + '/.config'
sh label: 'copy_config', script: 'cp ' + config_path + 'tl_wr841_v11_config ' + git_folder + '/.config' sh label: 'build_v11', script: 'cd ' + git_folder + '; make oldconfig; make -j13 V=s'
sh label: 'build_v11', script: 'cd ' + git_folder + '; make oldconfig; make -j13 V=s' //}
//} //step
//step //{
//{ sh label: 'copy_config', script: 'cp ' + config_path + 'tl_wr841_v12_config ' + git_folder + '/.config'
sh label: 'copy_config', script: 'cp ' + config_path + 'tl_wr841_v12_config ' + git_folder + '/.config' sh label: 'build_v12', script: 'cd ' + git_folder + '; make oldconfig; make -j13 V=s'
sh label: 'build_v12', script: 'cd ' + git_folder + '; make oldconfig; make -j13 V=s' //}
//} }
} }
stageName = 'clean' if(post_clean)
stage(stageName)
{ {
//cleanWs() stage('clean')
{
cleanWs()
}
} }
if((!isBuildNeeded && deleteUnbuild))
{
//if no build is needed, then the last build is deleted and the next build number is set to previous build number
def jobName = JOB_NAME
def job = Jenkins.instance.getItem(jobName)
logger.printInfo('job is getting deleted ' + currentBuild.id.toString())//job.nextBuildNumber)
job.getLastBuild().delete()
//job.nextBuildNumber -= 1 //updateNextBuildNumber(job.getNextBuildNumber() - 1) //resetting next build number does not work. if done, the next build start will do nothing
job.save()
}
} }