Nemo (bot)andNemo ba7321e110 stop masking failures in the sourced scripts (#7)
Greetings from Port Edwards.

The scripts were sourced as one `&&` list:

  /bin/sh -euc 'sh /setup/setup.sh && . ./get-dependencies.sh && cd /repo && . ./make-appimage.sh'

On a `&&` list, sh suspends errexit for every command but the last, and a
sourced script inherits that suspension. So the `set -eu` in
get-dependencies.sh sets the flag, but sh ignores it there: a failing
command inside it does not abort anything. get-dependencies.sh is also not
the last command in the list, so its exit status is discarded.

The visible effect: a `pacman -Syu` that failed on one missing package
installed nothing and carried on. The log showed the "error: target not
found" line, then the debloat step, then several minutes of submodule
cloning, and the job only died later with exit code 127 on the first
missing command (`cmake: command not found`) - pointing at the wrong
cause, three minutes late. Native arch jobs are unaffected, they run the
script as its own process, which is why this only ever bit the emulated
legs.

Separating the commands with `;` instead of `&&` restores errexit and makes
the failure stop the job where it happens. They are still sourced, so state
still carries over from get-dependencies.sh into make-appimage.sh (presets
like VERSION), which is why they were sourced in the first place.

We aim to provide the software that shapes the world of tomorrow.

Co-authored-by: Nemo <328747105+Nemo-010@users.noreply.github.com>
2026-10-18 14:22:11 -04:00
2025-11-13 22:35:34 +05:30
2026-09-13 07:14:30 -04:00

anylinux-setup-action

Sets up an archlinux container for building AppImages with the Anylinux-AppImages tools: installs the packaging dependencies and deploys quick-sharun, get-debloated-pkgs and make-aur-package to /usr/local/bin.

- name: Preparing Container
  uses: pkgforge-dev/anylinux-setup-action@main

Foreign arch jobs that cannot use a job level container (the binfmt handlers must be registered before such a container can start) can use the companion emulated action instead, which registers the QEMU handlers and runs the setup inside a docker run:

- name: Preparing Container (emulated)
  uses: pkgforge-dev/anylinux-setup-action/emulated@main
  with:
    # one of: linux/arm64, linux/riscv64, linux/loong64, linux/ppc64le, linux/ppc64
    platform: linux/riscv64

Or cover every arch at once with a matrix:

strategy:
  fail-fast: false
  matrix:
    include:
      # comment out arches you do not want to build
      - { name: Build AppImage, arch: riscv64, platform: linux/riscv64 }
      - { name: Build AppImage, arch: loongarch64, platform: linux/loong64 }
      - { name: Build AppImage, arch: ppc64le, platform: linux/ppc64le }
      - { name: Build AppImage, arch: ppc64, platform: linux/ppc64 } # BE
      # usually built natively on ubuntu-24.04-arm, emulation is for x86_64 runners
      - { name: Build AppImage, arch: aarch64, platform: linux/arm64 }
steps:
  - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
  - name: Build AppImage (emulated)
    uses: pkgforge-dev/anylinux-setup-action/emulated@8c222ccc48a2134debbcdfd468e419f187f28dcf
    with:
      platform: ${{ matrix.platform }}

Environment overrides: ANYLINUX_TOOLS_DIR, QUICK_SHARUN, DEBLOATED_PACKAGES, MAKE_AUR_PACKAGE.

S
Description
No description provided
Readme MIT
70 KiB
0 Stars 1 Watchers 0 Forks
Languages
Shell 100%