Skip to content

Commit 21ad6d8

Browse files
Initial commit
0 parents  commit 21ad6d8

7 files changed

Lines changed: 240 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
name: "Bug report - AppImage (please attach debug log)"
3+
about: "Report crashes or other bugs. Run the AppImage with APPIMAGE_DEBUG=1 and attach the generated log file."
4+
---
5+
6+
Please fill out the sections below.
7+
8+
## Collect the AppImage debug log (required)
9+
1. Run the AppImage with debug enabled:
10+
```sh
11+
APPIMAGE_DEBUG=1 ./MyApp.AppImage
12+
```
13+
- The AppImage will create a debug log automatically and will print the path to that log file in the terminal output.
14+
- Attach that file to this issue.
15+
16+
## Make sure to ping the maintainer of the repository when making the bug report
17+
- Often times we miss emails because not all repositories are watched automatically after being made, so please ping the maintainer of the repository when making the issue. Simply add @name-of-maintainer.
18+
19+
## Checklist
20+
- [ ] I ran the AppImage with `APPIMAGE_DEBUG=1` environment variable set.
21+
- [ ] I attached the debug log produced by the AppImage.
22+
- [ ] I pinged the maintainer of the repository.
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Anylinux-AppImage (Nightly)
2+
concurrency:
3+
group: build-${{ github.ref }}
4+
cancel-in-progress: true
5+
on:
6+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
7+
# comment these two out to enable nightly builds, This sets the variable DEVEL_RELEASE=1 for #
8+
# get-dependencies.sh to make a nightly release, this will make a release with 'nightly' tag #
9+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
10+
# schedule:
11+
# - cron: "0 5 1/2 * *" # We default to rebuilding nightly every 2 days, change this to your liking
12+
workflow_dispatch: {}
13+
14+
jobs:
15+
build:
16+
name: "${{ matrix.name }} (${{ matrix.arch }})"
17+
runs-on: ${{ matrix.runs-on }}
18+
strategy:
19+
matrix:
20+
include:
21+
- runs-on: ubuntu-latest
22+
name: Build AppImage
23+
arch: x86_64
24+
# comment out these 3 lines if aarch64 is not wanted
25+
- runs-on: ubuntu-24.04-arm
26+
name: Build AppImage
27+
arch: aarch64
28+
container: ghcr.io/pkgforge-dev/archlinux:latest
29+
steps:
30+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
31+
- name: Preparing Container
32+
uses: pkgforge-dev/anylinux-setup-action@8872fabe63f9a00b35e25b2f46da62a05afc9a7d # v1
33+
- name: Install Dependencies
34+
run: DEVEL_RELEASE=1 /bin/sh ./get-dependencies.sh
35+
- name: Make AppImage
36+
run: DEVEL_RELEASE=1 /bin/sh ./make-appimage.sh
37+
- name: Upload artifact
38+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
39+
with:
40+
name: AppImage-${{ matrix.arch }}
41+
path: dist
42+
43+
release:
44+
if: ${{ github.ref_name == 'main' }}
45+
needs: [build]
46+
permissions: write-all
47+
runs-on: ubuntu-latest
48+
steps:
49+
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
50+
with:
51+
pattern: AppImage-*
52+
merge-multiple: true
53+
continue-on-error: true
54+
- name: Release Nightly AppImage
55+
uses: pkgforge-dev/make-nightly-appimage-release@17cbe90fc0796286e424619a54a82a3a880efe4c # v1.1
56+
with:
57+
github_token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/appimage.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Anylinux-AppImage
2+
concurrency:
3+
group: build-${{ github.ref }}
4+
cancel-in-progress: true
5+
on:
6+
schedule:
7+
- cron: "0 7 1/21 * *" # We default to rebuilding every 21 days, change this to your liking
8+
workflow_dispatch: {}
9+
10+
jobs:
11+
build:
12+
name: "${{ matrix.name }} (${{ matrix.arch }})"
13+
runs-on: ${{ matrix.runs-on }}
14+
strategy:
15+
matrix:
16+
include:
17+
- runs-on: ubuntu-latest
18+
name: Build AppImage
19+
arch: x86_64
20+
# comment out these 3 lines if aarch64 is not wanted
21+
- runs-on: ubuntu-24.04-arm
22+
name: Build AppImage
23+
arch: aarch64
24+
container: ghcr.io/pkgforge-dev/archlinux:latest
25+
steps:
26+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
27+
- name: Preparing Container
28+
uses: pkgforge-dev/anylinux-setup-action@8872fabe63f9a00b35e25b2f46da62a05afc9a7d # v1
29+
- name: Install Dependencies
30+
run: /bin/sh ./get-dependencies.sh
31+
- name: Make AppImage
32+
run: /bin/sh ./make-appimage.sh
33+
- name: Upload artifact
34+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
35+
with:
36+
name: AppImage-${{ matrix.arch }}
37+
path: dist
38+
39+
release:
40+
if: ${{ github.ref_name == 'main' }}
41+
needs: [build]
42+
permissions: write-all
43+
runs-on: ubuntu-latest
44+
steps:
45+
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
46+
with:
47+
pattern: AppImage-*
48+
merge-multiple: true
49+
- name: Release AppImage
50+
uses: pkgforge-dev/make-stable-appimage-release@4ed3d48ccb065352b6e6c0db6d39885b201c54a0 #v1.1

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Package Forge (Dev)
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<div align="center">
2+
3+
# TEMPLATE-AppImage 🐧
4+
5+
[![GitHub Downloads](https://img.shields.io/github/downloads/pkgforge-dev/TEMPLATE-AppImage/total?logo=github&label=GitHub%20Downloads)](https://github.com/pkgforge-dev/TEMPLATE-AppImage/releases/latest)
6+
[![CI Build Status](https://github.com/pkgforge-dev/TEMPLATE-AppImage/actions/workflows/appimage.yml/badge.svg)](https://github.com/pkgforge-dev/TEMPLATE-AppImage/releases/latest)
7+
[![Latest Stable Release](https://img.shields.io/github/v/release/pkgforge-dev/TEMPLATE-AppImage)](https://github.com/pkgforge-dev/TEMPLATE-AppImage/releases/latest)
8+
9+
<p align="center">
10+
<img src="https://github.com/pkgforge-dev.png" width="128" />
11+
</p>
12+
13+
14+
| Latest Stable Release | Upstream URL |
15+
| :---: | :---: |
16+
| [Click here](https://github.com/pkgforge-dev/TEMPLATE-AppImage/releases/latest) | [Click here](https://github.com/pkgforge-dev/Anylinux-AppImages) |
17+
18+
</div>
19+
20+
---
21+
22+
AppImage made using [sharun](https://github.com/VHSgunzo/sharun) and its wrapper [quick-sharun](https://github.com/pkgforge-dev/Anylinux-AppImages/blob/main/useful-tools/quick-sharun.sh), which makes it extremely easy to turn any binary into a portable package reliably without using containers or similar tricks.
23+
24+
**This AppImage bundles everything and it should work on any Linux distro, including old and musl-based ones.**
25+
26+
This AppImage doesn't require FUSE to run at all, thanks to the [uruntime](https://github.com/VHSgunzo/uruntime).
27+
28+
This AppImage is also supplied with a self-updater by default, so any updates to this application won't be missed, you will be prompted for permission to check for updates and if agreed you will then be notified when a new update is available.
29+
30+
Self-updater is disabled by default if AppImage managers like [am](https://github.com/ivan-hc/AM), [soar](https://github.com/pkgforge/soar) or [dbin](https://github.com/xplshn/dbin) exist, which manage AppImage updates.
31+
32+
<details>
33+
<summary><b><i>raison d'être</i></b></summary>
34+
<img src="https://github.com/user-attachments/assets/d40067a6-37d2-4784-927c-2c7f7cc6104b" alt="Inspiration Image">
35+
</a>
36+
</details>
37+
38+
---
39+
40+
More at: [AnyLinux-AppImages](https://pkgforge-dev.github.io/Anylinux-AppImages/)

get-dependencies.sh

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
5+
ARCH=$(uname -m)
6+
7+
echo "Installing package dependencies..."
8+
echo "---------------------------------------------------------------"
9+
# pacman -Syu --noconfirm PACKAGESHERE
10+
11+
echo "Installing debloated packages..."
12+
echo "---------------------------------------------------------------"
13+
get-debloated-pkgs --add-common --prefer-nano
14+
15+
# Comment this out if you need an AUR package
16+
#make-aur-package PACKAGENAME
17+
18+
# If the application needs to be manually built that has to be done down here
19+
20+
# if you also have to make nightly releases check for DEVEL_RELEASE = 1
21+
#
22+
# if [ "${DEVEL_RELEASE-}" = 1 ]; then
23+
# nightly build steps
24+
# else
25+
# regular build steps
26+
# fi

make-appimage.sh

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/sh
2+
3+
set -eu
4+
5+
ARCH=$(uname -m)
6+
VERSION=$(pacman -Q PACKAGENAME | awk '{print $2; exit}') # example command to get version of application here
7+
export ARCH VERSION
8+
export OUTPATH=./dist
9+
export ADD_HOOKS="self-updater.bg.hook"
10+
export UPINFO="gh-releases-zsync|${GITHUB_REPOSITORY%/*}|${GITHUB_REPOSITORY#*/}|latest|*$ARCH.AppImage.zsync"
11+
export ICON=PATH_OR_URL_TO_ICON
12+
export DESKTOP=PATH_OR_URL_TO_DESKTOP_ENTRY
13+
14+
# Deploy dependencies
15+
quick-sharun /PATH/TO/BINARY_AND_LIBRARIES_HERE
16+
17+
# Additional changes can be done in between here
18+
19+
# Turn AppDir into AppImage
20+
quick-sharun --make-appimage
21+
22+
# Test the app for 12 seconds, if the test fails due to the app
23+
# having issues running in the CI use --simple-test instead
24+
quick-sharun --test ./dist/*.AppImage

0 commit comments

Comments
 (0)