Github Actions zum Laufen kriegen

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Antworten
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Github Actions zum Laufen kriegen

Beitrag von Tiles »

Ich versuche mich gerade daran das Github Actions zum Laufen zu kriegen. Aber ich werde einfach nicht schlau draus. Tutorials sind kaum zu finden. Brauchbare Antworten für die Fehlermeldungen noch viel weniger. Und aus der Manual werde ich einfach nicht schlau.

Die haben da zwar wunderbare Templates. Aber auch da endet es mit einer nichtssagenden Fehlermeldung. Process completed with exit code 127 zum Beispiel. Nicht dass man da irgendwie rausfinden könnte was Fehler 127 wirklich ist ...

Sagen wir mal ich nehme das Github Template für C / C++ und Make. Dann sieht das Script by Default eigentlich danach aus als ob es alles hat was man braucht. Make ist ja der Konsolenbefehl um das Kompilieren zu starten. So tuts auf meinem Ubuntu, so tuts auch auf Windows.

Und trotzdem schmeisst es mir eben Fehler 127 statt wenigstens mal fertig zu kompilieren. Und es macht mich narrisch dass ich nicht rausfinden kann was ich hier übersehe.

Was übersehe ich denn hier? Wieso schmeisst es mir einen Fehler statt zu kompilieren?

Und wir benötigen eigentlich auch noch externe precompiled Libs fürs builden. Und dazu finde ich überhaupt nichts.

Code: Alles auswählen

name: C/C++ CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: configure
      run: ./configure
    - name: make
      run: make
    - name: make check
      run: make check
    - name: make distcheck
      run: make distcheck
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von xq »

Du musst auf Ubuntu natürlich deine dependencies mit apt nachinstallieren.

Guck mal hier: https://github.com/MasterQ32/zero-graph ... ml#L11-L29

Code: Alles auswählen

jobs:
  build-linux:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          submodules: "recursive"

      - name: Install dependencies
        run: sudo apt-get install libsdl2-dev

      - name: Setup Zig
        uses: goto-bus-stop/setup-zig@v1
        with:
          version: master

      - name: Build (native) desktop + WASM
        run: zig build install
Warum er dir hier aber einen Fehler wirft, kann ich dir nicht sagen, ohne dass du das Repo postest, wo der Code ausgeführt wird und man sich mal die vollständige Ausgabe eines CI Runs angucken kann. Kannst du die mal posten? GGf. am besten mit nem direkten Link zu deinem CI run?
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Danke dir. Ich habe es gerade entnervt gelöscht gehabt. Aber das ist ja ein Klick dass das wieder online ist. Moment ...

https://github.com/Bforartists/Bforarti ... 1007685562

Und das wären die precompiled Libs: https://svn.blender.org/svnroot/bf-blen ... s7_x86_64/

Aus der Blender Manual ( https://wiki.blender.org/wiki/Building_ ... nux/Ubuntu ) Wir haben da natürlich dann bforartists-git als Pfad drin:

Code: Alles auswählen

mkdir ~/blender-git/lib
cd ~/blender-git/lib
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_centos7_x86_64
EDIT; ich habe hier auch noch einen alten Versuch im Repo, unbenannt in .old . Da hat es immer gemeckert dass ein Pfad fehlt. Und der der das gemacht hat hat einfach keine Zeit mehr für sowas ...

https://github.com/Bforartists/Bforarti ... /workflows
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von xq »

Code: Alles auswählen

Run ./configure
  ./configure
  shell: /usr/bin/bash -e {0}
/home/runner/work/_temp/a08a1b12-5b27-4891-bb35-362d0a72f674.sh: line 1: ./configure: No such file or directory
Error: Process completed with exit code 127.
./configure: No such file or directory. Wenn ich mir dein Repo so angucke, ist da auch keine Datei namens configure ;)

Ich würde dir raten, dich an den Buildprozess der hier (https://www.bforartists.de/data/tuts/Bu ... untu17.pdf) beschrieben ist, zu halten. Der scheint ja von euch selbst zu kommen.

Das meiste davon ist ja schon gut automatisiert
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Ah, das ist quasi wie beim von Hand Builden auch, einfach die nötigen Befehle auflisten? Danke dir, werde ich mal morgen durchexerzieren. Und gebe dann Bescheid ob ich es zum Laufen bekommen habe :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von xq »

Tiles hat geschrieben: 07.07.2021, 17:46 Ah, das ist quasi wie beim von Hand Builden auch, einfach die nötigen Befehle auflisten? Danke dir, werde ich mal morgen durchexerzieren. Und gebe dann Bescheid ob ich es zum Laufen bekommen habe :)
Exakt dies :)
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

So. Im Moment verheddert es sich noch in den Pfaden. Das cd wieder zurück ins repo um den Build Prozess zu starten scheitert.

Da blicke ich eh noch nicht durch. uses: actions/checkout@v2 zieht ja schon das Repo in den Runner. Sprich ich könnte mir ja eigentlich den Teil mit dem Clone sparen. Nun brauche ich aber meine Libs neben dem Repo Ordner. Wie müsste denn dann der Pfad lauten?

Ich geh mal weiterstochern ...

Code: Alles auswählen

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: add repo
      run: mkdir ~/bforartists
    - name: change dir
      run: cd ~/bforartists
    - name: clone repo
      run: git clone https://github.com/Bforartists/Bforartists

    - name: make libs dir
      run: mkdir ~/bforartists/lib
    - name: change dir to lib
      run: cd ~/bforartists/lib
    - name: checkout
      run: svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_centos7_x86_64

    - name: change dir to make
      run: cd ~/bforartists/bforartists
    - name: make update
      run: make udpate
    - name: make
      run: make

    - name: Upload Build
      uses: actions/upload-artifact@v2
      with:
        name: Bforartists-Release-${{ runner.os }}
        path: ${{ env._MAIN_DIR }}/build_linux/bin/
Dateianhänge
bforartistslibs.jpg
fails.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Und wieder eine halbe Stunde gewartet bis die Libs auf dem Runner sind. Und wieder gescheitert, seufz ^^

Github Actions kennt kein Make Update? WTF? Der Befehl geht definitiv. Simmer ja wieder froh dass BFA keine Submodule verwendet. Mit Blender hätte ich jetzt ein Problem, der zieht damit seine Addons rein.

Und nächster Versuch ...
Dateianhänge
makeupdate.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

:'3

Code: Alles auswählen

CMake Error at /usr/local/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find PythonLibsUnix (missing: PYTHON_LIBRARY PYTHON_LIBPATH
  PYTHON_INCLUDE_DIR PYTHON_INCLUDE_CONFIG_DIR)
-- Configuring incomplete, errors occurred!
Call Stack (most recent call first):
  /usr/local/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  build_files/cmake/Modules/FindPythonLibsUnix.cmake:176 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  build_files/cmake/platform/platform_unix.cmake:112 (find_package)
See also "/home/runner/work/Bforartists/build_linux/CMakeFiles/CMakeOutput.log".
  CMakeLists.txt:934 (include)
See also "/home/runner/work/Bforartists/build_linux/CMakeFiles/CMakeError.log".


make: *** [GNUmakefile:347: all] Error 1
Error: Process completed with exit code 2.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von xq »

Hey Tiles.

Ich empfehle dir mal, die Doku anzugucken: https://docs.github.com/en/actions/refe ... idstepsrun

Dort wirst du feststellen, dass jeder Step in Root-Verzeichnis ausgeführt wird. Dementsprechend ist

Code: Alles auswählen

    - name: change dir
      run: cd ~/bforartists
Ein step, der nichts tut.

Ich empfehle dir auch stark, NICHT am homeverzeichnis dinge zu tun, sondern alles mit relativen pfaden zu machen. du hast keine garantie über das working dir. Zudem befindest du dich nach nach dem checkout-step schon im passenden verzeichnis und "git clone" wurde schon durchgeführt.

gut wäre:

Code: Alles auswählen

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: make libs dir
      run: mkdir lib
    - name: checkout
      run: svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_centos7_x86_64 lib/linux_centos7_x86_64

    - name: make update
      run: make udpate
    - name: make
      run: make

    - name: Upload Build
      uses: actions/upload-artifact@v2
      with:
        name: Bforartists-Release-${{ runner.os }}
        path: ${{ env._MAIN_DIR }}/build_linux/bin/
Sowas ist wahrscheinlich korrekter
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Danke für die Tips. Wird analysiert :)

Die Libs müssen halt an der richtigen Stelle relativ zum Repo sein. Sonst werden die nicht gefunden. Ein einfaches run svn checkout würde die mir ja ins Repo importieren. Deswegen das gehampel mit dem cd.

Und wie gesagt, make update schmeisst einen Fehler.

Aber an der Hürde war ich schon vorbei. Der letzte Fail war ja schon im Buildprozess selber. Python scheint nicht gefunden zu werden. Was seltsam ist weil Ubuntu eigentlich mit Python kommt. Im Moment versuche ich das zu installieren.

Die absoluten Pfade werde ich ändern sobald das endlich mal tut. Den absoluten Pfad hatte ich mir mittels pwd gezogen. Der scheint zu stimmen.

Mit der Manual komme ich leider überhaupt nicht zurecht. Das ist imho irgendwie im Stil geschrieben dass du schon alles wissen musst um überhaupt die Manual zu verstehen.

Derzeitiger Versuch:

Code: Alles auswählen

name: build_linux

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      # You can use PyPy versions in python-version.
      # For example, pypy2 and pypy3
      matrix:
        python-version: [2.7, 3.7]

    steps:
      - uses: actions/checkout@v2
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python-version }}
      # You can test your matrix by printing the current Python version
      - name: Display Python version
        run: python -c "import sys; print(sys.version)"

    #steps:
      #- uses: actions/checkout@v2

      #- name: current directory
      #  run: pwd

      - name: make libs dir
        run: mkdir /home/runner/work/Bforartists/libs
      - name: change dir to lib
        run: cd /home/runner/work/Bforartists/libs
      - name: checkout
        run: svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_centos7_x86_64

      - name: change dir to make
        run: cd /home/runner/work/Bforartists/Bforartists
      #- name: make update
      #  run: make udpate
      - name: make
        run: make

      - name: Upload Build
        uses: actions/upload-artifact@v2
        with:
          name: Bforartists-Release-${{ runner.os }}
          path: ${{ env._MAIN_DIR }}/build_linux/bin/
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Die wollen mich verarschen. Python 3 ging nicht zu installieren. Was ich noch verstehen kann, denn Ubuntu kommt meines Wissens nach halt schon mit einer 3er Python version. Python 2 hat installiert. Aber es failt immer noch daran dass angeblich Python nicht gefunden wird :/

Jetzt bin ich erst mal ratlos. Wie komme ich denn an die Error Logs im Runner? ^^
Dateianhänge
python fail.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Tja, das scheint mir weniger ein Problem von fehlender Python Installationen auf dem Ubuntu Gastsystem zu liegen. Sondern der findet die Python Libraries in den precompiled Libs nicht. Also das was ich per svn reinziehe.

Die Libs sind aber definitv da, sonst würde es schon vorher meckern. Die andren Module werden gefunden. Es scheitert erst an Python. Und ich habe grade gecheckt ob es zwischenzeitlich Änderungen an den Libs gegeben hat. Aber auf Ubuntu ist alles so wie es gehört. Und auf Ubuntu kompiliert es auch nach wie vor ohne Fehler durch.

Es ist zum Mäuse melken ^^

EDIT runs-on: ubuntu-latest versus Could NOT find PythonLibsUnix. Was zur Hölle sucht Actions nach Unix Libs? O_O
Dateianhänge
python.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Ich strecke die Waffen. Da ist für mich kein Rankommen. Wenn Actions die Config versaut die unter Ubuntu tadellos funktioniert dann war es das wohl einfach.

Danke für deine Hilfe bis hierher xq :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von xq »

Tiles hat geschrieben: 08.07.2021, 12:47 Ich strecke die Waffen. Da ist für mich kein Rankommen. Wenn Actions die Config versaut die unter Ubuntu tadellos funktioniert dann war es das wohl einfach.

Danke für deine Hilfe bis hierher xq :)
Klingt für mich nach einer Crunch Time, was das Buildsystem angeht. Wenn ihr nur auf einer spezifischen Distro in einer spezifischen Version bauen könnt, ist da echt dringend Arbeit notwendig. Bequemer Build wird leider von vielen Projekten massiv vernachlässigt, und eine Anleitung, die *nur* auf Ubuntu baut und absolute Pfade verwendet, schreit nach dringend neu und sauber machen.

Das gute an einem CI ist: Du bekommst ein clean-slate System üblicherweise mit Minimalsystem. Damit hast du implizite Dependencies rausgeworfen
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Also der Build Process von Blender den wir ja auch verwenden ist wirklich straight forward, eigentlich narrensicher, und funktioniert auch so ziemlich überall. Und benutzt natürlich auch relative Pfade. Die absoluten Pfade die ich hier nehme ist nur weil ich nicht wusste welche Ordnerstruktur Github Actions verwendet. Und der einzige Ort auf der ganzen Welt wo es nicht funktioniert ist im Moment Github Actions. Wir hatten das auch schon auf Travis und noch einer anderen Buildplattform.

Das hat mir übrigens keine Ruhe gelassen. Was hier querschiesst ist eindeutig Github Actions. Ich brauche meine Libs einfach relativ zum Repository auf gleicher Ordnerebene. Wie oben schon gezeigt. Die nutzen mir gar nichts wenn Actions mir das ins Repo reinklont. Da werden sie nicht gefunden. Und das ist hier grade mein Problem. Die Libs sind nicht da wo sie gesucht werden.

Github Actions macht mier hier nur Änderungen in Bforartists/Bforartists wie ich grade rausgefunden habe. Mein CD funktioniert schlicht nicht. Obwohl es als Erfolg gekennzeichnet ist. Sieht man sehr schön. Ich wechsle nach Bforartists/Lib. Juckt Actions nicht die Bohne, das ist immer noch in Bforartists/Bforartists

Und somit kann ich das mit Actions eigentlich vergessen. Ich kriege meine Libs nicht auf den Platz wo sie hingehören: ich kann noch nicht mal checken ob sie nicht doch am Platz sind, weil cd nix macht. Du bist und bleibst auf Bforartists/Bforartists :/

Aber da muss es doch einen Weg geben. Du verwendest doch auch eine externe Lib wenn ich dein Actions File richtig verstanden habe.
Dateianhänge
wrongdirectory.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
VirtualLabs2000
Beiträge: 15
Registriert: 26.02.2002, 10:34
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von VirtualLabs2000 »

Wie xq oben schonmal erwähnt hat: Die einzelnen Steps bei Github Actions scheinen bzgl. der Pfade komplett unabhängig voneinander zu sein. Jeder Step startet wieder neu im Hauptverzeichnis deines Repos. Sprich: Wenn du in einem Step per "cd" in nen anderes Verzeichnis wechselst, hat das keine Auswirkungen auf andere Steps. Deshalb ist das so, wie auf deinem letzten Screenshot. Du machst ein "cd" und im nächsten Step startest du doch wieder im Hauptverzeichnis.

Bestimmte Action Templates bieten deshalb die Möglichkeit, ein Working Directory als Parameter mitzugeben. Du könntest mal schauen, ob das Template, was du nutzt, sowas unterstützt.
Alternativ kannst du natürlich auch nen kleines Shell-Skript schreiben und mit einchecken, was entsprechend zuerst in das richtige Verzeichnis wechselt und dann die nötigen Build-Befehle startet. Und per Action rufst du dann einfach nur das Skript auf. Dann hast du die volle Kontrolle darüber, was genau wo passiert.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Vielen Dank für die Erklärung. Das erklärt natürlich meine Probleme wenn das immer wieder ins Arbeitsverzeichnis zurückschnalzt. Ich mache mich mal bezüglich Templates schlau. Vielleicht ist so ein Rankommen.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
smurfer
Establishment
Beiträge: 195
Registriert: 25.02.2002, 14:55

Re: Github Actions zum Laufen kriegen

Beitrag von smurfer »

Ohne aus Zeitgründen jetzt alles im Detail gelesen zu haben:

Kannst Du die Kommandoketten mit 'cd' etc. nicht in ein Script verpacken und dieses dann ausführen? So mache ich es für gewöhnlich bei GitHub-Actions. Spart viel Kopfzerbrechen, weil Du dann auch ein eigenes Environment hast, falls Du noch irgendwelche Parameter oder ähnliches mitführst.

Edit: Gerade gesehen, dass @VirtualLabs2000 die Skripte schon erwähnt hat, wie gesagt, großes Votum für ein solches Vorgehen.

Ansonsten finde ich es eher positiv zu sehen, wo es auf einem solchen Vanilla-System bzgl. fehlender Bibliotheken hakt. So hat man die Möglichkeit, build-Skripte zu bauen, die auf dem kleinsten gemeinsamen Nenner für die richtige Umgebung sorgen. Ohne CI wie TravisCI oder GitHub-Actions habe ich des öfteren Abhängigkeiten in build-Skripten übersehen oder vergessen sie zu erwähnen.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Auch dir danke. Bin grade am recherchieren wie das geht :)

Naja, Dependencies gehören imho eigentlich nicht ins Repo. Das sind ja Abhängigkeiten des jeweiligen Betriebssystems. Und deswegen wundert es mich schon dass es da keine Standardlösung von Github Actions für externe Libraries gibt.

Man kann fehlende Dependencies natürlich mitkompilieren. Die Jungs von Blender waren nur so freundlich die ganzen Dinger vorzukompilieren. Was schon viel Sinn macht. Wenn ich die vorkompilierten Dependencies für Windows, Linux und Mac auch noch ins Repo packen müsste hätte das Ding mal eben 15 Gb mehr. Und wenn wir alles selber kompilieren hätten wir eine sehr viel höhere Kompilierzeit. Mit tausend möglichen Fehlerquellen mehr. Das Problem hatte Blender als sie das noch über ein install_deps.sh gelöst hatten. Da hat quasi immer irgendwas geklemmt. Speziell Boost ist da ein rechter Alptraum. Das macht also imho schon sehr viel Sinn das extern zu halten. Und für uns ist da eh kein Rankommen. Wir sind in der Hinsicht abhängig von Blender.

EDIT, bin ich da auf dem richtigen Weg? https://github.com/actions/github-script
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von xq »

Naja, Dependencies gehören imho eigentlich nicht ins Repo. Das sind ja Abhängigkeiten des jeweiligen Betriebssystems. Und deswegen wundert es mich schon dass es da keine Standardlösung von Github Actions für externe Libraries gibt.
Ganz einfach: Weil es keine Standardlösung für externe Libraries gibt. Die schmerzfreiste ist: Vendoring. Also einfach die Libraries selbst mitliefern und compilieren.
EDIT, bin ich da auf dem richtigen Weg? https://github.com/actions/github-script
Nein, die Rede ist von normalen Shellscripten/Bashscripten

Ich behaupte aber weiterhin, dass die Lösung für deine Working Directories durch die korrekte Konfiguration deiner Steps gelöst wird.

Du kannst auch das Bforartists-Repo in einen Unterordner auschecken, wenn du das brauchst
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Danke für die Links. Ich versuche mich mal da reinzubeissen :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Jetzt hats geschnackelt. Der Hauptjob rennt jetzt durch, es kompiliert fehlerfrei durch. Wo ich noch rumclinche ist der Upload. Aber das müsste ich auch noch in den Griff kriegen :)

working directory setzen hat das Vieh nicht weiter gejuckt. Der Trick war alles in ein einziges run zu packen. Das war der Teil den ich erst nicht hinbekommen habe und von dem ich dachte dass man jeden Befehl in eine einzelne Zeile packen muss. Und dann schnalzt es ja immer wieder zur ursprünglichen Directory zurück. Ein Hochkantstrich sorgt dafür dass man auch mehrere run Befehle hintereinander abarbeiten kann.

Ah, und ich hatte vergessen ein paar wichtige Sachen vorzuinstallieren. Vanilla Ubuntu hat nicht alles an Bord was ich brauche.

So siehts jetzt grade aus. Im Moment rennt es mit dem absoluten Pfad um zu testen ob er beim upload-artifacts die bin Directory dann findet. Und dann muss ich noch schauen wo der Upload dann zu finden ist. Vielleicht gibts ja auch eine Möglichkeit da ein Archiv zu erstellen. Aber das ist nicht mehr wirklich wichtig. Wichtig war ein grünes Pass zustande zu bekommen damit man sehen kann dass das Build fehlerfrei kompiliert.

Danke noch mal für die Hilfe :)

Code: Alles auswählen

name: C/C++ CI

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: configure
      run: |
        sudo apt update
        sudo apt install build-essential git subversion cmake libx11-dev libxxf86vm-dev libxcursor-dev libxi-dev libxrandr-dev libxinerama-dev libglew-dev
    - name: make
      run: |
        mkdir ~/bforartistsrepo
        cd ~/bforartistsrepo
        git clone https://github.com/Bforartists/Bforartists
        mkdir ~/bforartistsrepo/lib
        cd ~/bforartistsrepo/lib
        svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_centos7_x86_64
        cd ~/bforartistsrepo/Bforartists
        make

    - name: Upload Build
      uses: actions/upload-artifact@v2
      with:
        name: Bforartists-Release-${{ runner.os }}
        path: home/runner/bforartistsrepo/build_linux/bin/
        #path: ${{ env._MAIN_DIR }}/bforartistsrepo/build_linux/bin/
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Github Actions geruhen mich weiterhin narrisch zu machen. Na wenigstens kompilierts ^^

EDIT, da hat nur ein Slash gefehlt. Artefakt ist up. Jetzt tut alles wie es soll :)
Dateianhänge
artiifacts.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
smurfer
Establishment
Beiträge: 195
Registriert: 25.02.2002, 14:55

Re: Github Actions zum Laufen kriegen

Beitrag von smurfer »

Klasse, schön, dass es geklappt hat! Wie gesagt finde ich es allein für die Übersicht der Abhängigkeiten ein gutes Gefühl zu wissen, dass alles auf einem Vanilla-System am Ende baut.
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von xq »

Tiles hat geschrieben: 10.07.2021, 18:01

Code: Alles auswählen

name: C/C++ CI
on:
  pull_request:
    branches: [ master ]
jobs:
  build:
    steps:
    - name: make
      run: |
        mkdir ~/bforartistsrepo
        cd ~/bforartistsrepo
        git clone https://github.com/Bforartists/Bforartists
Das bedeutet, dass auch bei Pull Requests dass CI github master baut, und NICHT die Changes aus dem Pull Request. Du solltest definitiv die offizielle checkout action nehmen, denn diese nimmt auch tatsächlich den commit, für den das CI angestoßen wurde
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Danke für den Hinweis.

Verstehe. Das zieht mir dann quasi den Stand vom Master vor dem Merge. Mit der offiziellen checkout action geht es leider nicht. Da habe ich ja dann das Pfadproblem weil das dann eben nicht in einem Rutsch zu machen ist.

Dass es nur den Master kompiliert ist aber durchaus gewollt. Das war der Plan. Alles gut. Vielleicht nehme ich das mit dem Pull Request auch wieder raus. Im Moment teste ich einen cron :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von xq »

Verstehe. Das zieht mir dann quasi den Stand vom Master vor dem Merge. Mit der offiziellen checkout action geht es leider nicht. Da habe ich ja dann das Pfadproblem weil das dann eben nicht in einem Rutsch zu machen ist.
Ich habe dir oben die Doku schon verlinkt, wo du den Pfad für den Checkout einstellen kannst.
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Github Actions zum Laufen kriegen

Beitrag von Tiles »

Ja. Und das hat nicht funktioniert :)

Ich bin aber für jeden Vorschlag offen :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Antworten