mirror of
https://github.com/luanti-org/luanti.git
synced 2025-11-29 12:15:18 +01:00
* Build from sources with prebuilt dependencies. Cross build for x86_64 and older macOS SDKs.
121 lines
3.6 KiB
YAML
121 lines
3.6 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'
|
|
- 'util/ci/**'
|
|
- '.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'
|
|
- 'util/ci/**'
|
|
- '.github/workflows/macos.yml'
|
|
|
|
jobs:
|
|
build-older-macos:
|
|
strategy:
|
|
matrix:
|
|
osver: [11.3]
|
|
xcodever: [16.2]
|
|
arch: ["x86_64"]
|
|
build_type: ["Debug"]
|
|
xcode: ["no"]
|
|
include:
|
|
- osver: 11.3
|
|
xcodever: 16.2
|
|
arch: "x86_64"
|
|
build_type: "Debug"
|
|
xcode: "no"
|
|
- osver: 11.3
|
|
xcodever: 16.2
|
|
arch: "arm64"
|
|
build_type: "Release"
|
|
xcode: "yes"
|
|
runs-on: macos-15
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Prepare environment
|
|
run: |
|
|
echo "REPDIR=$(pwd)" >> $GITHUB_ENV
|
|
echo "osver=${{matrix.osver}}" >> $GITHUB_ENV
|
|
echo "xcodever=${{matrix.xcodever}}" >> $GITHUB_ENV
|
|
echo "arch=${{matrix.arch}}" >> $GITHUB_ENV
|
|
echo "build_type=${{matrix.build_type}}" >> $GITHUB_ENV
|
|
|
|
- name: Install deps
|
|
run: |
|
|
mkdir downloads
|
|
source ./util/ci/common.sh
|
|
source ./util/ci/macos_sdk.sh
|
|
install_macos_precompiled_deps $osver $arch
|
|
install_macos_sdk $osver "$xcodever" downloads
|
|
|
|
- name: Build with GNU Make
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
export DEPS_DIR=/Users/Shared/macos${osver}_${arch}_deps
|
|
export USE_XCODE=no
|
|
../util/ci/build_macos.sh
|
|
|
|
- name: Build and Archive with Xcode
|
|
if: ${{matrix.xcode == 'yes'}}
|
|
run: |
|
|
mkdir build_xcode
|
|
cd build_xcode
|
|
export DEPS_DIR=/Users/Shared/macos${osver}_${arch}_deps
|
|
export USE_XCODE=yes
|
|
../util/ci/build_macos.sh
|
|
|
|
- name: Test GNU Make build
|
|
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
|
|
|
|
- name: Test XCode build
|
|
if: ${{matrix.xcode == 'yes'}}
|
|
run: |
|
|
./build_xcode/build/${build_type}/luanti.app/Contents/MacOS/luanti --run-unittests
|
|
./build_xcode/luanti.xcarchive/Products/Applications/luanti.app/Contents/MacOS/luanti --run-unittests
|
|
|
|
- name: Diff Resources
|
|
if: ${{matrix.xcode == 'yes'}}
|
|
run: |
|
|
diff -rd ./build/macos/luanti.app/Contents/Resources ./build_xcode/build/${build_type}/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
|
|
# 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
|
|
cpack -G ZIP -B macos
|
|
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: luanti-macos${{matrix.osver}}_${{matrix.arch}}
|
|
path: ./build/macos/*.zip
|