From cbf815328c42d673e7c3fe8d52bfb75a2db5cd14 Mon Sep 17 00:00:00 2001 From: Joshua Kimsey Date: Sun, 12 Jan 2025 08:33:26 -0500 Subject: [PATCH 1/7] Add initial support for building App Images Created initial workflow for building App Image releases for Gource --- .github/workflows/build-appimage.yml | 63 ++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/build-appimage.yml diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml new file mode 100644 index 00000000..87d26127 --- /dev/null +++ b/.github/workflows/build-appimage.yml @@ -0,0 +1,63 @@ + +name: Build Gource AppImage + +on: + release: + types: [published] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + build-essential cmake libsdl2-dev libpcre3-dev libglew-dev \ + libglm-dev libboost-filesystem-dev libfreetype6-dev libpng-dev \ + libjpeg-dev libfftw3-dev libvorbis-dev libopenal-dev libxrandr-dev \ + libxi-dev libsdl2-* libfuse libfuse-dev + + - name: Build Gource + run: | + ./autogen.sh + ./configure + make + + - name: Download linuxdeploy + run: | + wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage + chmod +x linuxdeploy-x86_64.AppImage + + - name: Bundle dependencies with linuxdeploy + run: | + ./linuxdeploy-x86_64.AppImage --appdir AppDir --executable AppDir/usr/bin/gource --desktop-file AppDir/gource.desktop --icon-file AppDir/gource.png --output appimage + + - name: Prepare AppDir + run: | + mkdir -p AppDir/usr/bin + cp gource AppDir/usr/bin/ + mkdir -p AppDir/usr/share/gource + cp -r data/* AppDir/usr/share/gource/ + echo "[Desktop Entry] + Name=Gource + Exec=gource + Icon=gource + Type=Application + Categories=Graphics;Development; + Comment=Software version control visualization tool" > AppDir/gource.desktop + cp data/file.png AppDir/gource.png + + - name: Create AppImage + run: | + ./appimagetool-x86_64.AppImage AppDir + + - name: Upload AppImage as an artifact + uses: actions/upload-artifact@v3 + with: + name: Gource.AppImage + path: Gource-x86_64.AppImage From ef18f98d2a07778c343621b50eb94f5e0c3cbfde Mon Sep 17 00:00:00 2001 From: Joshua Kimsey Date: Sun, 12 Jan 2025 08:37:58 -0500 Subject: [PATCH 2/7] Fix issue with dependency naming --- .github/workflows/build-appimage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index 87d26127..d2385877 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -20,7 +20,7 @@ jobs: build-essential cmake libsdl2-dev libpcre3-dev libglew-dev \ libglm-dev libboost-filesystem-dev libfreetype6-dev libpng-dev \ libjpeg-dev libfftw3-dev libvorbis-dev libopenal-dev libxrandr-dev \ - libxi-dev libsdl2-* libfuse libfuse-dev + libxi-dev libsdl2-* libfuse-dev - name: Build Gource run: | From a71a7ffb29f46cbcdbfa8a3483803575897d7ddb Mon Sep 17 00:00:00 2001 From: Joshua Kimsey Date: Sun, 12 Jan 2025 09:14:34 -0500 Subject: [PATCH 3/7] Fix build issues with linuxdeploy --- .github/workflows/build-appimage.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index d2385877..d760d39d 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -33,10 +33,6 @@ jobs: wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage chmod +x linuxdeploy-x86_64.AppImage - - name: Bundle dependencies with linuxdeploy - run: | - ./linuxdeploy-x86_64.AppImage --appdir AppDir --executable AppDir/usr/bin/gource --desktop-file AppDir/gource.desktop --icon-file AppDir/gource.png --output appimage - - name: Prepare AppDir run: | mkdir -p AppDir/usr/bin @@ -52,9 +48,9 @@ jobs: Comment=Software version control visualization tool" > AppDir/gource.desktop cp data/file.png AppDir/gource.png - - name: Create AppImage + - name: Bundle dependencies with linuxdeploy run: | - ./appimagetool-x86_64.AppImage AppDir + ./linuxdeploy-x86_64.AppImage --appdir AppDir --executable AppDir/usr/bin/gource --desktop-file AppDir/gource.desktop --icon-file AppDir/gource.png --output appimage - name: Upload AppImage as an artifact uses: actions/upload-artifact@v3 From 89b90f5c5d301b3a9150cdabcd92b4a01858e3d4 Mon Sep 17 00:00:00 2001 From: Joshua Kimsey Date: Sun, 12 Jan 2025 09:23:45 -0500 Subject: [PATCH 4/7] Add ability to upload AppImage to Release --- .github/workflows/build-appimage.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index d760d39d..74542bbb 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -57,3 +57,10 @@ jobs: with: name: Gource.AppImage path: Gource-x86_64.AppImage + + - name: Upload AppImage to Release + uses: softprops/action-gh-release@v1 + with: + files: Gource-x86_64.AppImage + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 5fd4020bf8bd944124d86b0f86f21257e7ced674 Mon Sep 17 00:00:00 2001 From: Joshua Kimsey Date: Sun, 12 Jan 2025 22:46:29 -0500 Subject: [PATCH 5/7] Removed artifact build, Added version to file name - Removed the redundant artifact build - Added Gource version to file name to match other releases. --- .github/workflows/build-appimage.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index 74542bbb..188ab310 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -51,16 +51,11 @@ jobs: - name: Bundle dependencies with linuxdeploy run: | ./linuxdeploy-x86_64.AppImage --appdir AppDir --executable AppDir/usr/bin/gource --desktop-file AppDir/gource.desktop --icon-file AppDir/gource.png --output appimage - - - name: Upload AppImage as an artifact - uses: actions/upload-artifact@v3 - with: - name: Gource.AppImage - path: Gource-x86_64.AppImage + mv Gource-x86_64.AppImage gource-${{ github.event.release.tag_name }}.AppImage - name: Upload AppImage to Release uses: softprops/action-gh-release@v1 with: - files: Gource-x86_64.AppImage + files: gource-${{ github.event.release.tag_name }}.AppImage env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From baf54b4f2e0fb54f862778dbaa96e59f03d11501 Mon Sep 17 00:00:00 2001 From: Joshua Kimsey Date: Fri, 17 Jan 2025 03:52:03 -0500 Subject: [PATCH 6/7] Fixed unneeded dependencies issue --- .github/workflows/build-appimage.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index 188ab310..8bc76652 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -19,8 +19,7 @@ jobs: sudo apt-get install -y \ build-essential cmake libsdl2-dev libpcre3-dev libglew-dev \ libglm-dev libboost-filesystem-dev libfreetype6-dev libpng-dev \ - libjpeg-dev libfftw3-dev libvorbis-dev libopenal-dev libxrandr-dev \ - libxi-dev libsdl2-* libfuse-dev + libjpeg-dev libsdl2-image-dev libfuse-dev - name: Build Gource run: | From df03caa5fa674931a16b44f68dece6f163fac555 Mon Sep 17 00:00:00 2001 From: Joshua Kimsey Date: Sat, 18 Jan 2025 23:40:27 -0500 Subject: [PATCH 7/7] Slight adjustment to categories declaration - Flipped Graphics and Development for the categories since it is more of a development app. Though it really isn't of much importance since this is designed to be run from within a Terminal. --- .github/workflows/build-appimage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-appimage.yml b/.github/workflows/build-appimage.yml index 8bc76652..85e1a03d 100644 --- a/.github/workflows/build-appimage.yml +++ b/.github/workflows/build-appimage.yml @@ -43,7 +43,7 @@ jobs: Exec=gource Icon=gource Type=Application - Categories=Graphics;Development; + Categories=Development;Graphics; Comment=Software version control visualization tool" > AppDir/gource.desktop cp data/file.png AppDir/gource.png