import jenkins.model.Jenkins
|
|
@Library("BuildLib") _
|
|
/**
|
* Gets the commit hash from a Jenkins build object, if any
|
*/
|
@NonCPS
|
def commitHashForBuild( build ) {
|
def scmAction = build?.actions.find { action -> action instanceof jenkins.scm.api.SCMRevisionAction }
|
return scmAction?.revision?.hash
|
}
|
|
@NonCPS
|
String getChangedFilesList() {
|
changedFiles = []
|
for (changeLogSet in currentBuild.changeSets) {
|
for (entry in changeLogSet.getItems()) { // for each commit in the detected changes
|
for (file in entry.getAffectedFiles()) {
|
changedFiles.add(file.getPath()) // add changed file to list
|
}
|
}
|
}
|
return changedFiles
|
}
|
|
pipeline {
|
agent {
|
node {
|
label 'userland'
|
}
|
}
|
stages {
|
stage('Ensure is ready to build') {
|
steps {
|
sh 'pfexec /usr/sbin/mountall -F nfs || exit 0'
|
}
|
}
|
stage('Git Checkout') {
|
steps {
|
withSharedWs() {
|
git branch: 'oi/hipster', url: 'https://github.com/OpenIndiana/oi-userland.git'
|
}
|
}
|
}
|
stage('Gmake Setup') {
|
steps {
|
sh 'rm -f components/components.mk'
|
sh 'rm -f components/depends.mk'
|
withPublisher('openindiana.org', 'incremental') {
|
sh 'gmake setup'
|
}
|
}
|
}
|
stage('Gmake Publish') {
|
steps {
|
withPublisher('openindiana.org', 'incremental') {
|
script {
|
writeFile file: 'changed_files.txt', text: getChangedFilesList().join("\n")
|
}
|
sh './tools/jenkinshelper-main.ksh -s build_changed'
|
}
|
}
|
}
|
stage('update system') {
|
steps {
|
update()
|
sh '/opt/local/bin/cleanup_bootenvs.sh'
|
}
|
}
|
}
|
}
|