Files
mcpe/.github/workflows/build.yml
2024-04-07 19:31:55 +03:00

156 lines
5.1 KiB
YAML

name: 'Build'
on:
- push
- pull_request
jobs:
linux:
strategy:
fail-fast: false
matrix:
include:
- name: OpenGLES
render: gles
- name: OpenGL
render: gl
name: Linux (${{ matrix.name }})
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends -y build-essential cmake ninja-build libopenal-dev libsdl2-dev zlib1g-dev
- name: Build
run: |
cmake -GNinja -S. -Bbuild -Drender=${{ matrix.render }}
cmake --build build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ReMinecraftPE-Linux-${{ matrix.name }}
path: build/app
windows:
strategy:
fail-fast: false
matrix:
include:
- name: SDL
platform: sdl
- name: Native
platform: windows
name: Windows (${{ matrix.name }})
runs-on: windows-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Build
run: |
cmake -S. -Bbuild -Dplatform=${{ matrix.platform }}
cmake --build build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ReMinecraftPE-Windows-${{ matrix.name }}
path: build/app
wasm:
name: WASM
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends -y cmake ninja-build
- name: Build
run: ./build-wasm.sh
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ReMinecraftPE-WASM
path: wasm/dist
macos:
name: macOS
runs-on: macos-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Install Dependencies
run: brew install sdl2 libpng
- name: Build
run: |
cmake -S. -Bbuild
cmake --build build
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ReMinecraftPE-macOS
path: build/app
#- name: Build macOS Archive
# run: |
# cd platforms/macos/projects/Minecraft
# xcodebuild -scheme "MinecraftClient.SDL2" \
# -archivePath $RUNNER_TEMP/GitHubActions_MacOS_SDL2.xcarchive \
# -sdk macosx \
# -configuration "Release (Default)" \
# -destination generic/platform=macOS \
# GCC_PREPROCESSOR_DEFINITIONS='MISSING_SOUND_DATA $(GCC_PREPROCESSOR_DEFINITIONS)' \
# -quiet \
# clean archive
# @NOTE: Newer versions of Xcode will complain and refuse to build old XIB files or target old iOS versions
#ios:
# runs-on: macos-latest
# steps:
# - name: Checkout Repository
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Build iOS Archive
# run: |
# cd platforms/macos/projects/Minecraft
# xcodebuild -scheme "minecraftpe" \
# -archivePath $RUNNER_TEMP/GitHubActions_iOS.xcarchive \
# -sdk iphoneos \
# -configuration "Release (iOS)" \
# -destination generic/platform=iOS \
# GCC_PREPROCESSOR_DEFINITIONS='MISSING_SOUND_DATA $(GCC_PREPROCESSOR_DEFINITIONS)' \
# -quiet \
# clean archive
android:
strategy:
fail-fast: false
matrix:
include:
- name: SDL
directory: platforms/sdl/android
- name: Native
directory: platforms/android/project
name: Android (${{ matrix.name }})
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
submodules: true
- name: Setup JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Build
run: |
cd ${{ matrix.directory }}
./gradlew build