Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 150 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
name: Run tests

on:
workflow_call:
env:
APPIMAGE_BUILDER_REMOTE_REPO_OWNER: ${{ github.repository_owner }}

jobs:
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 fakeroot python3-pip python3-venv lsb-release binutils patchelf git
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up a virtualenv
run: |
python3 -m venv .venv
- name: Install appimage-builder and run tests
run: |
. .venv/bin/activate
pip install pytest
pip install -e .[dev]
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 lsb-release strace patchelf git
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up a virtualenv
run: |
python3 -m venv .venv
- name: Install appimage-builder and run tests
run: |
. .venv/bin/activate
pip install pytest
pip install -e .[dev]
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: |
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

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 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: |
pip install --ignore-installed --user --break-system-packages .
- name: Build AppImage
run: |
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: Pack bash
run: |
# build bash
BUILDER_PATH=$(find $PWD -name appimage-builder-*.AppImage)
chmod +x "$BUILDER_PATH"
cd ${{ github.workspace }}/recipes/bash/
"$BUILDER_PATH" --skip-test
- name: Test bash
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: 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/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/appimage-builder_x86_64-AppImage-DEBUG.tar'
retention-days: 7
- name: Upload AppImageBuilder Python dist
uses: actions/upload-artifact@v4
with:
name: appimage-builder-pydist
path: '${{ github.workspace }}/appimage-builder_python-dist.tar'
retention-days: 7
- name: Upload Bash AppImage
uses: actions/upload-artifact@v4
with:
name: bash.AppImage
path: '${{ github.workspace }}/recipes/bash/*.AppImage*'
retention-days: 7
14 changes: 14 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -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
112 changes: 0 additions & 112 deletions .github/workflows/continuous-builds.yml

This file was deleted.

36 changes: 36 additions & 0 deletions .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
@@ -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
Loading