-
Notifications
You must be signed in to change notification settings - Fork 12
Add github workflows for automatic builds of Dolphin #59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Thanks a lot, and also Merry Christmas and Happy New Year! I'll try to take a deep look soon, but I'm currently still moving so bare with me |
|
Happy new year! Take your time |
Still tried on Kubuntu 25.10 just in case (24.04 is just too old for some of my needs, and doesn't support Qt6 / KDE Plasma 6)
So I ran Now I get
|
Ah I forgot to use I think this indicates that you don't have |
|
|
||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| uses: actions/checkout@v2 | |
| uses: actions/checkout@v6 |
|
|
||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| uses: actions/checkout@v2 | |
| uses: actions/checkout@v6 |
|
|
||
| steps: | ||
| - name: Checkout code | ||
| uses: actions/checkout@v2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| uses: actions/checkout@v2 | |
| uses: actions/checkout@v6 |
| sudo apt install libevdev-dev | ||
| sudo apt install build-essential | ||
| sudo apt install cmake | ||
| sudo apt install git |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
git is necessarily already installed on GitHub runners
| sudo apt install git |
| - name: Install dependencies | ||
| run: | | ||
| sudo apt update && sudo apt upgrade | ||
| sudo apt install libxi-dev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These apt install should be a single command (you can spit to multiple lines for readability with \ in bash iirc). So you get atomic dependency resolution, fewer downloads+unpack passes, and more comprehensive errors on failures.
| sudo apt install libxi-dev | ||
| sudo apt install libxrandr-dev | ||
| sudo apt install libxinerama-dev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate entries
| sudo apt install libxi-dev | |
| sudo apt install libxrandr-dev | |
| sudo apt install libxinerama-dev |
| - name: Install dependencies | ||
| run: | | ||
| sudo apt update && sudo apt upgrade | ||
| sudo apt install libxi-dev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
duplicated below
| sudo apt install libxi-dev |
| tar -czf dolphin_linux.tar.gz Binaries/ | ||
|
|
||
| - name: Upload Build | ||
| uses: actions/upload-artifact@v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| uses: actions/upload-artifact@v4 | |
| uses: actions/upload-artifact@v6 |
| tar -czf dolphin_mac.tar.gz Binaries/ | ||
|
|
||
| - name: Upload Build | ||
| uses: actions/upload-artifact@v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| uses: actions/upload-artifact@v4 | |
| uses: actions/upload-artifact@v6 |
| ls | ||
|
|
||
| - name: Upload Build | ||
| uses: actions/upload-artifact@v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| uses: actions/upload-artifact@v4 | |
| uses: actions/upload-artifact@v6 |
| run: | | ||
| cd build | ||
| make -j$(sysctl -n hw.logicalcpu) | ||
| tar -czf dolphin_mac.tar.gz Binaries/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actions/upload-artifact will zip any non-zip files, it won,t upload a file directly as an artefact. So you you end up with a double archived.
You can either make this step produce a zip. Or skip the step and point actions/upload-artifact to this folder instead.
(this comment applies to all workflows)
Adds workflows for building Dolphin on Linux, Mac OS and Windows as discussed in #58 . Originally I wanted to merge them into a single file but I found them different enough that I made separate files for each OS.
Alongside building, the workflows also upload the builds. The one for Linux is built on Ubuntu 24.04 so it'll only work on that version specifically (due to different package versions). The one for Windows runs fine (the executable gets built on folder
Releaseso it has to be manually copied to the root directory, alongside the python embeded files like before).I had to make a few changes in the source code though. In finding python libraries whenever
find_packageis attempted it uses the systems python libraries which didn't run for me on my Windows, so instead I included them manually from the one inExternals/python, let me know what you think.As for the second change, I encountered a very strange issue. If you attempt to build the project with cmake on Windows, you'll encounter symbol error on
Gui::DrawText, which should definitely exist and doesn't happen for other methods inGui. If you change the name to something else (Gui::DrawText2in this case) the projects gets built successfully... Honestly a very odd issue and considering that this doesn't happen on Linux and Mac OS (and via solution) it's safe to assume that it's a bug with the compiler/linker/build system. Thankfully this doesn't change Python's API but if you dislike this I'll revert the changes but we'll also have to ditch Windows' workflow.The Error:
And also, merry Christmas!