Merge pull request #20489 from ANR2MERefork/ios_release

Create iOS artifact and release on CI
This commit is contained in:
Henrik Rydgård authored and GitHub committed 2025-06-17 08:00:09 +02:00
commit 0ca4667b15
2 files changed
+200 -9

No files matched your search

+44 -9
View File
@@ -188,7 +188,7 @@ jobs:
extra: ios
cc: clang
cxx: clang++
args: ./b.sh --ios
args: chmod +x b-ios.sh && ./b-ios.sh
id: ios
runs-on: ${{ matrix.os }}
@@ -224,8 +224,27 @@ jobs:
sudo apt-get update -y -qq
sudo apt-get install libsdl2-dev libgl1-mesa-dev libglu1-mesa-dev libsdl2-ttf-dev libfontconfig1-dev
- name: Create macOS git-version.cpp for tagged release
if: github.ref_type == 'tag' && runner.os == 'macOS' && matrix.extra == 'test'
- name: Install iOS dependencies
if: matrix.id == 'ios'
run: |
brew install ldid dpkg pillow
# Check Xcode version
xcodebuild -version
# List available Xcode versions
ls /Applications | grep Xcode
# Select a specific Xcode version. The recommended Xcode version is 9.4.1 according to https://github.com/Halo-Michael/ppsspp-builder
#sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
- name: Create iOS Version.txt file
if: matrix.id == 'ios'
run: |
# Create Version.txt file (should probably do this during building process)
mkdir -p build-ios/PPSSPP.app
GIT_VERSION=$(git describe --always --tags)
echo ${GIT_VERSION#v} > build-ios/PPSSPP.app/Version.txt
- name: Create macOS & iOS git-version.cpp for tagged release
if: github.ref_type == 'tag' && (matrix.id == 'macos' || matrix.id == 'ios')
run: |
echo "const char *PPSSPP_GIT_VERSION = \"${GITHUB_REF_NAME}\";" > git-version.cpp
echo "#define PPSSPP_GIT_VERSION_NO_UPDATE 1" >> git-version.cpp
@@ -260,9 +279,9 @@ jobs:
${{ matrix.args }}
- name: Package build
if: matrix.extra == 'test'
if: matrix.extra == 'test' || matrix.id == 'ios'
run: |
mkdir ppsspp
mkdir -p ppsspp
if [ -e build*/$BUILD_CONFIGURATION/PPSSPPSDL ]; then
cp build*/$BUILD_CONFIGURATION/PPSSPPSDL ppsspp/
elif [ -e build*/PPSSPPSDL.app ]; then
@@ -272,6 +291,12 @@ jobs:
zip -qry PPSSPPSDL.zip PPSSPPSDL.app
rm -rf PPSSPPSDL.app
popd
elif [ -e build-ios/PPSSPP.app ]; then
# Get the final files generated by b-ios.h script
find build -name 'PPSSPP*.ipa' -exec cp -a '{}' ppsspp/ \;
find build -name 'PPSSPP*.xcarchive' -exec cp -a '{}' ppsspp/ \;
find build -name 'PPSSPP*.deb' -exec cp -a '{}' ppsspp/ \;
find build -name 'org.ppsspp*.deb' -exec cp -a '{}' ppsspp/ \;
elif [ -e build*/PPSSPPSDL ]; then
cp build*/PPSSPPSDL ppsspp/
cp -r assets ppsspp/assets
@@ -294,16 +319,26 @@ jobs:
name: ${{ matrix.os }} build
path: ppsspp/
- name: Upload iOS build
uses: actions/upload-artifact@v4
if: matrix.id == 'ios'
with:
name: ${{ matrix.id }} build
path: ppsspp/
- name: Create macOS release
if: github.ref_type == 'tag' && runner.os == 'macOS' && matrix.extra == 'test'
if: github.ref_type == 'tag' && matrix.id == 'macos'
working-directory: ppsspp
run: mv PPSSPPSDL.zip PPSSPPSDL-macOS-${GITHUB_REF_NAME}.zip
- name: Upload macOS release
- name: Upload macOS & iOS release
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
if: github.ref_type == 'tag' && runner.os == 'macOS' && matrix.extra == 'test'
if: github.ref_type == 'tag' && (matrix.id == 'macos' || matrix.id == 'ios')
with:
files: ppsspp/*.zip
files: |
ppsspp/*.zip
ppsspp/*.ipa
ppsspp/*.deb
body: >
PPSSPP is a cross-platform PSP emulator.
Visit PPSSPP [official website](https://ppsspp.org)