1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-14 21:40:03 +00:00
oot/Jenkinsfile
cadmic 70716be96d
Build all GC retail ROMs in Jenkins (#2027)
* Build all GC retail ROMs in Jenkins

* Delete progress tracking

Doesn't play nicely with deleting extracted/ and build/ after each version,
and it currently serves no purpose

* Update Jenkinsfile

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>

* Reorder ROMs

* Symlink ROMs instead of copying

---------

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2024-08-14 23:39:34 -04:00

108 lines
3.9 KiB
Groovy

pipeline {
agent {
label 'oot'
}
stages {
stage('Check formatting (full)') {
when {
branch 'main'
}
steps {
echo 'Checking formatting on all files...'
sh 'python3 tools/check_format.py'
}
}
stage('Check formatting (modified)') {
when {
not {
branch 'main'
}
}
steps {
echo 'Checking formatting on modified files...'
sh 'python3 tools/check_format.py --verbose --compare-to origin/main'
}
}
// The ROMs are built in an order that maximizes compiler flags coverage in a "fail fast" approach.
// Specifically we start with a retail ROM for BSS ordering, and make sure we cover all of
// NTSC/PAL/MQ/DEBUG as quickly as possible.
stage('Build gc-jp') {
steps {
sh 'ln -s /usr/local/etc/roms/oot-gc-jp.z64 baseroms/gc-jp/baserom.z64'
sh 'make -j setup VERSION=gc-jp'
sh 'make -j RUN_CC_CHECK=0 VERSION=gc-jp'
sh 'make clean assetclean VERSION=gc-jp'
}
}
stage('Build gc-eu-mq') {
steps {
sh 'ln -s /usr/local/etc/roms/oot-gc-eu-mq.z64 baseroms/gc-eu-mq/baserom.z64'
sh 'make -j setup VERSION=gc-eu-mq'
sh 'make -j RUN_CC_CHECK=0 VERSION=gc-eu-mq'
sh 'make clean assetclean VERSION=gc-eu-mq'
}
}
stage('Build gc-eu-mq-dbg') {
steps {
sh 'ln -s /usr/local/etc/roms/oot-gc-eu-mq-dbg.z64 baseroms/gc-eu-mq-dbg/baserom.z64'
sh 'make -j setup VERSION=gc-eu-mq-dbg'
sh 'make -j RUN_CC_CHECK=0 VERSION=gc-eu-mq-dbg'
sh 'make clean assetclean VERSION=gc-eu-mq-dbg'
}
}
stage('Build gc-us') {
steps {
sh 'ln -s /usr/local/etc/roms/oot-gc-us.z64 baseroms/gc-us/baserom.z64'
sh 'make -j setup VERSION=gc-us'
sh 'make -j RUN_CC_CHECK=0 VERSION=gc-us'
sh 'make clean assetclean VERSION=gc-us'
}
}
stage('Build gc-jp-ce') {
steps {
sh 'ln -s /usr/local/etc/roms/oot-gc-jp-ce.z64 baseroms/gc-jp-ce/baserom.z64'
sh 'make -j setup VERSION=gc-jp-ce'
sh 'make -j RUN_CC_CHECK=0 VERSION=gc-jp-ce'
sh 'make clean assetclean VERSION=gc-jp-ce'
}
}
stage('Build gc-eu') {
steps {
sh 'ln -s /usr/local/etc/roms/oot-gc-eu.z64 baseroms/gc-eu/baserom.z64'
sh 'make -j setup VERSION=gc-eu'
sh 'make -j RUN_CC_CHECK=0 VERSION=gc-eu'
sh 'make clean assetclean VERSION=gc-eu'
}
}
stage('Build gc-jp-mq') {
steps {
sh 'ln -s /usr/local/etc/roms/oot-gc-jp-mq.z64 baseroms/gc-jp-mq/baserom.z64'
sh 'make -j setup VERSION=gc-jp-mq'
sh 'make -j RUN_CC_CHECK=0 VERSION=gc-jp-mq'
sh 'make clean assetclean VERSION=gc-jp-mq'
}
}
stage('Build gc-us-mq') {
steps {
sh 'ln -s /usr/local/etc/roms/oot-gc-us-mq.z64 baseroms/gc-us-mq/baserom.z64'
sh 'make -j setup VERSION=gc-us-mq'
sh 'make -j RUN_CC_CHECK=0 VERSION=gc-us-mq'
sh 'make clean assetclean VERSION=gc-us-mq'
}
}
}
post {
always {
echo "Finished, deleting directory."
deleteDir()
}
cleanup {
echo "Clean up in post."
cleanWs(cleanWhenNotBuilt: false,
deleteDirs: true,
disableDeferredWipeout: true,
notFailBuild: true)
}
}
}