Skip to content

fw agnostic save mounting #433

fw agnostic save mounting

fw agnostic save mounting #433

Workflow file for this run

name: Build package
on:
push:
paths-ignore:
- "**/*.md"
- '**/*.txt'
pull_request:
paths-ignore:
- "**/*.md"
- '**/*.txt'
workflow_dispatch:
jobs:
build_pkg:
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set env vars
run: |
echo "llvm_ver=12.0" >> $GITHUB_ENV
echo "sha_name=$(echo ${GITHUB_SHA} | cut -c1-8)" >> $GITHUB_ENV
echo "sdl_path=SDL-PS4" >> $GITHUB_ENV
echo "curl_path=oosdk_libraries/curl-7.64.1" >> $GITHUB_ENV
echo "OO_PS4_TOOLCHAIN=${GITHUB_WORKSPACE}/OpenOrbis/PS4Toolchain" >> $GITHUB_ENV
- name: Cache OpenOrbis Toolchain
id: cache-oosdk
uses: actions/cache@v4
with:
path: ${{ env.OO_PS4_TOOLCHAIN }}
key: ${{ runner.os }}-oosdk-llvm-${{ env.llvm_ver }}
# temporary release until 0.53 is released
- name: Download OpenOrbis Toolchain
run: curl -sL https://github.com/illusion0001/OpenOrbis-PS4-Toolchain/releases/download/0.0.1.416/toolchain.tar.gz | tar xz -C ./
- name: Checkout oosdk_libraries
uses: actions/checkout@v4
with:
repository: bucanero/oosdk_libraries
path: oosdk_libraries
- name: Copy makerules
run: cp oosdk_libraries/build_rules.mk OpenOrbis/PS4Toolchain/build_rules.mk
- name: TEMP def update
run: |
curl https://raw.githubusercontent.com/OpenOrbis/OpenOrbis-PS4-Toolchain/master/include/orbis/UserService.h > OpenOrbis/PS4Toolchain/include/orbis/UserService.h
curl https://raw.githubusercontent.com/OpenOrbis/OpenOrbis-PS4-Toolchain/master/include/orbis/_types/user.h > OpenOrbis/PS4Toolchain/include/orbis/_types/user.h
- name: Checkout dbglogger
uses: actions/checkout@v4
with:
repository: bucanero/dbglogger
path: dbglogger
- name: Checkout apollo-lib
uses: actions/checkout@v4
with:
repository: bucanero/apollo-lib
path: apollo-lib
- name: Checkout SQLite
uses: actions/checkout@v4
with:
repository: bucanero/libSQLite-ps4
path: libSQLite-ps4
- name: Checkout SDL-PS4
uses: actions/checkout@v4
with:
repository: bucanero/SDL-PS4
path: ${{ env.sdl_path }}
ref: ps4
- name: Checkout mxml
uses: actions/checkout@v4
with:
repository: bucanero/mxml
path: mxml
- name: Checkout libunrar
uses: actions/checkout@v4
with:
repository: bucanero/libunrar-ps3
path: libunrar-ps3
- name: Checkout libun7zip
uses: actions/checkout@v4
with:
repository: bucanero/libun7zip
path: libun7zip
- name: Checkout libjbc
uses: actions/checkout@v4
with:
repository: bucanero/ps4-libjbc
path: ps4-libjbc
- name: Checkout libs3m
uses: actions/checkout@v4
with:
repository: bucanero/s3mplay
path: s3mplay
- name: Cache LLVM and Clang
id: cache-llvm
uses: actions/cache@v4
with:
path: ./llvm
key: llvm-${{ env.llvm_ver }}
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v1
with:
version: ${{ env.llvm_ver }}
cached: ${{ steps.cache-llvm.outputs.cache-hit }}
- name: Install zlib
working-directory: oosdk_libraries/zlib_partial
run: make install
- name: Install polarssl
working-directory: oosdk_libraries/polarssl-1.3.9
run: make install
- name: Install libzip
working-directory: oosdk_libraries/libzip-1.9.2
run: |
cmake --toolchain ../../SDL-PS4/cmake/openorbis.cmake -DBUILD_SHARED=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_DOC=OFF -DENABLE_LZMA=OFF -DENABLE_ZSTD=OFF -DENABLE_MBEDTLS=OFF .
make
cp zipconf.h ${OO_PS4_TOOLCHAIN}/include/zipconf.h
cp lib/zip.h ${OO_PS4_TOOLCHAIN}/include/zip.h
cp lib/libzip.a ${OO_PS4_TOOLCHAIN}/lib/libzip.a
- name: Install dbglogger
working-directory: dbglogger
run: make -f Makefile.PS4 install
- name: Install apollo-lib
working-directory: apollo-lib
run: make -f Makefile.PS4 install
- name: Install SQLite
working-directory: libSQLite-ps4
run: make install
- name: Install libun7zip
working-directory: libun7zip
run: make -f Makefile.PS4 install
- name: Install libunrar-ps3
working-directory: libunrar-ps3
run: make -f Makefile.PS4 install
- name: Install mini xml
working-directory: mxml/ps4
run: make install
- name: Install libjbc
working-directory: ps4-libjbc
run: make install
- name: Install libs3m
working-directory: s3mplay
run: make -f Makefile.ps4 install
- name: Cache SDL2
id: cache-sdl2
uses: actions/cache@v4
with:
path: ${{ env.sdl_path }}/orbis/libSDL2.a
key: ${{ runner.os }}-sdl2
- name: Install SDL2 library
if: steps.cache-sdl2.outputs.cache-hit != 'true'
working-directory: ${{ env.sdl_path }}
run: |
mkdir orbis && cd orbis
cmake --toolchain ../cmake/openorbis.cmake ..
make
- name: Cache curl
id: cache-curl
uses: actions/cache@v4
with:
path: ${{ env.curl_path }}/orbis/lib/libcurl.a
key: ${{ runner.os }}-curl
- name: Install libcurl library
if: steps.cache-curl.outputs.cache-hit != 'true'
working-directory: ${{ env.curl_path }}
run: |
mkdir orbis && cd orbis
cmake --toolchain ../../../SDL-PS4/cmake/openorbis.cmake .. -DCMAKE_USE_POLARSSL=1 -DUSE_UNIX_SOCKETS=0 -DENABLE_THREADED_RESOLVER=0 -DENABLE_IPV6=0
make libcurl
- name: Copy cached libraries
run: |
cp ${sdl_path}/orbis/libSDL2.a "${OO_PS4_TOOLCHAIN}/lib"
cp ${curl_path}/orbis/lib/libcurl.a "${OO_PS4_TOOLCHAIN}/lib"
cp -R ${curl_path}/include/curl "${OO_PS4_TOOLCHAIN}/include/"
- name: Add save patches to Package
run: make createzip
- name: Build Apollo App Package
run: |
make
mv IV0000-APOL00004_00-APOLLO0000000PS4.pkg apollo-ps4-build_${{ env.sha_name }}.pkg
- name: Push package artifact
uses: actions/upload-artifact@v4
with:
name: apollo-ps4-build_${{ env.sha_name }}
path: apollo-ps4-build_${{ env.sha_name }}.pkg
if-no-files-found: error