diff --git a/wiki-rtd/docs/wiki_development/general/build-locally.md b/wiki-rtd/docs/wiki_development/general/build-locally.md index 2394ccd..cd6b415 100644 --- a/wiki-rtd/docs/wiki_development/general/build-locally.md +++ b/wiki-rtd/docs/wiki_development/general/build-locally.md @@ -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. +### 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.