mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-10-31 15:35:21 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: macos
 | |
| 
 | |
| # build on c/cpp changes or workflow changes
 | |
| on:
 | |
|   push:
 | |
|     paths:
 | |
|       - 'lib/**.[ch]'
 | |
|       - 'lib/**.cpp'
 | |
|       - 'src/**.[ch]'
 | |
|       - 'src/**.cpp'
 | |
|       - 'irr/**.[ch]'
 | |
|       - 'irr/**.cpp'
 | |
|       - 'irr/**.mm' # Objective-C(++)
 | |
|       - '**/CMakeLists.txt'
 | |
|       - 'cmake/Modules/**'
 | |
|       - 'po/**.po'
 | |
|       - '.github/workflows/macos.yml'
 | |
|   pull_request:
 | |
|     paths:
 | |
|       - 'lib/**.[ch]'
 | |
|       - 'lib/**.cpp'
 | |
|       - 'src/**.[ch]'
 | |
|       - 'src/**.cpp'
 | |
|       - 'irr/**.[ch]'
 | |
|       - 'irr/**.cpp'
 | |
|       - 'irr/**.mm' # Objective-C(++)
 | |
|       - '**/CMakeLists.txt'
 | |
|       - 'cmake/Modules/**'
 | |
|       - 'po/**.po'
 | |
|       - '.github/workflows/macos.yml'
 | |
| 
 | |
| jobs:
 | |
|   build-intel-macos:
 | |
|     # use lowest possible macOS running on x86_64 supported by brew to support more users
 | |
|     runs-on: macos-13
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - name: Install deps
 | |
|         run: |
 | |
|           source ./util/ci/common.sh
 | |
|           install_macos_deps
 | |
| 
 | |
|       - name: Build
 | |
|         run: |
 | |
|           mkdir build
 | |
|           cd build
 | |
|           cmake .. \
 | |
|             -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 \
 | |
|             -DCMAKE_FIND_FRAMEWORK=LAST \
 | |
|             -DCMAKE_INSTALL_PREFIX=../build/macos/ \
 | |
|             -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE \
 | |
|             -DINSTALL_DEVTEST=TRUE
 | |
|           cmake --build . -j$(sysctl -n hw.logicalcpu)
 | |
|           make install
 | |
| 
 | |
|       - name: Test
 | |
|         run: |
 | |
|           ./build/macos/luanti.app/Contents/MacOS/luanti --run-unittests
 | |
| 
 | |
|       # Zipping the built .app preserves permissions on the contained files,
 | |
|       #   which the GitHub artifact pipeline would otherwise strip away.
 | |
|       - name: CPack
 | |
|         run: |
 | |
|           cd build
 | |
|           rm -rf macos
 | |
|           cmake .. -DINSTALL_DEVTEST=FALSE
 | |
|           cpack -G ZIP -B macos
 | |
| 
 | |
|       - uses: actions/upload-artifact@v4
 | |
|         with:
 | |
|           name: luanti-macos
 | |
|           path: ./build/macos/*.zip
 | |
|   build-arm-macos-xcode:
 | |
|     runs-on: macos-14
 | |
|     steps:
 | |
|       - uses: actions/checkout@v4
 | |
|       - name: Install deps
 | |
|         run: |
 | |
|           source ./util/ci/common.sh
 | |
|           install_macos_deps
 | |
|           # brew jsoncpp do not include libjsoncpp.a, and if installed header conflict caused build failure
 | |
|           brew uninstall jsoncpp
 | |
| 
 | |
|       - name: Build with Cmake
 | |
|         run: |
 | |
|           mkdir build
 | |
|           cd build
 | |
|           cmake .. \
 | |
|             -DCMAKE_OSX_DEPLOYMENT_TARGET=14 \
 | |
|             -DCMAKE_FIND_FRAMEWORK=LAST \
 | |
|             -DCMAKE_INSTALL_PREFIX=../build/macos/ \
 | |
|             -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE \
 | |
|             -DENABLE_SYSTEM_JSONCPP=OFF
 | |
|           cmake --build . -j$(sysctl -n hw.logicalcpu)
 | |
|           make install
 | |
| 
 | |
|       - name: Build and Archive with Xcode
 | |
|         run: |
 | |
|           mkdir build_xcode
 | |
|           cd build_xcode
 | |
|           ../util/ci/build_xcode.sh
 | |
| 
 | |
|       - name: Tests
 | |
|         run: |
 | |
|           mkdir -p "${HOME}/Library/Application Support/minetest/games/"
 | |
|           ln -s "${PWD}/games/devtest" "${HOME}/Library/Application Support/minetest/games/"
 | |
|           ./build/macos/luanti.app/Contents/MacOS/luanti --run-unittests
 | |
|           ./build_xcode/luanti.xcarchive/Products/Applications/luanti.app/Contents/MacOS/luanti --run-unittests
 | |
| 
 | |
|       - name: Diff Resources
 | |
|         run: |
 | |
|           diff -rd ./build/macos/luanti.app/Contents/Resources ./build_xcode/build/Release/luanti.app/Contents/Resources || exit 1
 | |
|           diff -rd ./build/macos/luanti.app/Contents/Resources ./build_xcode/luanti.xcarchive/Products/Applications/luanti.app/Contents/Resources || exit 1
 |