Build server » Historie » Revision 26
Revision 25 (Maximilian Seesslen, 07.11.2024 11:39) → Revision 26/27 (Maximilian Seesslen, 07.11.2024 16:11)
h1. Build server
h2. Liste
https://github.com/ligurio/awesome-ci?tab=readme-ov-file
h2. Laminar
Shell scripts only. Super minimalistisch aber flexibel. Kann auf der Webseite nicht mal build anstossen (so gewollt); brauch ichs dann ueberhaubt?
C++.
Artifacts forhanden
<pre><code class="shell">
base=$(basename $0)
PROJECT=${base%.*}
echo "=== Project: $PROJECT"
</code></pre>
https://tracker.debian.org/pkg/laminar
https://github.com/ohwgiles/laminar/releases/tag/1.3
Debian is replacing the integrated Chart.js with incompatible version for some reason. Installing generated Package from github should work without issues. Daemon brings its own Chart.js.
h2. Buildbot
Python.
Builders sind in Python formuliert.
"Install on Debian":https://linuxhostsupport.com/blog/how-to-install-buildbot-on-debian-9/
-Laesst sich an der Konsole nicht triggern.-
-Web-Interface gibts unter Debian wegen JS-Abhaengigkeiten nicht.-
Laesst sich via pip installieren, dann lauft auch das Webinterface.
Triggern problemlos moeglich.
https://www.digitalocean.com/community/tutorials/how-to-install-buildbot-on-ubuntu-16-04
Webinterface irgendwie holprig.
http://localhost:8010/#/builders/2
Examples:
https://builder.blender.org/admin/#/builders/9/builds/14293
h2. Dagger
Cloud
h2. GoCD
http://localhost:8153/go/pipelines#!/
Noch am ehesten mit Jenkins vergleichbar.
* Coole XML configuration, aber ueber webinterfase zusammenstellbar.
* User-Management
* 'nur' S3 artifacts plugin
* Java
h2. Kraken
http://localhost:8082/
https://github.com/Kraken-CI/kraken/releases
Bischen buggy. Artifacts nur ueber minio.
Multibranch muss man sich selbst machen.
h2. Earthly
http://127.0.0.1:8371/
Only CLI open source?
h2. Requirements
* Mitbekommen, dass etwas nicht eingecheckt ist;
** hooks
** All-devel builds to see if a feature has broken something
* Compelieren auf anderen Systemen (Docker); Qt5 vs Qt6
* Deploy artifacts
** ./campo.sh laminar release v1.2.3
* Eigentlich schon multibranch. Ich pushe etwas in einen Branch, dieser wird gebaut.
h2. Releasing
* Erstellung eines releases eigentlich unabhaengig von software repo.
Ein release kann kein make target sein. Derzeit kann das campo-script dies erledigen.
h2. Drone
h2. Scripts
Deswegen waere Laminar ganz cool. Einfach irgendwas anstossen und ne Uebersicht haben.
h1. Once again
So i made changes to laminar so the build information is more complete. How should the hooks look like.
Build everything on hetzner? My workstation is so shiny.
There is no post-push-hook. Only alias.
Manual trigger for all devel builds.
When the SCM_BRANCH is "devel", all submodules are checked out from "devel" as well.
Polling.
h1. Squeezer
The "Build-all" feature is hard to model to build servers. Just having a script is tempting.
Its working right now.
* A report might be nice.
* Parallelization of builds might be nice because parallelization within a single build is not perfect.
<pre><code class="shell">
echo $(pgrep -c -P$$)
</code></pre>
h2. Liste
https://github.com/ligurio/awesome-ci?tab=readme-ov-file
h2. Laminar
Shell scripts only. Super minimalistisch aber flexibel. Kann auf der Webseite nicht mal build anstossen (so gewollt); brauch ichs dann ueberhaubt?
C++.
Artifacts forhanden
<pre><code class="shell">
base=$(basename $0)
PROJECT=${base%.*}
echo "=== Project: $PROJECT"
</code></pre>
https://tracker.debian.org/pkg/laminar
https://github.com/ohwgiles/laminar/releases/tag/1.3
Debian is replacing the integrated Chart.js with incompatible version for some reason. Installing generated Package from github should work without issues. Daemon brings its own Chart.js.
h2. Buildbot
Python.
Builders sind in Python formuliert.
"Install on Debian":https://linuxhostsupport.com/blog/how-to-install-buildbot-on-debian-9/
-Laesst sich an der Konsole nicht triggern.-
-Web-Interface gibts unter Debian wegen JS-Abhaengigkeiten nicht.-
Laesst sich via pip installieren, dann lauft auch das Webinterface.
Triggern problemlos moeglich.
https://www.digitalocean.com/community/tutorials/how-to-install-buildbot-on-ubuntu-16-04
Webinterface irgendwie holprig.
http://localhost:8010/#/builders/2
Examples:
https://builder.blender.org/admin/#/builders/9/builds/14293
h2. Dagger
Cloud
h2. GoCD
http://localhost:8153/go/pipelines#!/
Noch am ehesten mit Jenkins vergleichbar.
* Coole XML configuration, aber ueber webinterfase zusammenstellbar.
* User-Management
* 'nur' S3 artifacts plugin
* Java
h2. Kraken
http://localhost:8082/
https://github.com/Kraken-CI/kraken/releases
Bischen buggy. Artifacts nur ueber minio.
Multibranch muss man sich selbst machen.
h2. Earthly
http://127.0.0.1:8371/
Only CLI open source?
h2. Requirements
* Mitbekommen, dass etwas nicht eingecheckt ist;
** hooks
** All-devel builds to see if a feature has broken something
* Compelieren auf anderen Systemen (Docker); Qt5 vs Qt6
* Deploy artifacts
** ./campo.sh laminar release v1.2.3
* Eigentlich schon multibranch. Ich pushe etwas in einen Branch, dieser wird gebaut.
h2. Releasing
* Erstellung eines releases eigentlich unabhaengig von software repo.
Ein release kann kein make target sein. Derzeit kann das campo-script dies erledigen.
h2. Drone
h2. Scripts
Deswegen waere Laminar ganz cool. Einfach irgendwas anstossen und ne Uebersicht haben.
h1. Once again
So i made changes to laminar so the build information is more complete. How should the hooks look like.
Build everything on hetzner? My workstation is so shiny.
There is no post-push-hook. Only alias.
Manual trigger for all devel builds.
When the SCM_BRANCH is "devel", all submodules are checked out from "devel" as well.
Polling.
h1. Squeezer
The "Build-all" feature is hard to model to build servers. Just having a script is tempting.
Its working right now.
* A report might be nice.
* Parallelization of builds might be nice because parallelization within a single build is not perfect.
<pre><code class="shell">
echo $(pgrep -c -P$$)
</code></pre>