Skip to content
Merged
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
28 changes: 19 additions & 9 deletions .github/workflows/appimage.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Linux AppImage

# A portable Linux binary that runs on any reasonably modern x86_64 distro
# A portable Linux binary that runs on any reasonably modern x86_64 or aarch64
# distro
# without installing dependencies -- the Linux counterpart to the Windows
# portable zip. Needs no secrets of any kind.
#
Expand All @@ -21,7 +22,16 @@ permissions:

jobs:
appimage:
runs-on: ubuntu-22.04
name: AppImage (${{ matrix.arch }})
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- arch: x86_64
runner: ubuntu-22.04
- arch: aarch64
runner: ubuntu-22.04-arm

steps:
- name: Checkout
Expand Down Expand Up @@ -78,12 +88,12 @@ jobs:
install -Dm644 COPYING AppDir/usr/share/doc/fldigi/COPYING

cat > AppDir/usr/share/doc/fldigi/BUILD-INFO.txt <<EOF
fldigi ${VERSION} with TCI - Linux x86_64 AppImage
fldigi ${VERSION} with TCI - Linux ${{ matrix.arch }} AppImage

Commit: $(git rev-parse HEAD)
Source: ${{ github.server_url }}/${{ github.repository }}
Built by: GitHub Actions run ${{ github.run_id }}
Built on: ubuntu-22.04 (glibc floor), FLTK $(fltk-config --version)
Built on: ${{ matrix.runner }} (glibc floor), FLTK $(fltk-config --version)

Unofficial build of a fork. Report TCI problems to
${{ github.server_url }}/${{ github.repository }}/issues - NOT to the
Expand All @@ -99,13 +109,13 @@ jobs:
# .AppImage, so leaving it next to the build output makes any
# *.AppImage glob match the build tool as well as the product -- which
# would quietly attach linuxdeploy to a GitHub release.
LD="${RUNNER_TEMP}/linuxdeploy-x86_64.AppImage"
wget -q -O "$LD" https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
LD="${RUNNER_TEMP}/linuxdeploy-${{ matrix.arch }}.AppImage"
wget -q -O "$LD" https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-${{ matrix.arch }}.AppImage
chmod +x "$LD"
# The runner has no FUSE, so the AppImage tools cannot mount
# themselves; --appimage-extract-and-run is the documented escape.
export APPIMAGE_EXTRACT_AND_RUN=1
export OUTPUT="fldigi-${{ steps.stage.outputs.version }}-tci-x86_64.AppImage"
export OUTPUT="fldigi-${{ steps.stage.outputs.version }}-tci-${{ matrix.arch }}.AppImage"
"$LD" \
--appdir AppDir \
--desktop-file AppDir/usr/share/applications/fldigi.desktop \
Expand All @@ -117,7 +127,7 @@ jobs:
- name: Verify the AppImage actually runs
run: |
set -euo pipefail
APP="fldigi-${{ steps.stage.outputs.version }}-tci-x86_64.AppImage"
APP="fldigi-${{ steps.stage.outputs.version }}-tci-${{ matrix.arch }}.AppImage"
chmod +x "$APP"
# Running it proves the bundle resolves its own libraries -- a green
# build with a missing lib is the classic silent AppImage failure.
Expand All @@ -128,7 +138,7 @@ jobs:
- name: Upload artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: fldigi-${{ steps.stage.outputs.version }}-linux-x86_64-AppImage
name: fldigi-${{ steps.stage.outputs.version }}-linux-${{ matrix.arch }}-AppImage
path: fldigi-*.AppImage
if-no-files-found: error
retention-days: 90
Expand Down
Loading