rcsoccersim / rcssmonitor

The RoboCup Soccer Simulator Monitor
GNU General Public License v3.0
47 stars 25 forks source link

pipeline - automatic appimage and release creator #59

Closed sadraiiali closed 3 months ago

sadraiiali commented 5 months ago

https://github.com/rcsoccersim/rcssmonitor/assets/23504332/c6b4736d-8b57-4ccf-bf21-cd36d30a6333

Overview

This merge request introduces the capability to automatically build and release the latest version of rcsssmonitor to GitHub. It enables the creation of the application's AppImage within the GitHub action pipeline, which is subsequently saved to the release on GitHub. This enhancement simplifies the download and execution process of the rcssmonitor for RoboCup users.

Technical Implementation

The merge request involves the addition of the following files to the repository:

In the event that the release name already exists in the GitHub releases, the creation process will be bypassed.

How to use

To create a new release, the following steps must be undertaken:

Furthermore, after each push to the registry, the AppImage can be utilized to validate the correctness of the proposed changes.

External Resources Utilized

Additional Resources

sadraiiali commented 5 months ago

Future improvement

  1. Builds will takes around ~2min right now. but with caching the docker image it can be cut in half :) image

  2. Process of creating release note can be automatize with using semantic-release

  3. change the version of appimage in .desktop by CmakeLists.txt version

hidehisaakiyama commented 5 months ago

Thanks for providing an automated release procedure. I am concerned about whether we can maintain it if GitHub's specifications change. I will suspend this system if maintenance cannot continue or if something works incorrectly. Is it okay? Generating and releasing AppImage is a good idea. Is it possible to put in place a procedure to do this manually?

sadraiiali commented 5 months ago

Yes, for sure it is ok. I will try my best to provide support for this automatic build system. Right now the system is working as expected on my demo repository [LINK TO DEMO REPO].
If there were any bugs or any kind of problem just simply tell me, then I will fix it on my demo project and create a pull request like right now for the main project :)

you can also create the appimage using the scripts manually.


Process to build appimage manually

  1. clone the project
  2. build the code using the build script, it will build the code in folder named build
    bash utils/appimage/build_code.sh
  3. create appimage using the create appimage script
    bash utils/appimage/build_appimage.sh

Then the app image must be available at build folder. Just keep in mind if you want to use the appimage in the linux distro with older version of glibc (like ubuntu 20.04) you must build the code with those operating system.

for example : if you build the code on ubuntu 24.04 it will not work on ubuntu 20.04 but if you build the code with ubuntu 20.04 it will also work on ubuntu 24.04

please let me know if this process works for you :) thanks.


ps. also as a maintainer you can download artifact of each build on the build page. this will help to see output of each commit and eather if it did built correctly or not. like : image

sadraiiali commented 3 months ago

unfortunately, libfuse [link] is one of the few requirements for running appimages. so we can not include it on the app image it self.

by the way, it seems like the new distros they are migrating fuse 3 maybe in future we will also add support for that too.