Browse Source

ci: Add script to install appimagetool in Linux jobs

Brad King 1 month ago
parent
commit
9f2949bc68

+ 1 - 0
.gitlab/.gitignore

@@ -1,5 +1,6 @@
 # Ignore files known to be downloaded by CI jobs.
 /5.15.1-0-202009071110*
+/appimagetool
 /bcc*
 /cmake*
 /emsdk

+ 3 - 0
.gitlab/ci/appimagetool-env.sh

@@ -0,0 +1,3 @@
+.gitlab/ci/appimagetool.sh
+export PATH=$PWD/.gitlab/appimagetool/bin:$PATH
+appimagetool --version

+ 32 - 0
.gitlab/ci/appimagetool.sh

@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -e
+
+readonly version="1.9.0.20250814"
+
+case "$(uname -s)-$(uname -m)" in
+    Linux-x86_64)
+        shatool="sha256sum"
+        sha256sum="6414d395eafee09453d2e203d9cc65f867e6ff7e1a8a6c08e444d86cb1d106ad"
+        filename="appimagetool-$version-x86_64"
+        ;;
+    *)
+        echo "Unrecognized platform $(uname -s)-$(uname -m)"
+        exit 1
+        ;;
+esac
+readonly shatool
+readonly sha256sum
+
+cd .gitlab
+
+# This URL is only visible inside of Kitware's network.  See above filename table.
+baseurl="https://cmake.org/files/dependencies/internal"
+
+tarball="$filename.tar.gz"
+echo "$sha256sum  $tarball" > appimagetool.sha256sum
+curl -OL "$baseurl/$tarball"
+$shatool --check appimagetool.sha256sum
+tar xzf "$tarball"
+rm "$tarball" appimagetool.sha256sum
+mv "$filename" "appimagetool"

+ 28 - 0
.gitlab/ci/repackage/appimagetool.sh

@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+set -e
+
+arch="$1"
+version="${2-1.9.0.20250814}"
+
+dir="appimagetool-$version-$arch"
+mkdir "$dir"
+mkdir -p "$dir/lib/appimagetool"
+
+filename="appimagetool-$arch.AppImage"
+curl -OL "https://github.com/AppImage/appimagetool/releases/download/continuous/$filename"
+chmod +x "$filename"
+"./$filename" --appimage-extract
+mv "squashfs-root/usr/bin" "$dir/bin"
+rm -rf "$filename" "squashfs-root"
+
+filename="runtime-$arch"
+curl -OL "https://github.com/AppImage/type2-runtime/releases/download/continuous/$filename"
+mv "$filename" "$dir/lib/appimagetool/runtime"
+
+cat >"$dir/README.txt" <<EOF
+This was packaged using CMake's ".gitlab/ci/repackage/appimagetool.sh" script.
+EOF
+
+tar czf "$dir.tar.gz" "$dir"
+rm -rf "$dir"