gitlab CI - stage beta, testers needed

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: gitlab - gathering info

Post by PrzemoF »

Wooohoooo!!! I just got first successful "fake" build on remote runner. The runner was on my laptop, controller by gitlab.

https://gitlab.com/PrzemoF/FreeCAD/-/pi ... /334825251

I'll tidy up the scripts - a help with testing the mock-up setup would be appreciated.
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: gitlab - gathering info

Post by PrzemoF »

Scripts + manual: https://gitlab.com/PrzemoF/FreeCAD/-/tree/gitlab-v1/ci

It's a mock build, so no real build is executed.

Edit: real build controlled by gitlab, executed on my laptop in progress: https://gitlab.com/PrzemoF/FreeCAD/-/jobs/1414680576
Edit2: Job timed out, but after switching on multi-thread build it was completed: https://gitlab.com/PrzemoF/FreeCAD/-/pi ... /334923008
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: gitlab - gathering info

Post by PrzemoF »

I'm testing gitlab merge requests and it looks good. We can has reviewers, approvers, milestones, Auto-merging when build succeeds seems to be a nice feature (pre-approve a commits, but it will only get merged it the builds/tests are OK). I'm aware that there will be some learning curve + changes in many places on the FreeCAD development ecosystem, but I'm stating to be an advocate of assessing the big move as soon as I have reliable build and test configuration ready.
user1234
Veteran
Posts: 3345
Joined: Mon Jul 11, 2016 5:08 pm

Re: gitlab - gathering info

Post by user1234 »

That is great! Thanks for your effort!

Greetings
user1234
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: gitlab - gathering info

Post by PrzemoF »

Thanks!

More info: looks like the optimal setup might include 2 docker images: one to register local runner with gitlab and the other with all dependencies that will be used in .gitlab-ci.yml with key "image" (executor?). I don't fully understand it, but it seems to work The executor image might be stored on dockerhub.
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: gitlab - gathering info

Post by PrzemoF »

I'm stuck with core dump during test: https://gitlab.com/PrzemoF/FreeCAD/-/jobs/1433107368

Libraries are OK (linked), so it's something else...

Code: Select all

$ echo "Running unit tests... "
Running unit tests... 
$ cd build/bin/
$ ldd ./FreeCAD
	linux-vdso.so.1 (0x00007ffef4da9000)
	libFreeCADGui.so => /builds/PrzemoF/FreeCAD/build/lib/libFreeCADGui.so (0x00007fefcd36e000)
	libFreeCADApp.so => /builds/PrzemoF/FreeCAD/build/lib/libFreeCADApp.so (0x00007fefcc36e000)
	libFreeCADBase.so => /builds/PrzemoF/FreeCAD/build/lib/libFreeCADBase.so (0x00007fefcc044000)
	libpython3.8.so.1.0 => /lib/x86_64-linux-gnu/libpython3.8.so.1.0 (0x00007fefcbabc000)
	libQt5Widgets.so.5 => /lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007fefcb421000)
	libQt5Gui.so.5 => /lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fefcae34000)
	libQt5Core.so.5 => /lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007fefca8eb000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fefca709000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fefca6ee000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fefca4fc000)
	libCoin.so.80c => /lib/x86_64-linux-gnu/libCoin.so.80c (0x00007fefc9cb8000)
	libboost_regex.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_regex.so.1.71.0 (0x00007fefc9bb6000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fefc9b93000)
	libGL.so.1 => /lib/x86_64-linux-gnu/libGL.so.1 (0x00007fefc9b0b000)
	libQt5PrintSupport.so.5 => /lib/x86_64-linux-gnu/libQt5PrintSupport.so.5 (0x00007fefc9a92000)
	libQt5Svg.so.5 => /lib/x86_64-linux-gnu/libQt5Svg.so.5 (0x00007fefc9a36000)
	libQt5Network.so.5 => /lib/x86_64-linux-gnu/libQt5Network.so.5 (0x00007fefc9875000)
	libspnav.so.0 => /lib/libspnav.so.0 (0x00007fefc966f000)
	libpyside2.cpython-38-x86_64-linux-gnu.so.5.14 => /lib/x86_64-linux-gnu/libpyside2.cpython-38-x86_64-linux-gnu.so.5.14 (0x00007fefc9636000)
	libxerces-c-3.2.so => /lib/x86_64-linux-gnu/libxerces-c-3.2.so (0x00007fefc92a3000)
	libQt5Xml.so.5 => /lib/x86_64-linux-gnu/libQt5Xml.so.5 (0x00007fefc9261000)
	libshiboken2.cpython-38-x86_64-linux-gnu.so.5.14 => /lib/x86_64-linux-gnu/libshiboken2.cpython-38-x86_64-linux-gnu.so.5.14 (0x00007fefc921a000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fefc90cb000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fefcf586000)
	libboost_filesystem.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_filesystem.so.1.71.0 (0x00007fefc90ab000)
	libboost_program_options.so.1.71.0 => /lib/x86_64-linux-gnu/libboost_program_options.so.1.71.0 (0x00007fefc901c000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fefc9016000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fefc8ffa000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fefc8fcc000)
	libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fefc8fc5000)
	libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fefc8f8d000)
	libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fefc8e88000)
	libicui18n.so.66 => /lib/x86_64-linux-gnu/libicui18n.so.66 (0x00007fefc8b89000)
	libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007fefc89a3000)
	libpcre2-16.so.0 => /lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007fefc891e000)
	libdouble-conversion.so.3 => /lib/x86_64-linux-gnu/libdouble-conversion.so.3 (0x00007fefc8908000)
	libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fefc87df000)
	libGLX.so.0 => /lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fefc87ab000)
	libOpenGL.so.0 => /lib/x86_64-linux-gnu/libOpenGL.so.0 (0x00007fefc877f000)
	libGLdispatch.so.0 => /lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fefc86c7000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fefc8588000)
	libQt5Qml.so.5 => /lib/x86_64-linux-gnu/libQt5Qml.so.5 (0x00007fefc80a9000)
	libcurl-gnutls.so.4 => /lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007fefc801a000)
	libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fefc7f5b000)
	libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fefc7f2e000)
	libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007fefc646b000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fefc63f8000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fefc63ce000)
	libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007fefc63a5000)
	libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007fefc6384000)
	librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007fefc6362000)
	libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007fefc62f4000)
	libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007fefc62e1000)
	libnettle.so.7 => /lib/x86_64-linux-gnu/libnettle.so.7 (0x00007fefc62a7000)
	libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007fefc60d1000)
	libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fefc6084000)
	libldap_r-2.4.so.2 => /lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fefc602c000)
	liblber-2.4.so.2 => /lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fefc601b000)
	libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fefc600d000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fefc6007000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fefc5fff000)
	libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007fefc5e7b000)
	libhogweed.so.5 => /lib/x86_64-linux-gnu/libhogweed.so.5 (0x00007fefc5e44000)
	libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007fefc5dc0000)
	libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007fefc5aea000)
	libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fefc59b4000)
	libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fefc599e000)
	libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fefc58bf000)
	libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fefc588e000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fefc5887000)
	libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fefc5878000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fefc585c000)
	libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fefc583f000)
	libgssapi.so.3 => /lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fefc57f8000)
	libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fefc57d5000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fefc57bb000)
	libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007fefc57af000)
	libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fefc57a8000)
	libheimntlm.so.0 => /lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fefc579a000)
	libkrb5.so.26 => /lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fefc5707000)
	libasn1.so.8 => /lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fefc5660000)
	libhcrypto.so.4 => /lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fefc5628000)
	libroken.so.18 => /lib/x86_64-linux-gnu/libroken.so.18 (0x00007fefc560f000)
	libwind.so.0 => /lib/x86_64-linux-gnu/libwind.so.0 (0x00007fefc55e5000)
	libheimbase.so.1 => /lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fefc55d1000)
	libhx509.so.5 => /lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fefc5583000)
	libsqlite3.so.0 => /lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fefc545a000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fefc541f000)
$ ./FreeCAD -t 0
/usr/bin/bash: line 119:    17 Aborted                 (core dumped) ./FreeCAD -t 0
Cleaning up file based variables 00:01
ERROR: Job failed: exit code 1
keithsloan52
Veteran
Posts: 2756
Joined: Mon Feb 27, 2012 5:31 pm

Re: gitlab - gathering info

Post by keithsloan52 »

Are gitlab traffic statistics any better than githubs.

I am convinced github traffic are often rubbish, like it tells me a number of unique visitors and visitors and the later is 10 times the former. I just don't buy it that every visitor made on average of ten page visits. Also often get the number of unique clones great than the number of visitors.
Have tried in the past to raise with github support but a complete waste of space, I note other posts on the web querying the stats. This was all before Microsoft took over and I think it will not have gotten any better.
User avatar
PrzemoF
Veteran
Posts: 3520
Joined: Fri Jul 25, 2014 4:52 pm
Contact:

Re: gitlab - gathering info

Post by PrzemoF »

OK, I've no idea. If you have gitlab account I can give you maintainer access level, so you can look around. There is Analytics section, but I don't see traffic info.

Edit: Looks like it's only available on self managed gitlab installations, so we're not there yet.
LeFix
Posts: 7
Joined: Sat Jul 24, 2021 9:44 am

Re: gitlab CI - stage beta, testers needed

Post by LeFix »

I come from a big (smaller than freecad though) software project where we used gitlab (self hosted). Is gitlab ci a reason to switch over from github, assuming thats the big move you're talking about? I never really used github to a big extent.

Gitlab is quite supportive for non-benefit parties and free software projects. We received unlimited licenses for the gitlab ultimate self-hosted version. Did you look into this before?

Maybe I can help a little bit and revive some of my docker skills.
Post Reply