#!groovy pipeline { agent { label 'linux' } triggers { cron('H 12,0 * * *') } stages { stage('Checkout') { when { beforeAgent true; branch 'main' } steps { sh 'git checkout main' } } stage('Check last Commit') { when { beforeAgent true; branch 'main' } steps { script { def causes = currentBuild.getBuildCauses() echo "Build causes: ${causes}" def causedByScmEvent = causes.any { it._class == 'hudson.triggers.SCMTrigger$SCMTriggerCause' || it._class == 'jenkins.branch.BranchEventCause' } echo "Caused by SCM event: ${causedByScmEvent}" if (!causedByScmEvent) { echo 'Not triggered by SCM, continuing build' } else if (sh(script: 'git log -1 --pretty=format:"%an"', returnStdout: true).trim() == 'Jenkins') { currentBuild.result = 'ABORTED' error('Last commit was by Jenkins, skipping build') } else { echo 'Last commit was not by Jenkins, continuing build' } } } } stage('Compile Adblock List') { when { beforeAgent true; branch 'main' } steps { withGradle { sh './gradlew :compileAdblockList' } sh ''' git add out/andysadguardhomeblocklist.txt git commit -m "Update Compiled Adblock List" ''' } } stage('git push') { when { beforeAgent true; branch 'main' } steps { withCredentials([ gitUsernamePassword(credentialsId: 'gitea-jenkins-user-token') ]) { sh ''' git pull origin main git push ''' } } } } post { always { deleteDir() } } }