SpaghettiKart/Jenkinsfile

106 lines
3.6 KiB
Groovy

def totalProgBadge = addEmbeddableBadgeConfiguration(id: "totalProgress", subject: "Total Progress", color: "7d0000")
def gameCodeProgBadge = addEmbeddableBadgeConfiguration(id: "gameProgress", subject: "Game Code Progress", color: "7d0000")
def mainProgBadge = addEmbeddableBadgeConfiguration(id: "mainProgress", subject: "Main Code Progress", color: "7d0000")
def endingProgBadge = addEmbeddableBadgeConfiguration(id: "endingProgress", subject: "Ending Code Progress", color: "7d0000")
def racingProgBadge = addEmbeddableBadgeConfiguration(id: "racingProgress", subject: "Racing Code Progress", color: "7d0000")
def audioProgBadge = addEmbeddableBadgeConfiguration(id: "audioProgress", subject: "Audio Code Progress", color: "7d0000")
def osProgBadge = addEmbeddableBadgeConfiguration(id: "osProgress", subject: "Libultra Code Progress", color: "7d0000")
def bytesToDecompile = addEmbeddableBadgeConfiguration(id: "bytesLeft", subject: "Remaining Decompilable Bytes", color: "7d0000")
def m2cFuncs = addEmbeddableBadgeConfiguration(id: "m2c", subject: "Remaining Functions", color: "7d0000")
def nonmatchingFuncs = addEmbeddableBadgeConfiguration(id: "nonmatching", subject: "Non Matching Functions", color: "7d0000")
pipeline {
agent any
stages {
stage('Build Tools') {
steps {
sh 'make -j4 -C tools/'
}
}
stage('Extract Assets') {
steps {
sh 'ln -s "$ROMS_DIR/Mario Kart 64 (U) [!].z64" baserom.us.z64'
// verify no assets were committed to repo
sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
sh '[ -z "$(find bin/ -name \'*.m64\' -or \'*.bin\')" ]'
sh './extract_assets.py us'
}
}
stage('Build U Source') {
steps {
sh 'make -j4 VERSION=us'
}
}
stage('Update progress') {
when {
branch 'master'
}
steps {
script {
progress = sh(
script: "python3 progress.py totalBadge",
returnStdout: true).trim()
totalProgBadge.setStatus(progress)
progress = sh(
script: "python3 progress.py gameBadge",
returnStdout: true).trim()
gameCodeProgBadge.setStatus(progress)
progress = sh(
script: "python3 progress.py mainBadge",
returnStdout: true).trim()
mainProgBadge.setStatus(progress)
progress = sh(
script: "python3 progress.py endingBadge",
returnStdout: true).trim()
endingProgBadge.setStatus(progress)
progress = sh(
script: "python3 progress.py racingBadge",
returnStdout: true).trim()
racingProgBadge.setStatus(progress)
progress = sh(
script: "python3 progress.py audioBadge",
returnStdout: true).trim()
audioProgBadge.setStatus(progress)
progress = sh(
script: "python3 progress.py osBadge",
returnStdout: true).trim()
osProgBadge.setStatus(progress)
progress = sh(
script: "python3 progress.py bytesToDecompile",
returnStdout: true).trim()
bytesToDecompile.setStatus(progress)
progress = sh(
script: "python3 progress.py m2cFuncs",
returnStdout: true).trim()
m2cFuncs.setStatus(progress)
progress = sh(
script: "python3 progress.py nonmatchingFuncs",
returnStdout: true).trim()
nonmatchingFuncs.setStatus(progress)
}
}
}
}
environment {
QEMU_IRIX = credentials('qemu-irix')
ROMS_DIR = credentials('roms')
}
post {
always {
cleanWs()
}
}
}