On branch monkeyxWiki

Changes to be committed:
	modified:   wiki-rtd/docs/wiki_development/general/build-locally.md
This commit is contained in:
monkeyx-net 2024-05-26 17:23:09 +01:00
parent c511e1d71f
commit fc5eb15132

View file

@ -1,23 +1,34 @@
# Development Build Locally Notes # Development Build Locally Notes
This is WIP to help build RetroDECK locally. This is WIP to help build RetroDECK locally.
It is based on notes taken while adding the Ruffle(Flash Emulator) to the RetroDECK project. It is based on notes taken while adding the Ruffle(Flash Emulator) to the RetroDECK project.
## Overview ## Overview
RetroDECK is a big project in terms of scope and build size! It creates a 1.4GB flatpak file and the build folder is about 23GB. RetroDECK is a big project in terms of scope and build size! It creates a 1.4GB flatpak file and the build folder is about 23GB.
It takes about 3 hours to build on an 8 core PC. It takes about 3 hours to build on an 8 core PC.
It would also be worth running RetroDECK in [debug mode](https://retrodeck.readthedocs.io/en/latest/wiki_development/general/debug-mode/) to get familiar with how /apps folder and other read only areas of the flatpak. The document was initially based on adding a new function to RetroDECK as part of the build process. The person that wrote this as a hobbyist coder/developer decided that it was better to cover just building RetroDECK before moving onto to adding/changing RetroDECK.
Adding to and changing the RetroDECK flatpak manifest will be covered in another wiki article.
It would also be worth running RetroDECK in [debug mode](https://retrodeck.readthedocs.io/en/latest/wiki_development/general/debug-mode/) to get familiar with how the /apps folder and other read only and full access areas of the flatpak work on your device.
A list of the folders and file paths used by RetroDECK can be found [here.](https://retrodeck.readthedocs.io/en/latest/wiki_development/general/folders-filepaths/)
Note that you can run most applications in the app folder that have been built via flatpak.
<img src="../../../wiki_images/graphics/development/retrodeck-overview.png" width="500"> <img src="../../../wiki_images/graphics/development/retrodeck-overview.png" width="500">
### Project Resources
In order to save project resources. Please try and use a self-hosted runner to test your build process. Once you are confident that
Please do not forget that RetroDECK is a volunteer based open source project. If you would like to support the build environment that is provided as part of the project. Then please consider making a donation to [the project or other projects involved.](https://retrodeck.readthedocs.io/en/latest/wiki_about/donations-licenses/)
## Build Process ## Build Process
### Download/Clone RetroDeck ### Download/Clone RetroDeck
Clone the repository. The --recursive option is used to ensure the RetroDECK sub modules are download(ie Emulators from other projects). The only element that is not downloaded for changing/editing is the [RetroDECK fork of ES-DE](https://github.com/XargonWan/RetroDECK-ES-DE). That should only be needed if you wish to add a new emulator via ES-DE. Clone the repository. The --recursive option is used to ensure the RetroDECK sub modules are download(ie Emulators from other projects). The only element that is not downloaded for changing/editing is the [RetroDECK fork of ES-DE](https://github.com/XargonWan/RetroDECK-ES-DE). That should only be needed if you wish to add a new emulator via ES-DE.
```bash ```bash
@ -31,9 +42,37 @@ git submodule update --init --recursive
Then use git checkout to select the latest cooker branch. Then use git checkout to select the latest cooker branch.
### RetroDECK flatpak manifest
```bash
net.retrodeck.retrodeck.yml
```
The manifest file is what builds the application after downloads all the relevant modules and dependencies. See the [Flatpak manifest guide here](https://docs.flatpak.org/en/latest/manifests.html)
Show reference to pulling in Xargon version of yml as part of the build.
SHA reference issues if doing this.
Need SHA pointers not values
Need to update net.retrodeck.retrodeck.yml to point at your own repo.
line 95 ish
sources:
- type: git
url: https://github.com/monkeyx-net/RetroDECK.git
bottom
sources:
- type: git
url: https://github.com/monkeyx-net/RetroDECK.git
### Build locally via bash script ### Build locally via bash script
```bash ```bash
cd RetroDECK cd RetroDECK
developer_toolbox/build_retrodeck_locally.sh developer_toolbox/build_retrodeck_locally.sh
@ -41,19 +80,41 @@ developer_toolbox/build_retrodeck_locally.sh
Have a look at what the script does first and look at the corresponding automation_tools/ folder that the script above references for the build Have a look at what the script does first and look at the corresponding automation_tools/ folder that the script above references for the build
The build will take about 3 hours on a relatively pc/laptop. The build will take about 3 hours on a relatively 8 core pc/laptop.
The build process creates a flatpak_builder file. Creates this folder when building locally
RetroDECK/.flatpak-builder/
Produces
### Build locally installed github runner ### Build locally installed github runner
#### Install self-hosted github runner
[Add a self-hosted runner](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners#adding-a-self-hosted-runner-to-a-repository) to a repository.
Creates an artifact on Guthub and a local file in actions-runners #### Setup runner to run as a service(optional)
[Create the self-hosted runner](https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service) as a service.
####
Creates an artifact on Github and a local file in actions-runners
Explain local runner
https://github.com/monkeyx-net/RetroDECK/settings/actions/runners
Creates
actions-runner/_work/RetroDECK/RetroDECK/
File RetroDECK-cooker.flatpak
Also can download as an artifact from Github
## FAQ ## FAQ
### Crash during local sh build?
Crash during local sh build?
- Stay Calm! - Stay Calm!
- Restart the PC/laptop. - Restart the PC/laptop.
@ -63,7 +124,7 @@ Crash during local sh build?
developer_toolbox/build_retrodeck_locally.sh developer_toolbox/build_retrodeck_locally.sh
``` ```
Crash during local github runner build? ### Crash during local github runner build?
- Stay Calm! - Stay Calm!
- Restart the PC/laptop. - Restart the PC/laptop.