pipeline { agent any options { buildDiscarder( logRotator( numToKeepStr: '5' ) ) } stages { stage("Clean Up") { agent { label 'linuxfs' } steps { script { sh ''' #!/bin/bash git clean -xfd git reset --hard ''' } } post { always { deleteDir() } } } stage("Clone Viewer Source") { agent { label "linuxfs" } steps { script { sh ''' #!/bin/bash git submodule add https://github.com/FirestormViewer/phoenix-firestorm ''' } } } stage("Apply Patches") { agent { label "LinuxFS" } steps { script { sh ''' #!/bin/bash cd patches # Loop over all patch files and apply them for patch_file in *.patch; do if [ -f "$patch_file" ] then echo "Applying $patch_file to ../phoenix-firestorm/" patch -d ../phoenix-firestorm/ -Np1 < "$patch_file" fi done echo "All patches applied." ''' } } } stage("Build Viewer") { agent { label "linuxfs" } steps { script { sh ''' #!/bin/bash cd phoenix-firestorm rm -fv build*/newview/Phoenix*tar* rm -fv build*/newview/*.AppImage rm -rfv build*/newview/squash* rm -rfv build*/newview/packaged chmod +x /firestorm/installables.sh /firestorm/installables.sh autobuild configure -A64 -c ReleaseFS_open -- --fmodstudio --chan FS_ci_zdev --package -DLL_TESTS:BOOL=NO autobuild build -A64 -c ReleaseFS_open --no-configure -- --fmodstudio || true ''' } } post { always { archiveArtifacts artifacts: "phoenix*/build*/newview/Phoenix*tar*" deleteDir() } } } } }