CGRU/cgru

cgru build pipeline

sebastianelsner opened this issue · 3 comments

Hello,
I made a build pipeline based on github actions. What it does:

  • when a git tag, e.g. a version 3.1.1 is pushed
  • it will build full afanasy on github workers
  • it will package the release files, e.g. debian deb and tar archive
  • it will create a new release and upload the packaged files, e.g. https://github.com/sebastianelsner/cgru/releases

This is currently only done for ubuntu and debian, you can see it here: https://github.com/sebastianelsner/cgru/actions
This will make releases go in seconds.
The question is, if you are interested in merging this, should other Linux OSes also be compiled?
I have no experience with windows, tho...

I am not familiar with with github actions and workers.
But making releases automatic it good!
I usually create releases for 2 latest versions Ubuntu LTS, Debian stable, RedHat compatible (CentOS, now Rocky).
This is what users need and ask for. Also there is always no problem to create it for the latest OpenSUSE and Fedora.
https://cgru.readthedocs.io/en/latest/downloads/downloads.html
(I use kvm virtual machines)

It much harder to do it for MS Widows. There is much lesser automation. Just a cmd script that run cmake with a needed environment. All needed depends need to be installed manually. Then you should manually open cmake generated project in Visual Studio.

But some brave man trying to automate windows too:
#552

I see, the linuxes would not be a problem to create. I dont have much experience with windows. if #552 is solved we can add the build as well since github build pipelines allow for building on a windows vm. I will check to make the linuxes possible, so you can merge that and then later update the github release manually with windows.

Can I use VCPKG package management? This is my attempt

-DCMAKE_TOOLCHAIN_FILE=E:/vcpkg/scripts/buildsystems/vcpkg.cmake

{
    "name": "cgru",
    "description": [
        "CGRU is the Computer Graphics Tools Pack."
    ],
    "version": "3.4.0",
    "$default-features-explanation": "Users using this library transitively will get all backends automatically",
    "default-features": [],
    "features": {},
    "builtin-baseline": "a42af01b72c28a8e1d7b48107b33e4f286a55ef6",
    "dependencies": [
        "python3",
        "qt5"
    ],
    "overrides": [
        {
            "name": "python3",
            "version": "3.10.7#7"
        },
        {
            "name": "qt5",
            "version": "5.15.2#1"
        },
        {
            "name": "libffi",
            "version": "3.4.4#2"
        }
    ]
}