From 667df03da7e58d981f126fbf369657c9d95a090e Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 07:53:50 -0400 Subject: [PATCH 01/20] Make workflows a bit saner. Signed-off-by: Gregorio Litenstein --- .github/workflows/continuous-builds.yml | 84 +++++++++++++++++-------- .github/workflows/stable-releases.yml | 37 ++++++----- 2 files changed, 81 insertions(+), 40 deletions(-) diff --git a/.github/workflows/continuous-builds.yml b/.github/workflows/continuous-builds.yml index a13c927e..57fd4bc3 100644 --- a/.github/workflows/continuous-builds.yml +++ b/.github/workflows/continuous-builds.yml @@ -11,60 +11,89 @@ on: - '!**' jobs: - pytest-ubuntu-focal: + pytest-ubuntu-noble: runs-on: ubuntu-latest - container: ubuntu:22.04 + container: ubuntu:24.04 steps: - name: Install dependencies run: | - apt-get update - apt-get install -y python3.11 python3-pip python3-pytest fakeroot binutils patchelf git - - uses: actions/checkout@v3 + apt-get -y update + apt-get install -y python3 python3-pip python3-venv fakeroot binutils patchelf git + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up the virtualenv + run: | + python3 -m venv .venv + . .venv/bin/activate + pip install pytest - name: Install appimage-builder run: | - git config --global --add safe.directory $PWD - git fetch --prune --unshallow - python3 -m pip install -e .[dev] + . .venv/bin/activate + pip install -e .[dev] - name: Run pytest - run: python3 -m unittest + run: | + . .venv/bin/activate + python3 -m pytest tests pytest-archlinux: runs-on: ubuntu-latest container: archlinux steps: - name: Install dependencies - run: pacman -Syu --noconfirm python-pip python-pytest python-setuptools binutils patchelf fakeroot strace patchelf git - - uses: actions/checkout@v3 + run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot strace patchelf git + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up the virtualenv + run: | + python3 -m venv .venv + . .venv/bin/activate + pip install pytest - name: Install appimage-builder run: | - git config --global --add safe.directory $PWD - git fetch --prune --unshallow - python3 -m pip install -e .[dev] + . .venv/bin/activate + pip install -e .[dev] - name: Run pytest - run: python3 -m unittest + run: | + . .venv/bin/activate + pytest tests build: runs-on: ubuntu-latest - needs: [ pytest-ubuntu-focal, pytest-archlinux ] + needs: [ pytest-ubuntu-noble, pytest-archlinux ] steps: - name: Install dependencies run: | - sudo apt install -y python3.11-minimal python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git + sudo apt-get update + sudo apt-get install -y python3-pip python3-venv patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up the virtualenv + run: | + python3 -m venv .venv + . .venv/bin/activate + pip install pytest + #- name: Activate virtual environment + #run: echo PATH=${GITHUB_WORKSPACE}/venv/bin:$PATH >> $GITHUB_ENV - name: Install appimage-builder run: | - git config --global --add safe.directory $PWD - git fetch --prune --unshallow - sudo python3.11 -m pip install . + . .venv/bin/activate + pip install --ignore-installed . - name: Build AppImage run: | + . .venv/bin/activate cd recipes/appimage-builder export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") appimage-builder --skip-test - name: Upload Artifacts - uses: actions/upload-artifact@v2.1.4 + uses: actions/upload-artifact@v4 with: name: appimage-builder path: 'recipes/appimage-builder/appimage-builder*.AppImage*' @@ -72,9 +101,12 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Download AppImage from build job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: appimage-builder - name: Install dependencies @@ -91,7 +123,7 @@ jobs: run: | recipes/bash/*.AppImage --appimage-extract-and-run -c "echo Hello World" - name: Upload Artifacts - uses: actions/upload-artifact@v2.1.4 + uses: actions/upload-artifact@v4 with: name: bash path: 'recipes/bash/*.AppImage*' @@ -101,7 +133,7 @@ jobs: if: github.ref == 'refs/heads/main' steps: - name: Download AppImage from build job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: appimage-builder - uses: "marvinpinto/action-automatic-releases@latest" diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index be135c07..c0b399a1 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -14,22 +14,25 @@ jobs: steps: - name: Install dependencies run: | - sudo apt install -y python3.8-minimal python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git + sudo apt-get install -y python3 python3-pip python3-venv patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Install appimage-builder run: | - git config --global --add safe.directory $PWD - git fetch --prune --unshallow - sudo python3.8 -m pip install . + python3 -m venv .venv + . .venv/bin/activate + python3 -m pip install . - name: Build AppImage run: | cd recipes/appimage-builder export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") appimage-builder --skip-test - name: Upload Artifacts - uses: actions/upload-artifact@v2.1.4 + uses: actions/upload-artifact@v4 with: name: appimage-builder path: 'recipes/appimage-builder/appimage-builder*.AppImage*' @@ -37,9 +40,12 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - uses: actions/checkout@v3 + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Download AppImage from build job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: appimage-builder - name: Install dependencies @@ -56,16 +62,16 @@ jobs: run: | recipes/bash/*.AppImage --appimage-extract-and-run -c "echo Hello World" - name: Upload Artifacts - uses: actions/upload-artifact@v2.1.4 + uses: actions/upload-artifact@v4 with: name: bash path: 'recipes/bash/*.AppImage*' publish-appimage: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 needs: test steps: - name: Download AppImage from build job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: appimage-builder - uses: "marvinpinto/action-automatic-releases@latest" @@ -77,19 +83,22 @@ jobs: runs-on: ubuntu-latest needs: test steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: python-version: '3.x' - name: Install dependencies run: | - python -m pip install --upgrade pip + python3 -m venv .venv + . .venv/bin/activate + python3 -m pip install --upgrade pip pip install setuptools wheel twine - name: Build and publish env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | + . .venv/bin/activate python setup.py sdist bdist_wheel twine upload dist/* From e94146665e06980d37e9f24ef4c59b79ba1a367a Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 14:51:09 -0400 Subject: [PATCH 02/20] fix stdin maybe? Signed-off-by: Gregorio Litenstein --- appimagebuilder/modules/deploy/pacman/venv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appimagebuilder/modules/deploy/pacman/venv.py b/appimagebuilder/modules/deploy/pacman/venv.py index f247d860..603e145a 100644 --- a/appimagebuilder/modules/deploy/pacman/venv.py +++ b/appimagebuilder/modules/deploy/pacman/venv.py @@ -224,7 +224,7 @@ def _run_command( # need to split the command into args _proc = subprocess.Popen( - shlex.split(command), stdout=stdout, stdin=sys.stdin, stderr=sys.stderr + shlex.split(command), stdout=stdout, stdin=subprocess.PIPE, stderr=sys.stderr ) if wait_for_completion: From 95691eab05a06f484970e842c6cb4c06bada319c Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 15:23:08 -0400 Subject: [PATCH 03/20] update requirements.txt Signed-off-by: Gregorio Litenstein --- requirements.txt | 65 ++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/requirements.txt b/requirements.txt index 62b67393..839b1491 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,42 +1,43 @@ arpy==2.3.0 -certifi==2023.7.22 -cffi==1.16.0 -charset-normalizer==3.3.0 -configparser==6.0.0 +certifi==2025.7.14 +cffi==1.17.1 +charset-normalizer==3.4.2 +configparser==7.2.0 contextlib2==21.6.0 -cryptography==42.0.4 -decorator==5.1.1 -distlib==0.3.7 -docker==6.1.3 +cryptography==45.0.5 +decorator==5.2.1 +distlib==0.4.0 +docker==7.1.0 emrichen==0.4.0 -filelock==3.12.4 -idna==3.4 +filelock==3.18.0 +idna==3.10 jsonpath-rw==1.4.0 libconf==2.0.1 -lief==0.12.2 -packaging==23.2 +lief==0.16.6 +packaging==25.0 PGPy==0.6.0 -pipenv==2023.10.3 -platformdirs==3.11.0 +pipenv==2025.0.4 +platformdirs==4.3.8 ply==3.11 -prompt-toolkit==3.0.36 +prompt_toolkit==3.0.51 pyaml==21.10.1 -pyasn1==0.5.0 -pycparser==2.21 -pydpkg==1.9.2 -PyMySQL==1.1.0 -python-gnupg==0.4.9 -PyYAML==6.0.1 -questionary==2.0.1 -requests==2.31.0 +pyasn1==0.6.1 +pycparser==2.22 +pydpkg==1.9.4 +PyMySQL==1.1.1 +python-gnupg==0.5.4 +PyYAML==6.0.2 +questionary==2.1.0 +requests==2.32.4 roam==0.3.1 -ruamel.yaml==0.17.35 -ruamel.yaml.clib==0.2.8 -schema==0.7.5 +ruamel.yaml==0.18.14 +ruamel.yaml.clib==0.2.12 +schema==0.7.7 +setuptools==80.9.0 shutils==0.1.0 -six==1.16.0 -urllib3==1.26.18 -virtualenv==20.24.5 -wcwidth==0.2.8 -websocket-client==1.6.4 -zstandard==0.19.0 +six==1.17.0 +urllib3==2.5.0 +virtualenv==20.32.0 +wcwidth==0.2.13 +websocket-client==1.8.0 +zstandard==0.23.0 From 13577e64fff3fddd610997e6d73e82280dca17d6 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sun, 3 Aug 2025 14:10:15 -0400 Subject: [PATCH 04/20] Fix compression MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seems I was working on this in parallel to what got merged. My reasoning is this: Use the expanded `-noX` commands that mean the same as `—no-compresion` according to the documentation. By default use zstd compression instead of xz, because the AppImage team has said on at least one occassion that’s what’s going in the standard spec. Signed-off-by: Gregorio Litenstein --- appimagebuilder/modules/generate/recipe_generator.py | 2 +- appimagebuilder/modules/prime/appimage_primer.py | 6 +++--- appimagebuilder/orchestrator.py | 3 +-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/appimagebuilder/modules/generate/recipe_generator.py b/appimagebuilder/modules/generate/recipe_generator.py index 5bece795..dc95eebc 100644 --- a/appimagebuilder/modules/generate/recipe_generator.py +++ b/appimagebuilder/modules/generate/recipe_generator.py @@ -100,7 +100,7 @@ def _generate_v1_recipe(self, bundle_info, sections): }, "AppImage": { "arch": bundle_info.runtime_arch, - "comp": bundle_info.compression, + "comp": bundle_info.compression or "None", "update-information": bundle_info.update_string }, } diff --git a/appimagebuilder/modules/prime/appimage_primer.py b/appimagebuilder/modules/prime/appimage_primer.py index 683c1b04..f3af11f4 100644 --- a/appimagebuilder/modules/prime/appimage_primer.py +++ b/appimagebuilder/modules/prime/appimage_primer.py @@ -87,11 +87,11 @@ def _make_squashfs(self, appdir: pathlib.Path): # I think this is better than hardcoding the supported compressions # If the team behind AppImageKit adds a new compression # we wouldn't need to update the code and release a new version just for a new compression method - comp = self.config.comp() or "xz" + comp = self.config.comp() or "None" if comp != "None": - command += [ "-comp", comp] + command += [ "-comp", self.config.comp()] else: - command += ["-noDataCompression"] + command += ["-noI","-noD","-noF","-noX"] self.logger.info("Creating squashfs from AppDir") self.logger.debug(" ".join(command)) diff --git a/appimagebuilder/orchestrator.py b/appimagebuilder/orchestrator.py index 50aaf4f8..a41ce89c 100644 --- a/appimagebuilder/orchestrator.py +++ b/appimagebuilder/orchestrator.py @@ -178,8 +178,7 @@ def _extract_v1_recipe_context(self, args, recipe): app_info=app_info, update_string=recipe.AppImage["update-information"]() or "guess", runtime_arch=recipe.AppImage.arch(), - compression=recipe.AppImage.comp() or "xz", - sign_key=recipe.AppImage["sign-key"]() or None, + compression=recipe.AppImage.comp() or "zstd", file_name=recipe.AppImage["file_name"] or None, ) return Context( From 903ea1b994f7723beebff81ef44fe4071237b120 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 17:53:20 -0400 Subject: [PATCH 05/20] Fix invalid escape sequence in loader regex Signed-off-by: Gregorio Litenstein --- appimagebuilder/recipe/loader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appimagebuilder/recipe/loader.py b/appimagebuilder/recipe/loader.py index 4263ab7f..d75ebbbb 100644 --- a/appimagebuilder/recipe/loader.py +++ b/appimagebuilder/recipe/loader.py @@ -43,7 +43,7 @@ def __init__(self): self._tag = "!ENV" # pattern for global vars: look for ${word} - pattern = re.compile(".*?\${(\w+)}.*?") + pattern = re.compile(r".*?\${(\w+)}.*?") self._loader.add_implicit_resolver(self._tag, pattern, None) From 906cba11921c9fff85452f0c7fae8578ff87ae1c Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Thu, 24 Jul 2025 19:58:10 -0400 Subject: [PATCH 06/20] Make sure bin folder exists Signed-off-by: Gregorio Litenstein --- recipes/appimage-builder/AppImageBuilder.yml | 7 ++++--- recipes/bash/AppImageBuilder.yml | 1 + recipes/bash/bash-apprun-v3.yml | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index 2304b9b8..2844f748 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -34,7 +34,7 @@ AppDir: - fakeroot - libgdk-pixbuf2.0-dev - patchelf - - python3.8 + - python3 - squashfs-tools - strace - zsync @@ -42,12 +42,13 @@ AppDir: after_bundle: | # configure tools + mkdir -p $TARGET_APPDIR/bin ln -s fakeroot-sysv $TARGET_APPDIR/usr/bin/fakeroot ln -s bash $TARGET_APPDIR/bin/sh # install appimage-builder - python3.8 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" install ../../ - python3.8 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" install certifi + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" ../../ + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" certifi runtime: version: "continuous" diff --git a/recipes/bash/AppImageBuilder.yml b/recipes/bash/AppImageBuilder.yml index 3684f3a2..d05c017a 100644 --- a/recipes/bash/AppImageBuilder.yml +++ b/recipes/bash/AppImageBuilder.yml @@ -7,6 +7,7 @@ script: - cp -r tests $TARGET_APPDIR - ln -s ../usr/bin/env $TARGET_APPDIR/tests/test_internal_binary_env - ln -s /usr/bin/env $TARGET_APPDIR/tests/test_external_binary_env + - mkdir -p $TARGET_APPDIR/bin - ln -s bash $TARGET_APPDIR/bin/nubash AppDir: diff --git a/recipes/bash/bash-apprun-v3.yml b/recipes/bash/bash-apprun-v3.yml index bc758ab4..e4aa966c 100644 --- a/recipes/bash/bash-apprun-v3.yml +++ b/recipes/bash/bash-apprun-v3.yml @@ -7,6 +7,7 @@ script: - cp -r tests $TARGET_APPDIR - ln -s ../usr/bin/env $TARGET_APPDIR/tests/test_internal_binary_env - ln -s /usr/bin/env $TARGET_APPDIR/tests/test_external_binary_env + - mkdir -p $TARGET_APPDIR/bin - ln -s bash $TARGET_APPDIR/bin/nubash AppDir: From 893320fab78a76930affa5cd7fa6691f73f70937 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Fri, 25 Jul 2025 09:42:09 -0400 Subject: [PATCH 07/20] =?UTF-8?q?Don=E2=80=99t=20try=20to=20parse=20invali?= =?UTF-8?q?d=20versions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gregorio Litenstein --- appimagebuilder/commands/setup_runtime.py | 9 +++++---- appimagebuilder/modules/setup/apprun_2/apprun2.py | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/appimagebuilder/commands/setup_runtime.py b/appimagebuilder/commands/setup_runtime.py index 5341aeca..38e9a66d 100644 --- a/appimagebuilder/commands/setup_runtime.py +++ b/appimagebuilder/commands/setup_runtime.py @@ -28,14 +28,15 @@ def id(self): def __call__(self, *args, **kwargs): apprun_version = self.context.recipe.AppDir.runtime.version() or "v2.0.0" - apprun_version = version.parse(apprun_version) + if apprun_version != "continuous": + apprun_version = version.parse(apprun_version) runtime_setup = None - if ( + if (apprun_version != "continuous" and version.parse("v2.0.0") <= apprun_version < version.parse("v3.0.0") - ) or apprun_version == version.parse("continuous"): + ) or apprun_version == "continuous": runtime_setup = AppRunV2Setup(self.context, self._finder) - if not runtime_setup and version.parse("v3.0.0-devel") <= apprun_version < version.parse("v4.0.0"): + if not runtime_setup and apprun_version != "continuous" and version.parse("v3.0.0-devel") <= apprun_version < version.parse("v4.0.0"): runtime_setup = AppRunV3Setup(self.context) if not runtime_setup: diff --git a/appimagebuilder/modules/setup/apprun_2/apprun2.py b/appimagebuilder/modules/setup/apprun_2/apprun2.py index ffcee5dc..be7e6ab0 100644 --- a/appimagebuilder/modules/setup/apprun_2/apprun2.py +++ b/appimagebuilder/modules/setup/apprun_2/apprun2.py @@ -81,7 +81,8 @@ def __init__(self, context: Context, finder: Finder): self.path_mappings_env: Final = "APPDIR_PATH_MAPPINGS" - parsed_version = version.parse(self.apprun_version) + if self.apprun_version != "continuous": + parsed_version = version.parse(self.apprun_version) if self.apprun_version != "continuous" and ( parsed_version < version.parse("v2.0.0") or parsed_version > version.parse("v3.0.0") From 2ccede7c0389f07f3436f76ca377f057df92e823 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Fri, 25 Jul 2025 14:35:58 -0400 Subject: [PATCH 08/20] Add actual python version to environment. Signed-off-by: Gregorio Litenstein --- appimagebuilder/__main__.py | 3 +++ recipes/appimage-builder/AppImageBuilder.yml | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/appimagebuilder/__main__.py b/appimagebuilder/__main__.py index 48cc8390..c7f07966 100755 --- a/appimagebuilder/__main__.py +++ b/appimagebuilder/__main__.py @@ -19,6 +19,8 @@ from appimagebuilder.modules.generate.command_generate import CommandGenerate from appimagebuilder.invoker import Invoker from appimagebuilder.orchestrator import Orchestrator +from os import environ +from sys import version_info def __main__(): @@ -37,6 +39,7 @@ def __main__(): exit(0) recipe_loader = recipe.Loader() + environ["APPIMAGE_BUILDER_PY_VERSION"] = rf"{version_info.major}.{version_info.minor}" raw_recipe_data = recipe_loader.load(args.recipe) recipe_roamer = recipe.Roamer(raw_recipe_data) diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index 2844f748..7b1214f0 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -13,7 +13,7 @@ AppDir: icon: appimage-builder version: 'latest' # Set the python executable as entry point - exec: usr/bin/python3 + exec: usr/bin/python{{APPIMAGE_BUILDER_PY_VERSION}} # Set the application main script path as argument. Use '$@' to forward CLI parameters exec_args: "$APPDIR/usr/bin/appimage-builder $@" @@ -34,7 +34,7 @@ AppDir: - fakeroot - libgdk-pixbuf2.0-dev - patchelf - - python3 + - python{{APPIMAGE_BUILDER_PY_VERSION}}-minimal - squashfs-tools - strace - zsync @@ -58,9 +58,9 @@ AppDir: PYTHONHOME: '${APPDIR}/usr' # Path to the site-packages dir or other modules dirs # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH - PYTHONPATH: '${APPDIR}/usr/lib/python3.8/site-packages' + PYTHONPATH: '${APPDIR}/usr/lib/python{{APPIMAGE_BUILDER_PY_VERSION}}/site-packages' # SSL Certificates are placed in a different location for every system therefore we ship our own copy - SSL_CERT_FILE: '${APPDIR}/usr/lib/python3.8/site-packages/certifi/cacert.pem' + SSL_CERT_FILE: '${APPDIR}/usr/lib/python{{APPIMAGE_BUILDER_PY_VERSION}}/site-packages/certifi/cacert.pem' test: fedora: From d6233a30dcc6847f49d17422bc2cd0e6b6fc765a Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 12:21:35 -0400 Subject: [PATCH 09/20] Add `APPIMAGE_BUILDER_REMOTE_REPO_OWNER` env variable This doesn't change the default behavior, but makes the whole workflow much more friendly for people forking this and other AppImageCrafters repos. --- appimagebuilder/__main__.py | 1 + appimagebuilder/modules/setup/apprun_binaries_resolver.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/appimagebuilder/__main__.py b/appimagebuilder/__main__.py index c7f07966..42b763d6 100755 --- a/appimagebuilder/__main__.py +++ b/appimagebuilder/__main__.py @@ -40,6 +40,7 @@ def __main__(): recipe_loader = recipe.Loader() environ["APPIMAGE_BUILDER_PY_VERSION"] = rf"{version_info.major}.{version_info.minor}" + environ["APPIMAGE_BUILDER_REMOTE_REPO_OWNER"] = environ.get("APPIMAGE_BUILDER_REMOTE_REPO_OWNER","AppImageCrafters").lower() raw_recipe_data = recipe_loader.load(args.recipe) recipe_roamer = recipe.Roamer(raw_recipe_data) diff --git a/appimagebuilder/modules/setup/apprun_binaries_resolver.py b/appimagebuilder/modules/setup/apprun_binaries_resolver.py index 6a33bedd..731d9937 100644 --- a/appimagebuilder/modules/setup/apprun_binaries_resolver.py +++ b/appimagebuilder/modules/setup/apprun_binaries_resolver.py @@ -26,6 +26,7 @@ import tarfile from pathlib import Path from urllib import request +from os import environ from appimagebuilder.modules.setup import apprun_utils @@ -90,8 +91,8 @@ def resolve_check_glibstdcpp_binary(self, arch): def _download_release_asset(self, asset, path): path.parent.mkdir(parents=True, exist_ok=True) - - url = "https://github.com/AppImageCrafters/AppRun/releases/download/%s/%s" % ( + url = "https://github.com/%s/AppRun/releases/download/%s/%s" % ( + environ.get("APPIMAGE_BUILDER_REMOTE_REPO_OWNER", "AppImageCrafters"), self.apprun_version, asset, ) From 4e00c6ccc7f048cee11092aa1c58a27327697b8e Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sun, 3 Aug 2025 11:06:54 -0400 Subject: [PATCH 10/20] Update test environments Signed-off-by: Gregorio Litenstein --- .../recipe_sections/test_section_generator.py | 13 +++++++------ tests/modules/deploy/apt/test_deploy.py | 4 ++-- tests/modules/deploy/apt/test_venv.py | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/appimagebuilder/modules/generate/recipe_sections/test_section_generator.py b/appimagebuilder/modules/generate/recipe_sections/test_section_generator.py index 139295bf..58f857de 100644 --- a/appimagebuilder/modules/generate/recipe_sections/test_section_generator.py +++ b/appimagebuilder/modules/generate/recipe_sections/test_section_generator.py @@ -9,16 +9,17 @@ # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. - +from os import environ class TestSectionGenerator: def __init__(self): + remote_repo = environ["APPIMAGE_BUILDER_REMOTE_REPO_OWNER"] self.docker_images = [ - "appimagecrafters/tests-env:fedora-30", - "appimagecrafters/tests-env:debian-stable", - "appimagecrafters/tests-env:archlinux-latest", - "appimagecrafters/tests-env:centos-7", - "appimagecrafters/tests-env:ubuntu-xenial", + f"{remote_repo}/tests-env:fedora-42", + f"{remote_repo}/tests-env:debian-bookworm", + f"{remote_repo}/tests-env:archlinux-latest", + f"{remote_repo}/tests-env:centos-10", + f"{remote_repo}/tests-env:ubuntu-noble", ] def generate(self): diff --git a/tests/modules/deploy/apt/test_deploy.py b/tests/modules/deploy/apt/test_deploy.py index 8efbe00a..8dbac238 100644 --- a/tests/modules/deploy/apt/test_deploy.py +++ b/tests/modules/deploy/apt/test_deploy.py @@ -29,8 +29,8 @@ def setUpClass(cls): cls.appdir_path = Path("/tmp/AppDir") cls.apt_venv = Venv( cls.venv_path, - ["deb [arch=amd64] http://deb.debian.org/debian/ bullseye main"], - ["https://ftp-master.debian.org/keys/archive-key-10.asc"], + ["deb [arch=amd64] http://deb.debian.org/debian/ bookworm main"], + ["https://ftp-master.debian.org/keys/archive-key-12.asc"], ["amd64"], ) diff --git a/tests/modules/deploy/apt/test_venv.py b/tests/modules/deploy/apt/test_venv.py index e1784baa..4dbc47c6 100644 --- a/tests/modules/deploy/apt/test_venv.py +++ b/tests/modules/deploy/apt/test_venv.py @@ -25,8 +25,8 @@ def setUpClass(cls): cls.venv_path = "/tmp/apt-venv" cls.apt_venv = Venv( cls.venv_path, - ["deb http://deb.debian.org/debian/ bullseye main"], - ["https://ftp-master.debian.org/keys/archive-key-10.asc"], + ["deb http://deb.debian.org/debian/ bookworm main"], + ["https://ftp-master.debian.org/keys/archive-key-12.asc"], ["amd64"], ) cls.apt_venv.update() From 612c011097e0e8a5e3a82ef50e9ebe58c8a7d6aa Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sun, 3 Aug 2025 11:12:15 -0400 Subject: [PATCH 11/20] Leftover references to old OS versions Signed-off-by: Gregorio Litenstein --- .github/workflows/continuous-builds.yml | 10 +++---- .github/workflows/stable-releases.yml | 6 ++--- recipes/appimage-builder/AppImageBuilder.yml | 16 ++++++------ recipes/bash-files/AppImageBuilder.yml | 10 +++---- recipes/bash-pacman/AppImageBuilder.yml | 10 +++---- recipes/bash/AppImageBuilder.yml | 14 +++++----- recipes/bash/bash-apprun-v3.yml | 14 +++++----- recipes/gimp/AppImageBuilder.yml | 14 +++++----- recipes/gnome-calculator/AppImageBuilder.yml | 14 +++++----- recipes/hello-world-gtk/AppImageBuilder.yml | 14 +++++----- recipes/hello-world-qt5/AppImageBuilder.yml | 26 +++++++++---------- .../hello-world-qt5/recipe-with-apprun-v3.yml | 26 +++++++++---------- recipes/hello-world-qt6/AppImageBuilder.yml | 26 +++++++++---------- recipes/kcalc-files/AppImageBuilder.yml | 18 ++++++------- recipes/kcalc-nbc/AppImageBuilder.yml | 12 ++++----- recipes/kcalc/AppImageBuilder.yml | 18 ++++++------- recipes/parole/AppImageBuilder.yml | 14 +++++----- recipes/pyqt5/AppImageBuilder.yml | 14 +++++----- recipes/python/AppImageBuilder.yml | 14 +++++----- recipes/qmlscene/AppImageBuilder.yml | 18 ++++++------- recipes/tkinter/AppImageBuilder.yml | 16 ++++++------ recipes/vlc/AppImageBuilder.yml | 16 ++++++------ recipes/wget/AppImageBuilder.yml | 12 ++++----- recipes/wine/AppImageBuilder.yml | 20 +++++++------- .../fake_package_repository_resolver.py | 2 +- .../generate/test_apt_section_generator.py | 2 +- tests/recipe/test_validator.py | 4 +-- 27 files changed, 190 insertions(+), 190 deletions(-) diff --git a/.github/workflows/continuous-builds.yml b/.github/workflows/continuous-builds.yml index 57fd4bc3..e1858bb2 100644 --- a/.github/workflows/continuous-builds.yml +++ b/.github/workflows/continuous-builds.yml @@ -12,7 +12,7 @@ on: jobs: pytest-ubuntu-noble: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: ubuntu:24.04 steps: - name: Install dependencies @@ -38,7 +38,7 @@ jobs: python3 -m pytest tests pytest-archlinux: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 container: archlinux steps: - name: Install dependencies @@ -62,7 +62,7 @@ jobs: pytest tests build: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: [ pytest-ubuntu-noble, pytest-archlinux ] steps: - name: Install dependencies @@ -98,7 +98,7 @@ jobs: name: appimage-builder path: 'recipes/appimage-builder/appimage-builder*.AppImage*' test-pack-bash: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: build steps: - name: Checkout @@ -128,7 +128,7 @@ jobs: name: bash path: 'recipes/bash/*.AppImage*' publish: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: test-pack-bash if: github.ref == 'refs/heads/main' steps: diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index c0b399a1..5b6f0ed1 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -10,7 +10,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Install dependencies run: | @@ -37,7 +37,7 @@ jobs: name: appimage-builder path: 'recipes/appimage-builder/appimage-builder*.AppImage*' test: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: build steps: - name: Checkout @@ -80,7 +80,7 @@ jobs: prerelease: false files: 'appimage-builder*.AppImage*' publish-python-wheel: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: test steps: - uses: actions/checkout@v4 diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index 7b1214f0..9f3047f8 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -20,9 +20,9 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - bash @@ -64,19 +64,19 @@ AppDir: test: fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun --help debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun --help arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun --help centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun --help ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun --help AppImage: diff --git a/recipes/bash-files/AppImageBuilder.yml b/recipes/bash-files/AppImageBuilder.yml index a305b222..08694406 100644 --- a/recipes/bash-files/AppImageBuilder.yml +++ b/recipes/bash-files/AppImageBuilder.yml @@ -29,20 +29,20 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm before_command: "pwd" command: "./AppRun --version" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun --version" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun --version" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun --version" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun --version" diff --git a/recipes/bash-pacman/AppImageBuilder.yml b/recipes/bash-pacman/AppImageBuilder.yml index 7cc126d0..28680ab3 100644 --- a/recipes/bash-pacman/AppImageBuilder.yml +++ b/recipes/bash-pacman/AppImageBuilder.yml @@ -34,19 +34,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun --version" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun --version" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun --version" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun --version" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun --version" diff --git a/recipes/bash/AppImageBuilder.yml b/recipes/bash/AppImageBuilder.yml index d05c017a..54a88d48 100644 --- a/recipes/bash/AppImageBuilder.yml +++ b/recipes/bash/AppImageBuilder.yml @@ -20,8 +20,8 @@ AppDir: arch: [ amd64, i386 ] allow_unauthenticated: true sources: - - sourceline: 'deb http://archive.ubuntu.com/ubuntu bionic main' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu noble main' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - bash @@ -49,20 +49,20 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm before_command: "pwd" command: "./AppRun ./run_tests.sh" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun ./run_tests.sh" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun ./run_tests.sh" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun ./run_tests.sh" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun ./run_tests.sh" diff --git a/recipes/bash/bash-apprun-v3.yml b/recipes/bash/bash-apprun-v3.yml index e4aa966c..10f0d13f 100644 --- a/recipes/bash/bash-apprun-v3.yml +++ b/recipes/bash/bash-apprun-v3.yml @@ -20,8 +20,8 @@ AppDir: arch: [ amd64, i386 ] allow_unauthenticated: true sources: - - sourceline: 'deb http://archive.ubuntu.com/ubuntu bionic main' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu noble main' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - bash @@ -49,20 +49,20 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm before_command: "pwd" command: "./AppRun ./run_tests.sh" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun ./run_tests.sh" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun ./run_tests.sh" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun ./run_tests.sh" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun ./run_tests.sh" diff --git a/recipes/gimp/AppImageBuilder.yml b/recipes/gimp/AppImageBuilder.yml index 0b63af43..d33e9cbc 100644 --- a/recipes/gimp/AppImageBuilder.yml +++ b/recipes/gimp/AppImageBuilder.yml @@ -13,9 +13,9 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - coreutils @@ -103,16 +103,16 @@ AppDir: GEGL_PATH: $APPDIR/usr/lib/x86_64-linux-gnu/gegl-0.4 test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" AppImage: diff --git a/recipes/gnome-calculator/AppImageBuilder.yml b/recipes/gnome-calculator/AppImageBuilder.yml index 93727155..9ff06e60 100644 --- a/recipes/gnome-calculator/AppImageBuilder.yml +++ b/recipes/gnome-calculator/AppImageBuilder.yml @@ -13,8 +13,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - gnome-calculator @@ -41,19 +41,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" diff --git a/recipes/hello-world-gtk/AppImageBuilder.yml b/recipes/hello-world-gtk/AppImageBuilder.yml index ab377384..30acccae 100644 --- a/recipes/hello-world-gtk/AppImageBuilder.yml +++ b/recipes/hello-world-gtk/AppImageBuilder.yml @@ -17,8 +17,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - libgtk-3-0 @@ -45,21 +45,21 @@ AppDir: test: ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" env: LD_DEBUG: libs debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" diff --git a/recipes/hello-world-qt5/AppImageBuilder.yml b/recipes/hello-world-qt5/AppImageBuilder.yml index 933ef11b..1fb12c86 100644 --- a/recipes/hello-world-qt5/AppImageBuilder.yml +++ b/recipes/hello-world-qt5/AppImageBuilder.yml @@ -19,10 +19,10 @@ AppDir: - amd64 allow_unauthenticated: true sources: - - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse - - sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse - - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse - - sourceline: deb http://archive.neon.kde.org/user focal main + - sourceline: deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse + - sourceline: deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse + - sourceline: deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse + - sourceline: deb http://archive.neon.kde.org/user noble main include: - libbz2-1.0 - libcom-err2 @@ -47,20 +47,20 @@ AppDir: - usr/share/doc/*/NEWS.* - usr/share/doc/*/TODO.* test: - fedora-30: - image: appimagecrafters/tests-env:fedora-30 + fedora-42: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable + debian-bookworm: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun - centos-7: - image: appimagecrafters/tests-env:centos-7 + centos-10: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-xenial + ubuntu-noble: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun AppImage: arch: x86_64 diff --git a/recipes/hello-world-qt5/recipe-with-apprun-v3.yml b/recipes/hello-world-qt5/recipe-with-apprun-v3.yml index 06315d7d..0b1d711d 100644 --- a/recipes/hello-world-qt5/recipe-with-apprun-v3.yml +++ b/recipes/hello-world-qt5/recipe-with-apprun-v3.yml @@ -19,10 +19,10 @@ AppDir: - amd64 allow_unauthenticated: true sources: - - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse - - sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse - - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse - - sourceline: deb http://archive.neon.kde.org/user focal main + - sourceline: deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse + - sourceline: deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse + - sourceline: deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse + - sourceline: deb http://archive.neon.kde.org/user noble main include: - libbz2-1.0 - libcom-err2 @@ -53,20 +53,20 @@ AppDir: version: v3.0.0-devel-1 debug: true test: - fedora-30: - image: appimagecrafters/tests-env:fedora-30 + fedora-42: + image: Lord-Kamina/tests-env:fedora-42 command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable + debian-bookworm: + image: Lord-Kamina/tests-env:debian-bookworm command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest + image: Lord-Kamina/tests-env:archlinux-latest command: ./AppRun - centos-7: - image: appimagecrafters/tests-env:centos-7 + centos-10: + image: Lord-Kamina/tests-env:centos-10 command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-xenial + ubuntu-noble: + image: Lord-Kamina/tests-env:ubuntu-noble command: ./AppRun AppImage: arch: x86_64 diff --git a/recipes/hello-world-qt6/AppImageBuilder.yml b/recipes/hello-world-qt6/AppImageBuilder.yml index 26440987..3f01e708 100644 --- a/recipes/hello-world-qt6/AppImageBuilder.yml +++ b/recipes/hello-world-qt6/AppImageBuilder.yml @@ -20,10 +20,10 @@ AppDir: - amd64 allow_unauthenticated: true sources: - - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse - - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse - - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse - - sourceline: deb http://security.ubuntu.com/ubuntu jammy-security main restricted universe multiverse + - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse + - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse + - sourceline: deb http://mx.archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse + - sourceline: deb http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse include: - libcap2:amd64 - libcom-err2:amd64 @@ -87,20 +87,20 @@ AppDir: # and the bundle may not work in such systems - strip --remove-section=.note.ABI-tag $TARGET_APPDIR/usr/lib/x86_64-linux-gnu/libQt6Core.so.6 test: - centos-7: - image: appimagecrafters/tests-env:centos-7 + centos-10: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun - fedora-30: - image: appimagecrafters/tests-env:fedora-30 + fedora-42: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-bionic + ubuntu-noble: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable + debian-bookworm: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun diff --git a/recipes/kcalc-files/AppImageBuilder.yml b/recipes/kcalc-files/AppImageBuilder.yml index 4cdf0fee..7cc83edc 100644 --- a/recipes/kcalc-files/AppImageBuilder.yml +++ b/recipes/kcalc-files/AppImageBuilder.yml @@ -161,20 +161,20 @@ AppDir: runtime: version: v2.0.0-alpha test: - fedora-30: - image: appimagecrafters/tests-env:fedora-30 + fedora-42: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable + debian-bookworm: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun - centos-7: - image: appimagecrafters/tests-env:centos-7 + centos-10: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-xenial + ubuntu-noble: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun AppImage: arch: x86_64 diff --git a/recipes/kcalc-nbc/AppImageBuilder.yml b/recipes/kcalc-nbc/AppImageBuilder.yml index c6d52268..9cef1f25 100644 --- a/recipes/kcalc-nbc/AppImageBuilder.yml +++ b/recipes/kcalc-nbc/AppImageBuilder.yml @@ -15,7 +15,7 @@ AppDir: arch: amd64 sources: - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - kcalc @@ -42,19 +42,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" diff --git a/recipes/kcalc/AppImageBuilder.yml b/recipes/kcalc/AppImageBuilder.yml index e2b87c2a..cb367781 100644 --- a/recipes/kcalc/AppImageBuilder.yml +++ b/recipes/kcalc/AppImageBuilder.yml @@ -16,10 +16,10 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse' include: - kcalc @@ -46,19 +46,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" diff --git a/recipes/parole/AppImageBuilder.yml b/recipes/parole/AppImageBuilder.yml index f43cace2..7d1144f0 100644 --- a/recipes/parole/AppImageBuilder.yml +++ b/recipes/parole/AppImageBuilder.yml @@ -13,8 +13,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - parole @@ -42,19 +42,19 @@ AppDir: - usr/share/metainfo/org.kde.kcalc.appdata.xml test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "dbus-launch ./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "dbus-launch ./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "dbus-launch ./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "dbus-launch ./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "dbus-launch ./AppRun" AppImage: diff --git a/recipes/pyqt5/AppImageBuilder.yml b/recipes/pyqt5/AppImageBuilder.yml index 513c838f..e382eaca 100644 --- a/recipes/pyqt5/AppImageBuilder.yml +++ b/recipes/pyqt5/AppImageBuilder.yml @@ -24,8 +24,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - python3 @@ -48,19 +48,19 @@ AppDir: test: fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: ./AppRun centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun AppImage: diff --git a/recipes/python/AppImageBuilder.yml b/recipes/python/AppImageBuilder.yml index 9b532257..ad1d0630 100644 --- a/recipes/python/AppImageBuilder.yml +++ b/recipes/python/AppImageBuilder.yml @@ -20,8 +20,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - python3 @@ -35,19 +35,19 @@ AppDir: test: fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" diff --git a/recipes/qmlscene/AppImageBuilder.yml b/recipes/qmlscene/AppImageBuilder.yml index 879cb16d..6c851e46 100644 --- a/recipes/qmlscene/AppImageBuilder.yml +++ b/recipes/qmlscene/AppImageBuilder.yml @@ -16,10 +16,10 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://mx.archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse' - - sourceline: 'deb [arch=amd64] http://mx.archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: 'deb http://archive.neon.kde.org/user bionic main' + - sourceline: 'deb [arch=amd64] http://mx.archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://mx.archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb http://archive.neon.kde.org/user noble main' key_url: 'http://archive.neon.kde.org/public.key' include: @@ -65,19 +65,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" AppImage: diff --git a/recipes/tkinter/AppImageBuilder.yml b/recipes/tkinter/AppImageBuilder.yml index 3db38a74..474c384e 100644 --- a/recipes/tkinter/AppImageBuilder.yml +++ b/recipes/tkinter/AppImageBuilder.yml @@ -24,8 +24,8 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - libpng16-16 @@ -48,22 +48,22 @@ AppDir: APPDIR_LIBRARY_PATH: '${APPDIR}/usr/lib:${APPDIR}/usr/lib/x86_64-linux-gnu:${APPDIR}/lib/x86_64-linux-gnu' TCL_LIBRARY: '${APPDIR}/usr/share/tcltk/tcl8.6' TK_LIBRARY: '${APPDIR}/usr/lib/tcltk/x86_64-linux-gnu/tk8.6' - TKPATH: '{APPDIR}/usr/lib/tcltk/x86_64-linux-gnu/tk8.6' + TKPATH: '${APPDIR}/usr/lib/tcltk/x86_64-linux-gnu/tk8.6' test: arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "LD_DEBUG=libs ./AppRun 2>&1 | grep 'init: '" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: ./AppRun debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: ./AppRun centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: ./AppRun ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: ./AppRun AppImage: diff --git a/recipes/vlc/AppImageBuilder.yml b/recipes/vlc/AppImageBuilder.yml index d723b69d..eff20786 100644 --- a/recipes/vlc/AppImageBuilder.yml +++ b/recipes/vlc/AppImageBuilder.yml @@ -14,28 +14,28 @@ AppDir: apt: arch: amd64 sources: - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' include: - vlc test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun" AppImage: diff --git a/recipes/wget/AppImageBuilder.yml b/recipes/wget/AppImageBuilder.yml index 1abda036..c2cefb85 100644 --- a/recipes/wget/AppImageBuilder.yml +++ b/recipes/wget/AppImageBuilder.yml @@ -14,7 +14,7 @@ AppDir: arch: !ENV ${TARGET_ARCH} sources: - sourceline: !ENV 'deb [arch=${TARGET_ARCH}] http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - wget @@ -37,19 +37,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun --version" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun --version" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun --version" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun --version" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun --version" AppImage: diff --git a/recipes/wine/AppImageBuilder.yml b/recipes/wine/AppImageBuilder.yml index bc02bd08..11c97d96 100644 --- a/recipes/wine/AppImageBuilder.yml +++ b/recipes/wine/AppImageBuilder.yml @@ -11,11 +11,11 @@ AppDir: apt: arch: [amd64, i386] sources: - - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' - - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse' - - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb https://dl.winehq.org/wine-builds/ubuntu/ noble main' key_url: 'https://dl.winehq.org/wine-builds/winehq.key' include: @@ -38,19 +38,19 @@ AppDir: test: debian: - image: appimagecrafters/tests-env:debian-stable + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm command: "./AppRun --version" centos: - image: appimagecrafters/tests-env:centos-7 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 command: "./AppRun --version" arch: - image: appimagecrafters/tests-env:archlinux-latest + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest command: "./AppRun --version" fedora: - image: appimagecrafters/tests-env:fedora-30 + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 command: "./AppRun --version" ubuntu: - image: appimagecrafters/tests-env:ubuntu-xenial + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun --version" AppImage: diff --git a/tests/modules/generate/fake_package_repository_resolver.py b/tests/modules/generate/fake_package_repository_resolver.py index 8d199b44..13a4e01e 100644 --- a/tests/modules/generate/fake_package_repository_resolver.py +++ b/tests/modules/generate/fake_package_repository_resolver.py @@ -17,5 +17,5 @@ class FakePackageRepositoryResolver(PackageRepositoryResolver): def resolve_source_lines(self, packages) -> []: return [ - "deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse" + "deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" ] diff --git a/tests/modules/generate/test_apt_section_generator.py b/tests/modules/generate/test_apt_section_generator.py index e0c0e889..1dc1c439 100644 --- a/tests/modules/generate/test_apt_section_generator.py +++ b/tests/modules/generate/test_apt_section_generator.py @@ -54,7 +54,7 @@ def test_generate(self): "allow_unauthenticated": True, "sources": [ { - "sourceline": "deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse" + "sourceline": "deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" } ], "include": ["libc6:amd64"], diff --git a/tests/recipe/test_validator.py b/tests/recipe/test_validator.py index fe9bcee6..c9926564 100644 --- a/tests/recipe/test_validator.py +++ b/tests/recipe/test_validator.py @@ -92,8 +92,8 @@ def test_validate_apt(self): "arch": "i386", "sources": [ { - "sourceline": "deb [arch=i386] http://mx.archive.ubuntu.com/ubuntu/ bionic main", - "key_url": "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32", + "sourceline": "deb [arch=i386] http://mx.archive.ubuntu.com/ubuntu/ noble main", + "key_url": "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c", } ], "include": ["qmlscene"], From cf81957bc66d19fa91ddfca3e110ba27d0e9d043 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 22:21:33 -0400 Subject: [PATCH 12/20] Get rid of setup.py Signed-off-by: Gregorio Litenstein --- .github/workflows/stable-releases.yml | 2 +- pyproject.toml | 44 ++++++++++++++++++ setup.py | 65 --------------------------- 3 files changed, 45 insertions(+), 66 deletions(-) create mode 100644 pyproject.toml delete mode 100644 setup.py diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index 5b6f0ed1..4221d70d 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -100,5 +100,5 @@ jobs: TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | . .venv/bin/activate - python setup.py sdist bdist_wheel + python3 -m build twine upload dist/* diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..079f98d7 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,44 @@ +[build-system] +requires = ["setuptools>=64", "setuptools-scm>=8"] +build-backend = "setuptools.build_meta" + +[project] +name = "appimage-builder" +dynamic = ["version"] +description = "Recipe based AppImage creation meta-tool" +readme = "README.md" +license = "MIT" +requires-python = ">=3.6" +authors = [ + { name = "Alexis Lopez Zubieta", email = "contact@azubieta.net" }, +] +dependencies = [ + "docker", + "emrichen", + "libconf", + "lief", + "packaging", + "pydpkg", + "python-gnupg", + "pyyaml>=5", + "questionary", + "requests", + "roam", + "ruamel.yaml", + "schema", + "urllib3", +] + +[project.scripts] +appimage-builder = "appimagebuilder.__main__:__main__" + +[project.urls] +"Bug Tracker" = "https://github.com/AppImageCrafters/appimage-builder/issues" +Documentation = "https://appimage-builder.readthedocs.io" +Homepage = "https://github.com/AppImageCrafters/appimage-builder" +"Source Code" = "https://github.com/AppImageCrafters/appimage-builder" + +[tool.setuptools_scm] + +[tool.setuptools] +packages = ["appimagebuilder", "tests"] \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index 0fa180d2..00000000 --- a/setup.py +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# Copyright 2020 Alexis Lopez Zubieta -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. - -import setuptools - -with open("README.md", "r", encoding="utf-8") as fh: - long_description = fh.read() - -setuptools.setup( - name="appimage_builder", - use_scm_version=True, - setup_requires=["setuptools_scm"], - author="Alexis Lopez Zubieta", - author_email="contact@azubieta.net", - description="Recipe based AppImage creation meta-tool", - long_description=long_description, - long_description_content_type="text/markdown", - entry_points={ - "console_scripts": [ - "appimage-builder = appimagebuilder.__main__:__main__", - ] - }, - url="https://github.com/AppImageCrafters/appimage-builder", - project_urls={ - "Bug Tracker": "https://github.com/AppImageCrafters/appimage-builder/issues", - "Documentation": "https://appimage-builder.readthedocs.io", - "Source Code": "https://github.com/AppImageCrafters/appimage-builder", - }, - packages=setuptools.find_packages(), - classifiers=[ - "Programming Language :: Python :: 3", - "License :: OSI Approved :: MIT License", - ], - license="MIT", - install_requires=[ - "pyyaml>=5", - "docker", - "requests", - "schema", - "packaging", - "questionary", - "emrichen", - "ruamel.yaml", - "roam", - "urllib3", - "lief", - "python-gnupg", - "libconf", - "pydpkg", - ], - python_requires=">=3.6", - package_data={"": []}, - include_package_data=True, -) From f492dc0a52fb619c83e5e96393d363bdba058c3a Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 22:22:05 -0400 Subject: [PATCH 13/20] Use a venv to run tests in containers. --- .github/workflows/continuous-builds.yml | 68 ++++++++++++-------- .github/workflows/stable-releases.yml | 17 ++--- recipes/appimage-builder/AppImageBuilder.yml | 6 +- 3 files changed, 47 insertions(+), 44 deletions(-) diff --git a/.github/workflows/continuous-builds.yml b/.github/workflows/continuous-builds.yml index e1858bb2..02586c89 100644 --- a/.github/workflows/continuous-builds.yml +++ b/.github/workflows/continuous-builds.yml @@ -11,84 +11,96 @@ on: - '!**' jobs: - pytest-ubuntu-noble: + pytest-ubuntu-container: + name: Run tests on Ubuntu 24.04 (Docker) runs-on: ubuntu-24.04 container: ubuntu:24.04 steps: - name: Install dependencies run: | apt-get -y update - apt-get install -y python3 python3-pip python3-venv fakeroot binutils patchelf git + apt-get install -y fakeroot python3-pip python3-venv lsb-release binutils patchelf git - name: Checkout uses: actions/checkout@v4 with: - fetch-depth: 0 - - name: Set up the virtualenv + fetch-depth: 0' + - name: Set up a virtualenv run: | python3 -m venv .venv - . .venv/bin/activate - pip install pytest - - name: Install appimage-builder + - name: Install appimage-builder and run tests run: | . .venv/bin/activate + pip install pytest pip install -e .[dev] - - name: Run pytest + pytest tests + + pytest-ubuntu-runner: + name: Run tests on Ubuntu 24.04 with python 3.13. + runs-on: ubuntu-24.04 + steps: + - name: Install dependencies + run: | + sudo apt-get -y update + sudo apt-get install -y fakeroot lsb-release binutils patchelf git + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Clear Python cache run: | - . .venv/bin/activate + sudo rm -rf /__t/Python + - name: Install python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + cache: 'pip' + - name: Install appimage-builder and run tests + run: | + pip install pytest + pip install -e .[dev] python3 -m pytest tests pytest-archlinux: + name: Run tests on ArchLinux (Docker) runs-on: ubuntu-24.04 container: archlinux steps: - name: Install dependencies - run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot strace patchelf git + run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot lsb-release strace patchelf git - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up the virtualenv + - name: Set up a virtualenv run: | python3 -m venv .venv - . .venv/bin/activate - pip install pytest - - name: Install appimage-builder + - name: Install appimage-builder and run tests run: | . .venv/bin/activate + pip install pytest pip install -e .[dev] - - name: Run pytest - run: | - . .venv/bin/activate pytest tests build: runs-on: ubuntu-24.04 - needs: [ pytest-ubuntu-noble, pytest-archlinux ] + needs: [ pytest-ubuntu-container, pytest-ubuntu-runner, pytest-archlinux ] steps: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y python3-pip python3-venv patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git + sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up the virtualenv - run: | - python3 -m venv .venv - . .venv/bin/activate - pip install pytest - #- name: Activate virtual environment - #run: echo PATH=${GITHUB_WORKSPACE}/venv/bin:$PATH >> $GITHUB_ENV - name: Install appimage-builder run: | - . .venv/bin/activate + sudo pip install setuptools twine pip install --ignore-installed . - name: Build AppImage run: | - . .venv/bin/activate cd recipes/appimage-builder export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") appimage-builder --skip-test diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index 4221d70d..43f30f2d 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Install dependencies run: | - sudo apt-get install -y python3 python3-pip python3-venv patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git + sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - name: Checkout @@ -23,9 +23,7 @@ jobs: fetch-depth: 0 - name: Install appimage-builder run: | - python3 -m venv .venv - . .venv/bin/activate - python3 -m pip install . + pip install . - name: Build AppImage run: | cd recipes/appimage-builder @@ -84,21 +82,14 @@ jobs: needs: test steps: - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.x' - name: Install dependencies run: | - python3 -m venv .venv - . .venv/bin/activate - python3 -m pip install --upgrade pip - pip install setuptools wheel twine + sudo pip install --upgrade pip + sudo pip install setuptools twine - name: Build and publish env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - . .venv/bin/activate python3 -m build twine upload dist/* diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index 9f3047f8..f2fd6df7 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -15,7 +15,7 @@ AppDir: # Set the python executable as entry point exec: usr/bin/python{{APPIMAGE_BUILDER_PY_VERSION}} # Set the application main script path as argument. Use '$@' to forward CLI parameters - exec_args: "$APPDIR/usr/bin/appimage-builder $@" + exec_args: "$APPDIR/usr/local/bin/appimage-builder $@" apt: arch: amd64 @@ -47,8 +47,8 @@ AppDir: ln -s bash $TARGET_APPDIR/bin/sh # install appimage-builder - python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" ../../ - python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" certifi + python3 -m pip install --ignore-installed --prefix=/usr/local --root="$TARGET_APPDIR" ../../ + python3 -m pip install --ignore-installed --prefix=/usr/local --root="$TARGET_APPDIR" certifi runtime: version: "continuous" From 559530cd0d105ceed533a2e865d6a8b8df8ebe74 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 12:19:36 -0400 Subject: [PATCH 14/20] AppRun2: Add symlink to fix compat runtime in Ubuntu Fix ubuntu linker symlink --- .../modules/setup/apprun_2/apprun2.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/appimagebuilder/modules/setup/apprun_2/apprun2.py b/appimagebuilder/modules/setup/apprun_2/apprun2.py index be7e6ab0..5730978c 100644 --- a/appimagebuilder/modules/setup/apprun_2/apprun2.py +++ b/appimagebuilder/modules/setup/apprun_2/apprun2.py @@ -94,6 +94,30 @@ def __init__(self, context: Context, finder: Finder): def setup(self): self.move_glibc_to_compat_runtime() + ubuntu_compat_linker_folder = self.compat_runtime_path / "lib64" + + if ubuntu_compat_linker_folder.exists(): + logging.info( + "Linker expected under %s for Ubuntu; path should be a symlink..." + % ubuntu_compat_linker_folder.__str__() + ) + if ubuntu_compat_linker_folder.is_file(): + logging.info("Unlinking file at %s" % ubuntu_compat_linker_folder.__str__()) + ubuntu_compat_linker_folder.unlink() + elif not ubuntu_compat_linker_folder.is_symlink() and ubuntu_compat_linker_folder.is_dir(): + logging.info("Removing directory at %s" % ubuntu_compat_linker_folder.__str__()) + shutil.rmtree(ubuntu_compat_linker_folder) + linker_folder = self.finder.find_one( + "*/x86_64-linux-gnu/ld-linux*.so*", [Finder.is_file, Finder.is_elf_shared_lib] + ).parent + logging.info(f"Found linker at: {linker_folder.__str__()}") + logging.info( + "Creating symlink to %s at %s" + % (linker_folder.relative_to(self.appdir_path), ubuntu_compat_linker_folder.__str__()) + ) + symlink_dest = linker_folder.relative_to(ubuntu_compat_linker_folder.parent) + ubuntu_compat_linker_folder.symlink_to(symlink_dest) + runtime_env = self._configure_runtime_environment() scanner = ExecutablesScanner(self.appdir_path, self.finder) From 222c4cfa0346a70cee0574993cda9bc5fe1e3c5e Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 12:22:35 -0400 Subject: [PATCH 15/20] Fix bash recipes --- recipes/bash/AppImageBuilder.yml | 19 ++++++++++++------- recipes/bash/bash-apprun-v3.yml | 18 ++++++++++++------ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/recipes/bash/AppImageBuilder.yml b/recipes/bash/AppImageBuilder.yml index 54a88d48..ae9f6c6f 100644 --- a/recipes/bash/AppImageBuilder.yml +++ b/recipes/bash/AppImageBuilder.yml @@ -1,20 +1,17 @@ version: 1 script: - echo $PWD - - rm -rf $TARGET_APPDIR | true - mkdir -p $TARGET_APPDIR/bin - cp run_tests.sh $TARGET_APPDIR - cp -r tests $TARGET_APPDIR - - ln -s ../usr/bin/env $TARGET_APPDIR/tests/test_internal_binary_env - - ln -s /usr/bin/env $TARGET_APPDIR/tests/test_external_binary_env - - mkdir -p $TARGET_APPDIR/bin - - ln -s bash $TARGET_APPDIR/bin/nubash AppDir: app_info: id: org.gnu.bash - version: 4.4.20 + name: bash + version: 5.2.21 exec: bin/bash + exec_args: "$@" apt: arch: [ amd64, i386 ] @@ -31,6 +28,14 @@ AppDir: exclude: - libpcre3 + after_bundle: | + cd $TARGET_APPDIR + ln -sr usr/bin/env tests/test_internal_binary_env + ln -sr /usr/bin/env tests/test_external_binary_env + mkdir -p bin + ln -sr usr/bin/bash bin/bash + ln -sr bin/bash bin/nubash + files: exclude: - etc/** @@ -65,6 +70,6 @@ AppDir: image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble command: "./AppRun ./run_tests.sh" - AppImage: + comp: zstd arch: x86_64 diff --git a/recipes/bash/bash-apprun-v3.yml b/recipes/bash/bash-apprun-v3.yml index 10f0d13f..ca32d56f 100644 --- a/recipes/bash/bash-apprun-v3.yml +++ b/recipes/bash/bash-apprun-v3.yml @@ -1,19 +1,15 @@ version: 1 script: - echo $PWD - - rm -rf $TARGET_APPDIR | true - mkdir -p $TARGET_APPDIR/bin - cp run_tests.sh $TARGET_APPDIR - cp -r tests $TARGET_APPDIR - - ln -s ../usr/bin/env $TARGET_APPDIR/tests/test_internal_binary_env - - ln -s /usr/bin/env $TARGET_APPDIR/tests/test_external_binary_env - - mkdir -p $TARGET_APPDIR/bin - - ln -s bash $TARGET_APPDIR/bin/nubash AppDir: app_info: id: org.gnu.bash - version: 4.4.20 + name: bash + version: 5.2.21 exec: bin/bash apt: @@ -28,8 +24,17 @@ AppDir: - coreutils - libc6 - libc6:i386 + exclude: - libpcre3 + after_bundle: | + cd $TARGET_APPDIR + ln -sr usr/bin/env tests/test_internal_binary_env + ln -sr /usr/bin/env tests/test_external_binary_env + mkdir -p bin + ln -sr usr/bin/bash bin/bash + ln -sr bin/bash bin/nubash + files: exclude: - etc/** @@ -67,4 +72,5 @@ AppDir: AppImage: + comp: zstd arch: x86_64 From 2f1151c5375471881b7d36bcc0f2bb6f263403fa Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 13:17:50 -0400 Subject: [PATCH 16/20] Don't create broken symlinks in AppImageBuilder recipe debug? Signed-off-by: Gregorio Litenstein don't need debug anymore --- recipes/appimage-builder/AppImageBuilder.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index f2fd6df7..ce2cc78b 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -41,14 +41,17 @@ AppDir: exclude: [] after_bundle: | - # configure tools + # configure tools mkdir -p $TARGET_APPDIR/bin - ln -s fakeroot-sysv $TARGET_APPDIR/usr/bin/fakeroot - ln -s bash $TARGET_APPDIR/bin/sh + pushd $TARGET_APPDIR/usr/bin/ + ln -sr ./fakeroot-sysv fakeroot + ln -sr ./bash sh + ln -sr ./sh $TARGET_APPDIR/bin/sh # install appimage-builder - python3 -m pip install --ignore-installed --prefix=/usr/local --root="$TARGET_APPDIR" ../../ - python3 -m pip install --ignore-installed --prefix=/usr/local --root="$TARGET_APPDIR" certifi + popd + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" ../../ + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" certifi runtime: version: "continuous" From 7599aec2c4a009cfa81c8f99ad1e04cc52047f2f Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 13:19:36 -0400 Subject: [PATCH 17/20] AppImageBuilder recipe:Add comp --- recipes/appimage-builder/AppImageBuilder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes/appimage-builder/AppImageBuilder.yml b/recipes/appimage-builder/AppImageBuilder.yml index ce2cc78b..77b23fc4 100644 --- a/recipes/appimage-builder/AppImageBuilder.yml +++ b/recipes/appimage-builder/AppImageBuilder.yml @@ -87,4 +87,4 @@ AppImage: update-information: 'gh-releases-zsync|AppImageCrafters|appimage-builder|latest|-*x86_64.AppImage.zsync' sign-key: None arch: x86_64 - + comp: zstd From 39ea865760b83a55ab27df8fb6c908823ba3c7da Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Sat, 2 Aug 2025 15:02:34 -0400 Subject: [PATCH 18/20] DRY, saner, and more importantly: WORKING CI Signed-off-by: Gregorio Litenstein --- .../{continuous-builds.yml => build-test.yml} | 131 ++++++++---------- .github/workflows/ci.yml | 14 ++ .github/workflows/pre-release.yml | 36 +++++ .github/workflows/stable-releases.yml | 98 +++---------- 4 files changed, 125 insertions(+), 154 deletions(-) rename .github/workflows/{continuous-builds.yml => build-test.yml} (63%) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/pre-release.yml diff --git a/.github/workflows/continuous-builds.yml b/.github/workflows/build-test.yml similarity index 63% rename from .github/workflows/continuous-builds.yml rename to .github/workflows/build-test.yml index 02586c89..d2702fef 100644 --- a/.github/workflows/continuous-builds.yml +++ b/.github/workflows/build-test.yml @@ -1,14 +1,9 @@ -# This workflows will upload a Python Package using Twine when a release is created -# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries - -name: Continuous Builds +name: Run tests on: - push: - branches: - - '**' - tags: - - '!**' + workflow_call: +env: + APPIMAGE_BUILDER_REMOTE_REPO_OWNER: ${{ github.repository_owner }} jobs: pytest-ubuntu-container: @@ -18,12 +13,12 @@ jobs: steps: - name: Install dependencies run: | - apt-get -y update + apt-get -y update apt-get install -y fakeroot python3-pip python3-venv lsb-release binutils patchelf git - name: Checkout uses: actions/checkout@v4 with: - fetch-depth: 0' + fetch-depth: 0 - name: Set up a virtualenv run: | python3 -m venv .venv @@ -34,123 +29,107 @@ jobs: pip install -e .[dev] pytest tests - pytest-ubuntu-runner: - name: Run tests on Ubuntu 24.04 with python 3.13. + pytest-archlinux: + name: Run tests on ArchLinux (Docker) runs-on: ubuntu-24.04 + container: archlinux steps: - name: Install dependencies - run: | - sudo apt-get -y update - sudo apt-get install -y fakeroot lsb-release binutils patchelf git + run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot lsb-release strace patchelf git - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Clear Python cache + - name: Set up a virtualenv run: | - sudo rm -rf /__t/Python - - name: Install python - uses: actions/setup-python@v5 - with: - python-version: '3.13' - cache: 'pip' + python3 -m venv .venv - name: Install appimage-builder and run tests run: | + . .venv/bin/activate pip install pytest pip install -e .[dev] - python3 -m pytest tests + pytest tests - pytest-archlinux: - name: Run tests on ArchLinux (Docker) + pytest-ubuntu-runner: + name: Run tests on Ubuntu 24.04 with python 3.13. runs-on: ubuntu-24.04 - container: archlinux steps: - name: Install dependencies - run: pacman -Syu --noconfirm python-pip binutils patchelf fakeroot lsb-release strace patchelf git + run: | + sudo apt-get -y update + sudo apt-get install -y fakeroot lsb-release binutils patchelf git - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Set up a virtualenv + - name: Clear Python cache run: | - python3 -m venv .venv + sudo rm -rf /__t/Python + - name: Install python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + cache: 'pip' - name: Install appimage-builder and run tests run: | - . .venv/bin/activate pip install pytest pip install -e .[dev] - pytest tests + python3 -m pytest tests - build: + build-pack-bash: runs-on: ubuntu-24.04 needs: [ pytest-ubuntu-container, pytest-ubuntu-runner, pytest-archlinux ] steps: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release + sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release python3-build python3-setuptools adwaita-icon-theme sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool sudo chmod +x /usr/local/bin/appimagetool - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Build Python Wheel + run: | + cd ${{ github.workspace }} + python3 -m build - name: Install appimage-builder run: | - sudo pip install setuptools twine - pip install --ignore-installed . + pip install --ignore-installed --user --break-system-packages . - name: Build AppImage run: | - cd recipes/appimage-builder - export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") + cd ${{ github.workspace }}/recipes/appimage-builder + export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") + echo "APPIMAGE_BUILDER_VERSION=${APPIMAGE_BUILDER_VERSION}" >> $GITHUB_ENV appimage-builder --skip-test - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: appimage-builder - path: 'recipes/appimage-builder/appimage-builder*.AppImage*' - test-pack-bash: - runs-on: ubuntu-24.04 - needs: build - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Download AppImage from build job - uses: actions/download-artifact@v4 - with: - name: appimage-builder - - name: Install dependencies - run: | - sudo apt install -y adwaita-icon-theme - name: Pack bash run: | # build bash BUILDER_PATH=$(find $PWD -name appimage-builder-*.AppImage) chmod +x "$BUILDER_PATH" - cd recipes/bash/ + cd ${{ github.workspace }}/recipes/bash/ "$BUILDER_PATH" --skip-test - name: Test bash run: | - recipes/bash/*.AppImage --appimage-extract-and-run -c "echo Hello World" - - name: Upload Artifacts + cd ${{ github.workspace }}/recipes/bash/ + ./bash*.AppImage --appimage-extract-and-run -c "echo Hello World" + - name: Upload AppImageBuilder AppImage uses: actions/upload-artifact@v4 with: - name: bash - path: 'recipes/bash/*.AppImage*' - publish: - runs-on: ubuntu-24.04 - needs: test-pack-bash - if: github.ref == 'refs/heads/main' - steps: - - name: Download AppImage from build job - uses: actions/download-artifact@v4 + name: appimage-builder-${{ env.APPIMAGE_BUILDER_VERSION }}.AppImage + path: '${{ github.workspace }}/recipes/appimage-builder/*.AppImage*' + retention-days: 7 + - name: Upload AppImageBuilder Python dist + uses: actions/upload-artifact@v4 with: - name: appimage-builder - - uses: "marvinpinto/action-automatic-releases@latest" + name: appimage-builder-${{ env.APPIMAGE_BUILDER_VERSION }}-pydist + path: '${{ github.workspace }}/dist/*' + retention-days: 7 + - name: Upload Bash AppImage + uses: actions/upload-artifact@v4 with: - repo_token: "${{ secrets.GITHUB_TOKEN }}" - prerelease: true - automatic_release_tag: Continuous - files: 'appimage-builder*.AppImage*' + name: bash.AppImage + path: '${{ github.workspace }}/recipes/bash/*.AppImage*' + retention-days: 7 + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..981a46f4 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,14 @@ +name: "CI Build" + +on: + pull_request: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-and-test: + name: "Build and test" + uses: ./.github/workflows/build-test.yml \ No newline at end of file diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml new file mode 100644 index 00000000..c7384db3 --- /dev/null +++ b/.github/workflows/pre-release.yml @@ -0,0 +1,36 @@ +name: "Pre-release" + +on: + push: + branches: + - "main" + workflow_dispatch: + +jobs: + build: + name: "Run Build and Test Matrix" + uses: ./.github/workflows/build-test.yml + + publish: + name: "Publish Pre-release" + runs-on: ubuntu-latest + needs: build + steps: + - name: Download all build artifacts from build job + uses: actions/download-artifact@v4 + with: + pattern: "appimage-builder*" + path: "${{ github.workspace }}/release-assets" + merge-multiple: true + - name: Look at downloaded assets + run: | + ls -l "${{ github.workspace }}/" + ls -l "${{ github.workspace }}/release-assets/" + - name: Create 'continuous' Pre-release + uses: softprops/action-gh-release@v2 + with: + files: "${{ github.workspace }}/release-assets/*" + tag_name: "continuous" + name: "Continuous Build (Pre-release)" + body: "This is a continuous build which may be unstable." + prerelease: true diff --git a/.github/workflows/stable-releases.yml b/.github/workflows/stable-releases.yml index 43f30f2d..83ca3316 100644 --- a/.github/workflows/stable-releases.yml +++ b/.github/workflows/stable-releases.yml @@ -1,95 +1,37 @@ -# This workflows will upload a Python Package using Twine when a release is created -# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries - -name: Release builds +name: "Tagged Release" on: push: tags: - - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + - "v*" + workflow_dispatch: jobs: build: - runs-on: ubuntu-24.04 - steps: - - name: Install dependencies - run: | - sudo apt-get install -y patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace git lsb-release - sudo wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool - sudo chmod +x /usr/local/bin/appimagetool - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install appimage-builder - run: | - pip install . - - name: Build AppImage - run: | - cd recipes/appimage-builder - export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") - appimage-builder --skip-test - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: appimage-builder - path: 'recipes/appimage-builder/appimage-builder*.AppImage*' - test: - runs-on: ubuntu-24.04 + name: "Run Build and Test Matrix" + uses: ./.github/workflows/build-test.yml + + publish: + name: "Publish Tagged Release" + runs-on: ubuntu-latest needs: build steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Download AppImage from build job + - name: Download all build artifacts from build job uses: actions/download-artifact@v4 with: - name: appimage-builder - - name: Install dependencies - run: | - sudo apt install -y adwaita-icon-theme - - name: Pack bash - run: | - # build bash - BUILDER_PATH=$(find $PWD -name appimage-builder-*.AppImage) - chmod +x "$BUILDER_PATH" - cd recipes/bash/ - "$BUILDER_PATH" --skip-test - - name: Test bash - run: | - recipes/bash/*.AppImage --appimage-extract-and-run -c "echo Hello World" - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: bash - path: 'recipes/bash/*.AppImage*' - publish-appimage: - runs-on: ubuntu-24.04 - needs: test - steps: - - name: Download AppImage from build job - uses: actions/download-artifact@v4 - with: - name: appimage-builder - - uses: "marvinpinto/action-automatic-releases@latest" + pattern: "appimage-builder*-pydist" + path: release-assets + merge-multiple: true + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 with: - repo_token: "${{ secrets.GITHUB_TOKEN }}" + files: release-assets/* prerelease: false - files: 'appimage-builder*.AppImage*' - publish-python-wheel: - runs-on: ubuntu-24.04 - needs: test - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: | - sudo pip install --upgrade pip - sudo pip install setuptools twine - - name: Build and publish + - name: Publish wheel env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} run: | - python3 -m build - twine upload dist/* + sudo apt-get -y install python3-twine + twine upload release-assets/* From 149e671cb1646a6cb63d5b4b61bb15c123a0d637 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Mon, 4 Aug 2025 09:24:33 -0400 Subject: [PATCH 19/20] Add AppImage with debug runtime to artifacts. Signed-off-by: Gregorio Litenstein --- .github/workflows/build-test.yml | 14 ++- .../AppImageBuilder-debug.yml | 91 +++++++++++++++++++ 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 recipes/appimage-builder/AppImageBuilder-debug.yml diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index d2702fef..a2fd8725 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -114,11 +114,21 @@ jobs: run: | cd ${{ github.workspace }}/recipes/bash/ ./bash*.AppImage --appimage-extract-and-run -c "echo Hello World" + - name: Build AppImage (DEBUG runtime) + run: | + cd ${{ github.workspace }}/recipes/appimage-builder + appimage-builder --skip-test --recipe ./AppImageBuilder-debug.yml - name: Upload AppImageBuilder AppImage uses: actions/upload-artifact@v4 with: - name: appimage-builder-${{ env.APPIMAGE_BUILDER_VERSION }}.AppImage - path: '${{ github.workspace }}/recipes/appimage-builder/*.AppImage*' + name: appimage-builder.AppImage + path: '${{ github.workspace }}/recipes/appimage-builder/*x86_64.AppImage*' + retention-days: 7 + - name: Upload AppImageBuilder Debug AppImage + uses: actions/upload-artifact@v4 + with: + name: appimage-builder-DEBUG.AppImage + path: '${{ github.workspace }}/recipes/appimage-builder/*-DEBUG*.AppImage*' retention-days: 7 - name: Upload AppImageBuilder Python dist uses: actions/upload-artifact@v4 diff --git a/recipes/appimage-builder/AppImageBuilder-debug.yml b/recipes/appimage-builder/AppImageBuilder-debug.yml new file mode 100644 index 00000000..4dba5594 --- /dev/null +++ b/recipes/appimage-builder/AppImageBuilder-debug.yml @@ -0,0 +1,91 @@ +version: 1 +script: + # Remove any previous build + - rm -rf $TARGET_APPDIR || true + - mkdir -p $TARGET_APPDIR/usr/share/icons/hicolor/scalable/apps $TARGET_APPDIR/usr/bin $TARGET_APPDIR/opt "$BUILD_DIR" + - cp ../../resources/appimage-builder.svg $TARGET_APPDIR/usr/share/icons/hicolor/scalable/apps + - cp ../../resources/application-vnd.appimage.svg $TARGET_APPDIR/usr/share/icons/hicolor/scalable/apps + +AppDir: + app_info: + id: org.appimage-crafters.appimage-builder + name: appimage-builder + icon: appimage-builder + version: 'latest' + # Set the python executable as entry point + exec: usr/bin/python{{APPIMAGE_BUILDER_PY_VERSION}} + # Set the application main script path as argument. Use '$@' to forward CLI parameters + exec_args: "$APPDIR/usr/local/bin/appimage-builder $@" + + apt: + arch: amd64 + sources: + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + + include: + - bash + - coreutils + - binutils + - util-linux + - file + - desktop-file-utils + - fakeroot + - libgdk-pixbuf2.0-dev + - patchelf + - python{{APPIMAGE_BUILDER_PY_VERSION}}-minimal + - squashfs-tools + - strace + - zsync + exclude: [] + + after_bundle: | + # configure tools + mkdir -p $TARGET_APPDIR/bin + pushd $TARGET_APPDIR/usr/bin/ + ln -sr ./fakeroot-sysv fakeroot + ln -sr ./bash sh + ln -sr ./sh $TARGET_APPDIR/bin/sh + + # install appimage-builder + popd + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" ../../ + python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" certifi + + runtime: + debug: true + version: "continuous" + env: + # Set python home + # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOME + PYTHONHOME: '${APPDIR}/usr' + # Path to the site-packages dir or other modules dirs + # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH + PYTHONPATH: '${APPDIR}/usr/lib/python{{APPIMAGE_BUILDER_PY_VERSION}}/site-packages' + # SSL Certificates are placed in a different location for every system therefore we ship our own copy + SSL_CERT_FILE: '${APPDIR}/usr/lib/python{{APPIMAGE_BUILDER_PY_VERSION}}/site-packages/certifi/cacert.pem' + + test: + fedora: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:fedora-42 + command: ./AppRun --help + debian: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:debian-bookworm + command: ./AppRun --help + arch: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:archlinux-latest + command: ./AppRun --help + centos: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:centos-10 + command: ./AppRun --help + ubuntu: + image: ${APPIMAGE_BUILDER_REMOTE_REPO_OWNER}/tests-env:ubuntu-noble + command: ./AppRun --help + +AppImage: + file_name: "appimage-builder-{{APPIMAGE_BUILDER_VERSION}}-x86_64-DEBUG.AppImage" + update-information: 'gh-releases-zsync|AppImageCrafters|appimage-builder|latest|-*x86_64.AppImage.zsync' + sign-key: None + arch: x86_64 + comp: zstd From 10a8175941461c09f13aa7aace3be3af4f333e27 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Mon, 4 Aug 2025 17:22:01 -0400 Subject: [PATCH 20/20] Remove version from filename So the prelease doesn't being hoarding files. Signed-off-by: Gregorio Litenstein --- .github/workflows/build-test.yml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index a2fd8725..a53297c1 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -100,7 +100,7 @@ jobs: - name: Build AppImage run: | cd ${{ github.workspace }}/recipes/appimage-builder - export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") + export APPIMAGE_BUILDER_VERSION=$(appimage-builder --version | head -1 | cut -f 2 -d" ") echo "APPIMAGE_BUILDER_VERSION=${APPIMAGE_BUILDER_VERSION}" >> $GITHUB_ENV appimage-builder --skip-test - name: Pack bash @@ -118,23 +118,29 @@ jobs: run: | cd ${{ github.workspace }}/recipes/appimage-builder appimage-builder --skip-test --recipe ./AppImageBuilder-debug.yml + - name: Compress Assets + run: | + cd ${{ github.workspace }}/recipes/appimage-builder + tar -cvf appimage-builder_x86_64-AppImage.tar ${{ github.workspace }}/recipes/appimage-builder/*x86_64.AppImage* + tar -cvf appimage-builder_x86_64-AppImage-DEBUG.tar ${{ github.workspace }}/recipes/appimage-builder/*-DEBUG.AppImage* + tar -cvf ${{ github.workspace }}/appimage-builder_python-dist.tar -C ${{ github.workspace }}/dist . - name: Upload AppImageBuilder AppImage uses: actions/upload-artifact@v4 with: name: appimage-builder.AppImage - path: '${{ github.workspace }}/recipes/appimage-builder/*x86_64.AppImage*' + path: '${{ github.workspace }}/recipes/appimage-builder/appimage-builder_x86_64-AppImage.tar' retention-days: 7 - name: Upload AppImageBuilder Debug AppImage uses: actions/upload-artifact@v4 with: name: appimage-builder-DEBUG.AppImage - path: '${{ github.workspace }}/recipes/appimage-builder/*-DEBUG*.AppImage*' + path: '${{ github.workspace }}/recipes/appimage-builder/appimage-builder_x86_64-AppImage-DEBUG.tar' retention-days: 7 - name: Upload AppImageBuilder Python dist uses: actions/upload-artifact@v4 with: - name: appimage-builder-${{ env.APPIMAGE_BUILDER_VERSION }}-pydist - path: '${{ github.workspace }}/dist/*' + name: appimage-builder-pydist + path: '${{ github.workspace }}/appimage-builder_python-dist.tar' retention-days: 7 - name: Upload Bash AppImage uses: actions/upload-artifact@v4 @@ -142,4 +148,3 @@ jobs: name: bash.AppImage path: '${{ github.workspace }}/recipes/bash/*.AppImage*' retention-days: 7 -