mirror of
https://github.com/RetroDECK/Wiki.git
synced 2024-11-30 01:25:48 +00:00
On branch monkeyxWiki
Changes to be committed: modified: wiki-rtd/docs/wiki_development/general/build-locally.md
This commit is contained in:
parent
c511e1d71f
commit
fc5eb15132
|
@ -1,23 +1,34 @@
|
|||
# Development Build Locally Notes
|
||||
|
||||
This is WIP to help build RetroDECK locally.
|
||||
|
||||
It is based on notes taken while adding the Ruffle(Flash Emulator) to the RetroDECK project.
|
||||
|
||||
## 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.
|
||||
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">
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
### 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.
|
||||
|
||||
```bash
|
||||
|
@ -31,9 +42,37 @@ git submodule update --init --recursive
|
|||
|
||||
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
|
||||
|
||||
```bash
|
||||
cd RetroDECK
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
#### 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
|
||||
|
||||
Crash during local sh build?
|
||||
### Crash during local sh build?
|
||||
|
||||
- Stay Calm!
|
||||
- Restart the PC/laptop.
|
||||
|
@ -63,7 +124,7 @@ Crash during local sh build?
|
|||
developer_toolbox/build_retrodeck_locally.sh
|
||||
```
|
||||
|
||||
Crash during local github runner build?
|
||||
### Crash during local github runner build?
|
||||
|
||||
- Stay Calm!
|
||||
- Restart the PC/laptop.
|
||||
|
|
Loading…
Reference in a new issue