Skip to content

Commit 52f256b

Browse files
committed
Revert "try old (modified) ishii yml"
This reverts commit dbe8ea6.
1 parent dbe8ea6 commit 52f256b

File tree

8 files changed

+760
-314
lines changed

8 files changed

+760
-314
lines changed
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
name: Dolphin-AppImage
2+
3+
on:
4+
push:
5+
workflow_dispatch:
6+
schedule:
7+
- cron: "15 0 * * 3"
8+
9+
jobs:
10+
dolphin-appimage:
11+
name: Project Plus Dolphin bundled as appimage
12+
runs-on: ubuntu-24.04
13+
env:
14+
yaqti: 6.7.3
15+
steps:
16+
- name: Checkout Upstream Repo
17+
uses: actions/checkout@v4
18+
with:
19+
repository: Motobug/Project-Plus-Dolphin
20+
ref: git-actions
21+
22+
- name: Checkout Submodules
23+
if: steps.cache-submodules.outputs.cache-hit != 'true'
24+
run: git submodule update --init --recursive -j $(getconf _NPROCESSORS_ONLN)
25+
26+
- name: Checkout AppImage Repo
27+
uses: actions/checkout@v4
28+
with:
29+
clean: false
30+
path: ci
31+
32+
# Runs the Dolphin action
33+
- name: Get Date
34+
id: get-date
35+
run: |
36+
echo "date=$(/bin/date -u "+%Y%m%d")" >> $GITHUB_OUTPUT
37+
shell: bash
38+
- name: cache
39+
uses: actions/cache@v4
40+
with:
41+
path: ~/.ccache
42+
key: build-ccache-${{ steps.get-date.outputs.date }}
43+
restore-keys: |
44+
build-ccache-
45+
env:
46+
CCACHE_MAXSIZE: 200M
47+
- name: Install Qt
48+
run: |
49+
curl -sLO https://files.pythonhosted.org/packages/47/42/351389ca36c7adfc5f4e92d086cdb2bdbde13f1b89ee882f4a1cab2183ac/yaqti-2021.7.29-py3-none-any.whl
50+
python3 -m pip install yaqti-2021.7.29-py3-none-any.whl
51+
pyver=$(python3 --version | awk '{print $2}')
52+
curl -sL https://raw.githubusercontent.com/qurious-pixel/yaqti/fetch/yaqti/fetchers.py -o $HOME/.local/lib/python${pyver%.*}/site-packages/yaqti/fetchers.py
53+
python -m yaqti install --os linux --platform desktop --version ${{ env.yaqti }} --modules linux_gcc_64 --set-envs --install-deps
54+
- name: Install Packages
55+
run: |
56+
sudo apt-get install -y build-essential dialog dpkg libbluetooth-dev liblz4-dev liblzma-dev libssl-dev libopus-dev libpng-dev libsystemd-dev \
57+
libzip-dev libzstd-dev zlib1g-dev libasound2-dev libpulse-dev pulseaudio p7zip p7zip-full libsfml-dev libminiupnpc-dev libmbedtls-dev libpugixml-dev \
58+
libbz2-dev liblzo2-dev libxi-dev libavcodec-dev libudev-dev libusb-1.0-0-dev libevdev-dev libc6-dev libhidapi-dev libavformat-dev libavdevice-dev \
59+
libfmt-dev libwayland-dev libxrandr-dev libglu1-mesa-dev libcurl4-openssl-dev x11-utils zenity wget curl git gettext ccache make cmake ninja-build \
60+
libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-icccm4 libxcb-image0-dev libxcb-cursor-dev
61+
- name: Dolphin-Build Number
62+
run: |
63+
export LASTCOMMIT=$(git log --pretty=format:%H -1)
64+
export DOLPHINVER=$(wget -qO- https://dolphin-emu.org/download/dev/${LASTCOMMIT} | grep '<title>' | awk '{print $NF}' | cut -d '<' -f 1)
65+
echo "DOLPHIN Build $DOLPHINVER"
66+
echo "DOLPHINVER=$DOLPHINVER" >> $GITHUB_ENV
67+
sed -i "s|\${DOLPHIN_WC_DESCRIBE}|$DOLPHINVER|g" Source/Core/Common/scmrev.h.in
68+
- name: Update Patchelf
69+
run: |
70+
PATCHELFVER=0.14.5
71+
curl -sL https://github.com/NixOS/patchelf/releases/download/${PATCHELFVER}/patchelf-${PATCHELFVER}-x86_64.tar.gz -o /tmp/patchelf.tar.gz
72+
tar -xvf /tmp/patchelf.tar.gz --directory /tmp/ ./bin/patchelf --strip-components=2
73+
sudo mv /tmp/patchelf /usr/bin
74+
patchelf --version
75+
- name: Build Dolphin
76+
run: |
77+
export Qt_DIR="${{github.workspace}}/qt/${{ env.yaqti }}/gcc_64/lib/cmake/Qt6"
78+
mkdir -p "$HOME/.ccache"
79+
mkdir build
80+
cd build
81+
cmake .. -GNinja -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc-13 -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++-13 -DCMAKE_PREFIX_PATH="${{github.workspace}}/qt/${{ env.yaqti }}/gcc_64/" -Ddatadir:PATH="share/dolphin-emu" -DBIN_INSTALL_DIR="install/usr/bin" -DCMAKE_INSTALL_PREFIX="install/usr" -DINC_INSTALL_DIR="install/usr/include" -DLIB_INSTALL_DIR="install/usr/lib" -DPKGCONFIG_INSTALL_DIR="install/usr/lib/pkgconfig" -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DENABLE_NOGUI=OFF
82+
ninja
83+
- name: Install Dolphin
84+
run: |
85+
cd build
86+
ninja install
87+
- name: Package Dolphin-Binary
88+
run: |
89+
mkdir -p $GITHUB_WORKSPACE/{artifacts,uploads}
90+
cp -P build/install/usr/bin/dolphin-emu $GITHUB_WORKSPACE/artifacts
91+
- name: Package Dolphin-AppImage
92+
env:
93+
QT_BASE_DIR: /qt/${{ env.yaqti }}/gcc_64
94+
QTDIR: $QT_BASE_DIR
95+
run: |
96+
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${GITHUB_WORKSPACE}/qt/${{ env.yaqti }}/gcc_64/lib/
97+
export PATH=$QT_BASE_DIR/bin:$PATH
98+
echo "PATH $PATH"
99+
sudo ln -s ${GITHUB_WORKSPACE}/$(find qt/ -name qmake) /usr/bin
100+
qmake -v
101+
cd /tmp
102+
curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage"
103+
curl -sSfLO "https://github.com/AppImage/AppImageUpdate/releases/download/continuous/AppImageUpdate-x86_64.AppImage"
104+
chmod a+x linuxdeploy*.AppImage
105+
chmod a+x AppImageUpdate-x86_64.AppImage
106+
./linuxdeploy-x86_64.AppImage --appimage-extract
107+
curl -sSfL "https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage" -o /tmp/squashfs-root/usr/bin/linuxdeploy-plugin-qt.AppImage
108+
chmod a+x /tmp/squashfs-root/usr/bin/linuxdeploy-plugin-qt.AppImage
109+
mv /tmp/squashfs-root/usr/bin/patchelf /tmp/squashfs-root/usr/bin/patchelf.orig
110+
sudo cp /usr/bin/patchelf /tmp/squashfs-root/usr/bin/patchelf
111+
cd $GITHUB_WORKSPACE
112+
mkdir -p squashfs-root
113+
cp -a build/install/usr $GITHUB_WORKSPACE/squashfs-root/
114+
cp Data/dolphin-emu.svg ./squashfs-root/dolphin-emu.svg
115+
cp Data/dolphin-emu.desktop ./squashfs-root/dolphin-emu.desktop
116+
curl -sSfL https://github.com/AppImage/AppImageKit/releases/download/continuous/runtime-x86_64 -o ./squashfs-root/runtime
117+
curl -sSfL "https://github.com/RPCS3/AppImageKit-checkrt/releases/download/continuous2/AppRun-patched-x86_64" -o ./squashfs-root/AppRun-patched
118+
cp ci/travis/appimage/{AppRun,update.sh} ./squashfs-root/
119+
mv /tmp/AppImageUpdate-x86_64.AppImage ./squashfs-root/usr/bin/AppImageUpdate
120+
echo ${{ env.DOLPHINVER }} > ./squashfs-root/version.txt
121+
chmod a+x ./squashfs-root/AppRun
122+
chmod a+x ./squashfs-root/runtime
123+
chmod a+x ./squashfs-root/AppRun-patched
124+
chmod a+x ./squashfs-root/update.sh
125+
export UPD_INFO="gh-releases-zsync|Motobug|Project-Plus-Dolphin|continuous|Dolphin_Emulator-x86_64.AppImage.zsync"
126+
/tmp/squashfs-root/AppRun --appdir="$GITHUB_WORKSPACE"/squashfs-root/ --plugin qt -d "$GITHUB_WORKSPACE"/squashfs-root/dolphin-emu.desktop -i "$GITHUB_WORKSPACE"/squashfs-root/dolphin-emu.svg \
127+
--exclude-library=libglib* --output appimage
128+
ls . | grep *.AppImage
129+
mv $(ls . | grep *.AppImage) $GITHUB_WORKSPACE/artifacts
130+
ls -al $GITHUB_WORKSPACE/artifacts
131+
sed -i 's/AppRun.wrapped/AppRun-patched/g' "$GITHUB_WORKSPACE"/squashfs-root/AppRun
132+
cat "$GITHUB_WORKSPACE"/squashfs-root/AppRun
133+
/tmp/squashfs-root/usr/bin/linuxdeploy-plugin-appimage --appdir="$GITHUB_WORKSPACE"/squashfs-root/
134+
ls . | grep *.AppImage
135+
mv Dolphin_Emulator-x86_64.AppImage $GITHUB_WORKSPACE/uploads/Dolphin_${DOLPHINVER}.AppImage
136+
ls -al $GITHUB_WORKSPACE/uploads
137+
continue-on-error: true
138+
- name: Upload Static Build
139+
uses: actions/upload-artifact@v4
140+
with:
141+
name: Project-Plus-Dolphin_${{ env.DOLPHINVER }}
142+
path: uploads/
143+
env:
144+
DEFAULT_BRANCH: git-actions
145+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/macos_build.yml

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
name: MacOS Build Steps
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build_macos:
7+
name: macOS Build
8+
runs-on: macos-14
9+
env:
10+
CCACHE_BASEDIR: ${{ github.workspace }}
11+
CCACHE_DIR: ${{ github.workspace }}/.ccache
12+
CCACHE_COMPRESS: true
13+
CCACHE_COMPRESSLEVEL: 9
14+
CCACHE_MAXSIZE: 200M
15+
16+
steps:
17+
- name: Checkout Repository
18+
uses: actions/checkout@v4
19+
with:
20+
submodules: recursive
21+
22+
- name: Install Packages
23+
env:
24+
HOMEBREW_NO_INSTALL_CLEANUP: 1
25+
HOMEBREW_NO_ANALYTICS: 1
26+
run: |
27+
if ! brew install ccache ninja; then
28+
brew update
29+
brew install ccache ninja
30+
fi
31+
32+
- name: Cache Dependencies
33+
id: cache-deps
34+
uses: actions/cache@v4
35+
with:
36+
path: ~/deps
37+
key: macOS deps ${{ hashFiles('.github/workflows/scripts/macos/build-dependencies.sh') }}
38+
39+
- name: Build Dependencies
40+
if: steps.cache-deps.outputs.cache-hit != 'true'
41+
run: .github/workflows/scripts/macos/build-dependencies.sh
42+
43+
- name: Cache MoltenVK
44+
id: cache-moltenvk
45+
uses: actions/cache@v4
46+
with:
47+
path: ~/moltenvk
48+
key: macOS MoltenVK ${{ hashFiles('Externals/MoltenVK') }}
49+
50+
- name: Build MoltenVK
51+
if: steps.cache-moltenvk.outputs.cache-hit != 'true'
52+
run: |
53+
MVK_VER="$(sed -nr 's/^.*set\(MOLTENVK_VERSION "([^"]+)".*$/\1/p' Externals/MoltenVK/CMakeLists.txt)"
54+
if [ -z "$MVK_VER" ]; then
55+
echo "::error::Failed to parse MoltenVK version from CMakeLists"
56+
exit 1
57+
fi
58+
git clone --depth 1 --branch "$MVK_VER" https://github.com/KhronosGroup/MoltenVK.git mvk-build
59+
pushd mvk-build
60+
git apply ../Externals/MoltenVK/patches/*.patch
61+
./fetchDependencies --macos
62+
make macos
63+
ls -l Package/Release/MoltenVK/dynamic/*
64+
chmod 755 Package/Release/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib
65+
mkdir -p "$HOME/moltenvk/lib/"
66+
mv Package/Release/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib "$HOME/moltenvk/lib/"
67+
popd
68+
rm -rf mvk-build
69+
70+
# -- SETUP CCACHE - https://cristianadam.eu/20200113/speeding-up-c-plus-plus-github-actions-using-ccache/
71+
- name: Prepare ccache timestamp
72+
id: ccache_cache_timestamp
73+
run: echo "timestamp=$(date -u "+%Y-%m-%d-%H;%M;%S")" >> $GITHUB_OUTPUT
74+
75+
- name: Cache ccache cache
76+
uses: actions/cache@v4
77+
with:
78+
path: .ccache
79+
key: macOS ccache ${{ steps.ccache_cache_timestamp.outputs.timestamp }}
80+
restore-keys: macOS ccache
81+
82+
- name: Generate CMake Files
83+
run: |
84+
COMMON_ARGS=(
85+
-DCMAKE_PREFIX_PATH="$HOME/deps;$HOME/moltenvk"
86+
-DCMAKE_BUILD_TYPE=Release
87+
-DUSE_BUNDLED_MOLTENVK=OFF
88+
-DMACOS_CODE_SIGNING=OFF
89+
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
90+
-DCMAKE_C_COMPILER_LAUNCHER=ccache
91+
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
92+
-DCMAKE_DISABLE_PRECOMPILE_HEADERS=ON
93+
-DUSE_SYSTEM_LIBS=OFF
94+
-DUSE_SYSTEM_BZIP2=ON
95+
-DUSE_SYSTEM_CURL=ON
96+
-DUSE_SYSTEM_ICONV=ON
97+
-DUSE_SYSTEM_SDL2=ON
98+
-GNinja
99+
)
100+
101+
cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 \
102+
-DCMAKE_SYSTEM_PROCESSOR=x86_64 \
103+
-DCMAKE_SYSTEM_NAME=Darwin \
104+
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.00 \
105+
"${COMMON_ARGS[@]}" \
106+
-B build .
107+
cmake -DCMAKE_OSX_ARCHITECTURES=arm64 \
108+
-DCMAKE_SYSTEM_PROCESSOR=arm64 \
109+
-DCMAKE_SYSTEM_NAME=Darwin \
110+
-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
111+
"${COMMON_ARGS[@]}" \
112+
-B build-arm .
113+
114+
- name: Build Dolphin (x86_64)
115+
working-directory: build
116+
run: |
117+
ccache -p
118+
ccache -s
119+
ccache -z
120+
ninja dolphin-emu
121+
ccache -s
122+
123+
- name: Build Dolphin (arm64)
124+
working-directory: build-arm
125+
run: |
126+
ccache -p
127+
ccache -s
128+
ccache -z
129+
ninja dolphin-emu
130+
ccache -s
131+
132+
- name: Prepare Build Artifacts
133+
id: create-artifact
134+
env:
135+
EVENT_NAME: ${{ github.event_name }}
136+
PR_TITLE: ${{ github.event.pull_request.title }}
137+
PR_NUM: ${{ github.event.pull_request.number }}
138+
PR_SHA: ${{ github.event.pull_request.head.sha }}
139+
run: |
140+
lipo -create build/Binaries/DolphinQt.app/Contents/MacOS/DolphinQt build-arm/Binaries/DolphinQt.app/Contents/MacOS/DolphinQt -o dolphin
141+
mv dolphin build/Binaries/DolphinQt.app/Contents/MacOS/DolphinQt
142+
TAG="$(git tag --points-at HEAD)"
143+
if [ ! -z "$TAG" ]; then
144+
SUFFIX="$TAG"
145+
elif [ "$EVENT_NAME" == "pull_request" ]; then
146+
PR_TITLE=$(echo "${PR_TITLE}" | tr -cd '[a-zA-Z0-9[:space:]]_-')
147+
SUFFIX="pr[$PR_NUM]-sha[$PR_SHA]-title[$PR_TITLE"
148+
SUFFIX=$(printf "%.99s]" "$SUFFIX")
149+
else
150+
SUFFIX="sha[$(git rev-parse --short HEAD)]"
151+
fi
152+
APPNAME="ProjectPlus-$SUFFIX"
153+
mv build/Binaries/DolphinQt.app "$APPNAME.app"
154+
tar --options xz:compression-level=9 -cvJf "$APPNAME.tar.xz" "$APPNAME.app"
155+
echo "name=$APPNAME" >> "$GITHUB_OUTPUT"
156+
157+
- name: Upload Artifact
158+
uses: actions/upload-artifact@v4
159+
with:
160+
name: ${{ steps.create-artifact.outputs.name }}
161+
path: "*.tar.xz"

0 commit comments

Comments
 (0)