Merge pull request #438 from s4Ys369/revert-434-patch-1
[sm64pc.git] / Jenkinsfile
blobeee93a9fce9b0765cd42f3baad6edce624c1939e
1 pipeline {
2   agent any
3   stages {
4     stage('Build Tools') {
5       steps {
6         sh 'make -j4 -C tools/'
7       }
8     }
9     stage('Extract Assets') {
10       steps {
11         sh 'ln -s "$ROMS_DIR/Super Mario 64 (J) [!].z64" baserom.jp.z64'
12         sh 'ln -s "$ROMS_DIR/Super Mario 64 (U) [!].z64" baserom.us.z64'
13         sh 'ln -s "$ROMS_DIR/Super Mario 64 (E) (M3) [!].z64" baserom.eu.z64'
14         // verify no assets were committed to repo
15         sh '[ -z "$(find {actors,levels,textures}/ -name \'*.png\')" ]'
16         sh '[ -z "$(find assets/ -name \'*.m64\' -or \'*.bin\')" ]'
17         sh './extract_assets.py jp us eu'
18       }
19     }
20     stage('Build U Source') {
21       steps {
22         sh 'make -j4 VERSION=us'
23       }
24     }
25     stage('Build E Source') {
26       steps {
27         sh 'make -j4 VERSION=eu'
28       }
29     }
30     stage('Build J Source') {
31       steps {
32         sh 'make -j4 VERSION=jp'
33       }
34     }
35     stage('Test Enhancements') {
36       steps {
37         sh '''
38           set -e
39           for f in enhancements/*.patch
40           do
41             git clean -fd .
42             git checkout -- .
43             echo 'y' | tools/apply_patch.sh "$f"
44             make -j4 VERSION=us COMPARE=0
45           done
46         '''
47       }
48     }
49   }
50   environment {
51     QEMU_IRIX = credentials('qemu-irix')
52     ROMS_DIR = credentials('roms')
53   }