Durchsuchen nach
Author: masterdevops

GITHUB_ENV in Windows Runners setzen

GITHUB_ENV in Windows Runners setzen

Wenn man GitHub Actions nutzt und einen Windows Runner für die Action verwendet, muss man Variablenwerte für Umgebungsvariablen anders setzen als in einem Linux Runner: echo “myvar=SOMEVALUE” | Out-File -FilePath $Env:GITHUB_ENV -Append In einem späteren Step kann man wie üblich auf die Variable zugreifen und nutzen: echo “${{ env.myvar }}”

GitHub Actions Beispiel mit Gradle

GitHub Actions Beispiel mit Gradle

gradle ist ein Build-Management-Automatisierungs-Tool mit dem man Java-Projekte bauen kann (wenn entsprechende Konfigurationsdateien vorhanden sind). gradle kann man auch in GitHub Actions nutzen. Ein Bau mit gradle kann z.B. so aussehen: name: Example for gradle build on: push: branches: – “**” workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: – uses: actions/checkout@v3 – name: Build with gradle run: | gradle build

CMake Projekt mit SDL2 und X11

CMake Projekt mit SDL2 und X11

Kürzlich habe ich eine CMakeLists.txt für ein Projekt geschrieben bei dem das Projekt Abhängigkeiten zu den Bibliotheken SDL2 und X11 hat. Die Abhängigkeiten in der CMakeLists.txt zu beschreiben ist recht einfach. Zuerst müssen die Bibliotheken gefunden werden: FIND_PACKAGE(SDL2 REQUIRED) FIND_PACKAGE(X11 REQUIRED) Das Target muss dann noch mit den Bibliotheken gebaut werden: TARGET_LINK_LIBRARIES(<targetname> ${SDL2_LIBRARIES} ${X11_LIBRARIES})

SDL2 Paket in Ubuntu GitHub Runner installieren

SDL2 Paket in Ubuntu GitHub Runner installieren

Es gibt Projekte die die Funktionalitäten von SDL2 nutzen. Wenn man nun ein C++-Projekte auf einem GitHub Runner bauen möchte der SDL2 benutzt, muss man zuvor SDL2 installiert haben. Auf einem Ubuntu-Runner könnte man das folgendermaßen lösen: name: Build my project on: push: branches: – main jobs: build: runs-on: ubuntu-latest steps: – name: Install dependencies run: | sudo apt install libsdl2-dev – name: Checkout of code uses: actions/checkout@v3 – name: Build run: | make

Dependency Management in C++

Dependency Management in C++

Patricia Aas gibt hier einen Vortrag über Dependency Management in C++. Dabei werden kurz Wege gezeigt, wie man mit CMake und anderen Produkten eine Art Dependency Management herstellen kann. Dabei werden auch gute Aspekte und Probleme gezeigt. Der Vortrag ist sehr interessant weil hier aufgezeigt wird, welche Probleme man im Dependency Management in C++ hat.

PHP: No package ‘libxml-2.0’ found

PHP: No package ‘libxml-2.0’ found

Beim Kompilieren von PHP kam bei mir die Fehlermeldung checking for libxml-2.0 >= 2.9.0… no configure: error: Package requirements (libxml-2.0 >= 2.9.0) were not met: No package ‘libxml-2.0’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBXML_CFLAGS and LIBXML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. make: *** No targets specified and no makefile found. Stop. make: ***…

Weiterlesen Weiterlesen

[CMake] Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)

[CMake] Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)

Manchmal kann es passieren, dass man beim Aufruf von einem CMake Befehl folgende oder ähnliche Fehlermeldung bekommt: — Looking for CURL CMake Error at /usr/local/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) Call Stack (most recent call first): /usr/local/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) /usr/local/share/cmake-3.24/Modules/FindCURL.cmake:181 (find_package_handle_standard_args) CMakeLists.txt:72 (find_package) CMake konnte dann die Bibliothek cURL auf dem System nicht finden. Um das Problem zu lösen gibt es mehrere Möglichkeiten. Eine Möglichkeit besteht darin das entsprechende Paket auf dem System nachzuinstallieren. Auf einem Ubuntusystem würde…

Weiterlesen Weiterlesen

Globale Buildtimeout in Jenkins festlegen

Globale Buildtimeout in Jenkins festlegen

Man kann mittlerweile eine globale Buildtimeout in Jenkins festlegen. Dies ist eine nützliche Eigenschaft wenn man öfters auch mal Jobs hatte, die übers Wochenende länger liefen als sie sollten. In diesem Post möchte ich kurz zeigen wie man diese festlegt. Eine Buildtimeout ist die Zeit, die ein Job höchstens laufen darf. Wenn diese Zeit überschritten wird, dann soll der Job in der Regel fehlschlagen. Um eine globale Buildtimeout festzulegen, geht man erstmal in die Systemkonfiguration (Jenkins verwalten -> System konfigurieren):…

Weiterlesen Weiterlesen

Arbeitsverzeichnis in GitHub Actions setzen

Arbeitsverzeichnis in GitHub Actions setzen

In GitHub Actions kann man das Arbeitsverzeichnis (working-directory) auf verschiedenen Ebenen setzen: Global für alle Jobs in einem Workflow (also einer yml-Datei) Auf Job-Ebene Auf Step-Ebene In diesem Post möchte ich kurz zeigen, wie man das für jede Ebene realisieren kann. Als Beispiel habe ich dafür drei verschiedene GitHub Action Jobs erstellt, die alle dasselbe Shell Skript (run.sh) im Unterordner demo ausführen sollen. Jedoch wird in jedem Job das Arbeitsverzeichnis auf jeweils andere Weise gesetzt. Arbeitsverzeichnis für alle Jobs in…

Weiterlesen Weiterlesen