pipeline { agent { label 'ZAPD' } stages { // Non-parallel ZAPD stage stage('Build ZAPD') { steps { sh 'make -j WERROR=1' } } // CHECKOUT THE REPOS stage('Checkout Repos') { parallel { stage('Checkout oot') { steps { dir('oot') { git url: 'https://github.com/zeldaret/oot.git' } } } stage('Checkout mm') { steps{ dir('mm') { git url: 'https://github.com/zeldaret/mm.git' } } } } } // SETUP THE REPOS stage('Set up repos') { parallel { stage('Setup OOT') { steps { dir('oot') { sh 'cp /usr/local/etc/roms/baserom_oot.z64 baserom_original.z64' // Identical to `make setup` except for copying our newer ZAPD.out into oot sh 'git submodule update --init --recursive' sh 'make -C tools' sh 'cp ../ZAPD.out tools/ZAPD/' sh 'python3 fixbaserom.py' sh 'python3 extract_baserom.py' sh 'python3 extract_assets.py' } } } stage('Setup MM') { steps { dir('mm') { sh 'cp /usr/local/etc/roms/mm.us.rev1.z64 baserom.mm.us.rev1.z64' // Identical to `make setup` except for copying our newer ZAPD.out into mm sh 'make -C tools' sh 'cp ../ZAPD.out tools/ZAPD/' sh 'python3 tools/fixbaserom.py' sh 'python3 tools/extract_baserom.py' sh 'python3 extract_assets.py -t$(nproc)' } } } } } // BUILD THE REPOS stage('Build repos') { parallel { stage('Build oot') { steps { dir('oot') { sh 'make -j' } } } stage('Build mm') { steps { dir('mm') { sh 'make -j disasm' sh 'make -j all' } } } } } } post { always { cleanWs() } } }