Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Developing U++ » U++ Developers corner » Github workflow files for building U++ on Windows, Linux & MacOS
Github workflow files for building U++ on Windows, Linux & MacOS [message #61288] Thu, 19 December 2024 18:47 Go to next message
Oblivion is currently offline  Oblivion
Messages: 1214
Registered: August 2007
Senior Contributor
Hi,

While the U++ github repo uses CircleCi, I would like to announce that I have successfully created github workflow (actions) files for Linux, MacOS, and Windows.
I created them for Bobcat. However, they are rudimentary enough to serve as templates.

Main challenge was creating Windows workflow file, because it didn't have build method file and umk couldn't download packages from UppHub.
First problem is solved by dynamically creating a rudimentary build method file for CLANG windows.
Second problem has a workaround: It downloads UppHub packages manually (for now).

Still, given the power of github actions, you might find this info interesting or useful.

To examine the files check this link.

Again: the files work, but are rudimentary and will be refined later.

Smile

Best regards,
Oblivion


Re: Github workflow files for building U++ on Windows, Linux & MacOS [message #61298 is a reply to message #61288] Fri, 20 December 2024 10:38 Go to previous messageGo to next message
coolman is currently offline  coolman
Messages: 119
Registered: April 2006
Location: Czech Republic
Experienced Member
Hi,

Here you can get inspiration on how to make a release on github.

BR, Radek
Re: Github workflow files for building U++ on Windows, Linux & MacOS [message #61303 is a reply to message #61288] Sun, 22 December 2024 01:32 Go to previous messageGo to next message
Klugier is currently offline  Klugier
Messages: 1100
Registered: September 2012
Location: Poland, Kraków
Senior Contributor
Hello Oblivion,

Thank you for your message! It is nice to know that GitHub Actions is an alternative to CircleCI. So far, I don't observe any issues with CircleCI, so probably it is not worth migrating to something else. Also, we don't need an automatic release process on GitHub since we are publishing our releases in other places.

Moreover, I just noticed that you managed to build your app on Windows using the regular U++ distribution. I will probably do the same for the main U++ repo. The only thing I would change in your implementation is instead of basing it on ultimatepp.org:
Invoke-WebRequest -Uri "https://www.ultimatepp.org/downloads/upp-win-17490.7z" -OutFile "upp-win.7z"


I would download from GitHub to not put a strain on our infrastructure:
Invoke-WebRequest -Uri "https://github.com/ultimatepp/ultimatepp/releases/download/2024.1.1/upp-win-17459.7z" -OutFile "upp-win.7z"


Klugier


U++ - one framework to rule them all.
Re: Github workflow files for building U++ on Windows, Linux & MacOS [message #61350 is a reply to message #61303] Sun, 29 December 2024 09:32 Go to previous messageGo to next message
Oblivion is currently offline  Oblivion
Messages: 1214
Registered: August 2007
Senior Contributor
Hello Klugier,

Quote:
So far, I don't observe any issues with CircleCI, so probably it is not worth migrating to something else.


I'm not suggesting to move U++ CI to Github Actions.

What I'm really suggesting is (aside from providing some basic examples) that U++ apps can benefit from a simple installation & compilation script on Windows (such as the fast build script for UppTerm on linux).
The Windows github actions file I provided has such an implication.

Rationale: Users shouldn't have to use TheIDE or umk manually to build this or that U++ app or example on Windows.

Steps:

1) Download and extract U++ Windows build.
2) Download and extract the app's source code.
3) Run umk to build the app with U++ source code.


Step (1) assumes,

a) at least a Windows 10 and powershell to build out of the box as curl is a part of Windows ver. >= 10.
b) that U++ windows build is archived using tar, which is a part of Windows since ver 10 (build 17063) too. Currently, in order to unzip U++ Windows builds p7zip or similar external apps are required.


Step (2) assumes
a) curl or mingit. The former is a part of Win ver. >= 10. The latter is a part of U++ bundle.


Step (3) requires an umk,

a) capable of generating a base Windows build method files (debug/release) for the bundled CLANG.
b) with fixed UppHub access (it seems to be broken ATM) for downloading necessary external U++ packages from UppHub.

In this way, I believe we can provide simple build scripts for U++ apps on Windows.

This is what I would like to discuss.

Ps. In short, I believe that umk is a powerful command line tool that can be used more effectively to promote U++. Not suprisingly, not everyone is interested in using or getting familiar with TheIDE in order to examine how powerful U++ apps are on Windows.

Best regards,
Oblivion


[Updated on: Sun, 29 December 2024 09:42]

Report message to a moderator

Re: Github workflow files for building U++ on Windows, Linux & MacOS [message #61351 is a reply to message #61350] Sun, 29 December 2024 13:41 Go to previous messageGo to next message
dolik.rce is currently offline  dolik.rce
Messages: 1791
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

As a side note: easy way to build app using umk with minimum of dependencies is also helpful on Linux. Especially if someone wants to package the app in distribution specific package format. Such packages are often created using automated scripts and/or virtual environments (similar to GitHub Actions) so making things simple helps a lot.

Best regards,
Honza
Re: Github workflow files for building U++ on Windows, Linux & MacOS [message #61355 is a reply to message #61351] Sun, 29 December 2024 20:35 Go to previous message
Oblivion is currently offline  Oblivion
Messages: 1214
Registered: August 2007
Senior Contributor
Hello Honza,
Quote:
As a side note: easy way to build app using umk with minimum of dependencies is also helpful on Linux. Especially if someone wants to package the app in distribution specific package format. Such packages are often created using automated scripts and/or virtual environments (similar to GitHub Actions) so making things simple helps a lot


Yes, it is very useful. Not only that, I think umk needs a scripting (macro) interface which would reduce external dependencies when it comes to do some pre-/post-build stuff. It can be implemented using Esc.
This also would let us have a consistent experience across the platforms (in theory, at least).

Best regards,
Oblivion


Previous Topic: RichEdit::PixelMode
Next Topic: Dynamic skin changes...
Goto Forum:
  


Current Time: Sat Jul 05 15:58:16 CEST 2025

Total time taken to generate the page: 0.03441 seconds