snapcraft remote-build exits with return code 0 even when some snaps failed to build for a given arch
Metadata
Current evaluation
Closed without a documented fix; later #4826 (552897340) only made remote-build fail when no artifacts were produced, not when some architecture builds failed.
Resolution: closed stale
Reason: No fix or maintainer explanation was recorded for #4142. PR #4826 addressed the narrower no-artifacts case and did not implement failure for partially successful remote builds.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### Bug Description
We use `snapcraft remote-build` to build snaps for different architectures as part of our continuous delivery process.
Sometimes, something goes wrong and the snap for one of the architectures fails to build, yet snapcraft does not return any error, but simply a `Build failed for arch ***` message, and exits with return code `0`. We then have no idea that some of the snaps have not been properly created (and pushed to the store) unless we manually check the logs or the snapstore.
It would be better if snapcraft returned `1`, so that we could get a notification to investigate the issue and maybe re-trigger a build.
### To Reproduce
Use `snapcraft remote-build` to build a snap on different architectures (amd64, arm64, armhf, etc.)
We build a bunch of snaps, you can find the related `snapcraft.yaml` in [our git repository](https://github.com/canonical/checkbox/tree/main/checkbox-core-snap).
### Environment
- Using snapcraft from 7.x/stable channel.
- Launch command: `snapcraft remote-build --build-on amd64,arm64,armhf,i386 --launchpad-accept-public-upload`
- Ubuntu 22.04 (using Github Actions, see [workflow](https://github.com/canonical/checkbox/actions/runs/4977536729/workflow))
### snapcraft.yaml
```shell
name: checkbox20
summary: Checkbox runtime and public providers
description: "Checkbox runtime and public providers"
grade: stable
confinement: strict
version: '2.6'
base: core20
# Don't forget to add a new slot if a new provider part is added in the parts
# section below.
slots:
provider-resource:
interface: content
read:
- $SNAP/providers/checkbox-provider-resource
provider-checkbox:
interface: content
read:
- $SNAP/providers/checkbox-provider-base
provider-docker:
interface: content
read:
- $SNAP/providers/checkbox-provider-docker
provider-tpm2:
interface: content
read:
- $SNAP/providers/checkbox-provider-tpm2
provider-iiotg:
interface: content
read:
- $SNAP/providers/checkbox-provider-iiotg
provider-engineering-tests:
interface: content
read:
- $SNAP/providers/checkbox-provider-engineering-tests
provider-sru:
interface: content
read:
- $SNAP/providers/checkbox-provider-sru
provider-gpgpu:
interface: content
read:
- $SNAP/providers/checkbox-provider-gpgpu
provider-certification-client:
interface: content
read:
- $SNAP/providers/checkbox-provider-certification-client
provider-certification-server:
interface: content
read:
- $SNAP/providers/checkbox-provider-certification-server
checkbox-runtime:
interface: content
read:
- /
package-repositories:
- type: apt
ppa: hardware-certification/public
parts:
################################################################################
# Upstream: https://kernel.ubuntu.com/git/hwe/fwts.git/plain/snapcraft.yaml
fwts:
source-tag: "V23.01.00"
source-depth: 1
plugin: autotools
source: git://kernel.ubuntu.com/hwe/fwts
autotools-configure-parameters:
- --prefix=/
stage-packages:
- libfdt1
- libbsd0
- libpci3
build-packages:
- gcc
- make
- autoconf
- automake
- libtool
- libjson-c-dev
- flex
- bison
- dh-autoreconf
- libglib2.0-dev
- libfdt-dev
- libbsd-dev
################################################################################
# Upstream: https://kernel.ubuntu.com/git/cking/stress-ng.git/plain/snap/snapcraft.yaml
stress-ng:
source-tag: "V0.15.07"
source-depth: 1
plugin: make
source: https://github.com/ColinIanKing/stress-ng.git
make-parameters:
- STATIC=1
build-packages:
- gcc
- make
- zlib1g-dev
- libbsd-dev
- libgcrypt20-dev
- libkeyutils-dev
- libapparmor-dev
- libaio-dev
- libcap-dev
- libsctp-dev
- libatomic1
- libjudy-dev
- libjpeg-dev
- libglvnd-dev
- libgbm-dev
- libxxhash-dev
after: [fwts]
################################################################################
# Upstream: https://kernel.ubuntu.com/git/cking/snapcraft-snaps.git/tree/acpica/snapcraft.yaml
acpi-tools:
source-tag: "R10_20_22"
source-depth: 1
plugin: make
source: https://github.com/acpica/acpica.git
build-packages:
- gcc
- make
- bison
- flex
prime:
- usr/bin/
after: [stress-ng]
################################################################################
checkbox-support:
plugin: python
source: checkbox-support
source-type: local
stage-packages:
# actual requirements
- python3-bluez
- python3-pyparsing
- python3-requests-unixsocket
- python3-systemd
# added to stage python:
- libpython3-stdlib
- libpython3.8-stdlib
- libpython3.8-minimal
- python3-pip
- python3-setuptools
- python3-wheel
- python3-venv
- python3-minimal
- python3-distutils
- python3-pkg-resources
- python3.8-minimal
build-packages:
- libbluetooth-dev
- python3-dev
python-packages:
- pynmea2
after: [acpi-tools]
stage:
- -pyvenv.cfg
- -bin/activate*
- -**/RECORD
- -**/__pycache__
build-environment:
- C_INCLUDE_PATH: /usr/include/python3.8
- PYTHONPATH: $SNAPCRAFT_PART_INSTALL/usr/lib/python3/dist-packages:${PYTHONPATH:-}
################################################################################
checkbox-ng:
plugin: python
source: checkbox-ng
source-type: local
build-packages:
- zlib1g-dev
- build-essential
stage-packages:
- python3-markupsafe
- python3-jinja2
- python3-packaging
- python3-padme
- python3-requests-oauthlib
- python3-urwid
- python3-xlsxwriter
# added to stage python:
- libpython3-stdlib
- libpython3.8-stdlib
- libpython3.8-minimal
- python3-pip
- python3-setuptools
- python3-wheel
- python3-venv
- python3-minimal
- python3-distutils
- python3-pkg-resources
- python3.8-minimal
python-packages:
- tqdm
- picamera # p-p-c dep that wouldnt install in another part
after: [checkbox-support]
stage:
- -pyvenv.cfg
- -bin/activate*
- -**/RECORD
- -**/__pycache__
build-environment:
- PYTHONPATH: $SNAPCRAFT_PART_INSTALL/usr/lib/python3/dist-packages:${PYTHONPATH:-}
- READTHEDOCS: 'True' # simplifies picamera install
################################################################################
checkbox-provider-resource:
plugin: dump
source: providers/resource
source-type: local
stage-packages:
- cpu-checker
- dpkg
- dmidecode
- libjson-xs-perl
- pciutils
- python3-requests-unixsocket
- smartmontools
override-build: |
cd src && autoreconf -i && cd -
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-resource --root="$SNAPCRAFT_PART_INSTALL"
build-packages:
- autoconf
- automake
- libnl-3-dev
- libnl-genl-3-dev
- pkg-config
after: [checkbox-ng]
################################################################################
checkbox-provider-base:
plugin: dump
source: providers/base
source-type: local
override-build: |
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-base --root="$SNAPCRAFT_PART_INSTALL"
stage-packages:
- bc
- bluez-tests
- bonnie++
- cryptsetup-bin
- dbus
- debsums
- dmidecode
- dmsetup
- efibootmgr
- ethtool
- freeipmi-tools
- fswebcam
- gir1.2-cheese-3.0
- gir1.2-clutter-1.0
- gir1.2-gst-plugins-base-1.0
- gir1.2-gudev-1.0
- gnome-screenshot
- gstreamer1.0-tools
- gstreamer1.0-pulseaudio
- on amd64: [hdapsd] # optional as not available for arm
- hdparm
- i2c-tools
- ipmitool
- iperf
- iperf3
- iw
- jq
- kmod
- libasound2
- libcap2-bin
- libfdt1
- lsb-release
- lshw
- mesa-utils
- mokutil
- net-tools
- nmap
- nux-tools
- nvme-cli
- obexftp
- parted
- pciutils
- pulseaudio-utils
- pyotherside
- python3-dbus
- python3-evdev
- python3-gi
- python3-natsort
- python3-pil
- python3-psutil
- python3-pyqrcode
- python3-serial
- python3-yaml
- python3-zbar
- qml-module-qtquick-controls
- qml-module-qtquick-layouts
- qmlscene
- smartmontools
- usbutils
- util-linux
- uuid-runtime
- wget
- wmctrl
- xz-utils
- on armhf:
- python3-rpi.gpio # only in focal
- on arm64:
- python3-rpi.gpio # only in focal
build-packages:
- libasound2-dev
- libcap-dev
organize:
usr/lib/lib*.so*: usr/lib/$SNAPCRAFT_ARCH_TRIPLET/
after: [checkbox-provider-resource]
################################################################################
checkbox-provider-docker:
plugin: dump
source: providers/docker
source-type: local
override-build: |
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-docker --root="$SNAPCRAFT_PART_INSTALL"
stage-packages:
- apache2-utils
after: [checkbox-provider-base]
################################################################################
checkbox-provider-tpm2:
plugin: dump
source: providers/tpm2
source-type: local
override-build: |
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-tpm2 --root="$SNAPCRAFT_PART_INSTALL"
stage-packages:
- clevis-tpm2
after: [checkbox-provider-docker]
################################################################################
checkbox-provider-iiotg:
plugin: dump
source: providers/iiotg
source-type: local
override-build: |
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-iiotg --root="$SNAPCRAFT_PART_INSTALL"
after: [checkbox-provider-tpm2]
################################################################################
checkbox-provider-sru:
plugin: dump
source: providers/sru
source-type: local
override-build: |
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-sru --root="$SNAPCRAFT_PART_INSTALL"
after: [checkbox-provider-iiotg]
################################################################################
checkbox-provider-gpgpu:
plugin: dump
source: providers/gpgpu
source-type: local
override-build: |
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-gpgpu --root="$SNAPCRAFT_PART_INSTALL"
after: [checkbox-provider-sru]
################################################################################
checkbox-provider-certification-client:
plugin: dump
source: providers/certification-client
source-type: local
override-build: |
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-certification-client --root="$SNAPCRAFT_PART_INSTALL"
after: [checkbox-provider-gpgpu]
################################################################################
checkbox-provider-certification-server:
plugin: dump
source: providers/certification-server
source-type: local
override-build: |
export PYTHONPATH=$SNAPCRAFT_STAGE/lib/python3.8/site-packages:$SNAPCRAFT_STAGE/usr/lib/python3/dist-packages
for path in $(find "$SNAPCRAFT_STAGE/providers/" -mindepth 1 -maxdepth 1 -type d); do export PROVIDERPATH=$path${PROVIDERPATH:+:$PROVIDERPATH}; done
python3 manage.py validate
python3 manage.py build
python3 manage.py install --layout=relocatable --prefix=/providers/checkbox-provider-certification-server --root="$SNAPCRAFT_PART_INSTALL"
after: [checkbox-provider-certification-client]
################################################################################
glmark2:
source: https://github.com/glmark2/glmark2.git
plugin: meson
build-packages:
- libpng-dev
- libjpeg-dev
- libdrm-dev
- libgbm-dev
- libudev-dev
- libx11-dev
- meson
- python3-distro
meson-parameters:
#- -Dflavors=drm-gl,drm-glesv2,wayland-gl,wayland-glesv2,x11-gl,x11-glesv2
- -Dflavors=x11-glesv2
- --prefix=/usr
after: [checkbox-provider-certification-server]
stage-packages:
- python3-distro
override-stage: |
snapcraftctl stage
sed -i 's|except OSError: # Command not found|except subprocess.CalledProcessError: # Command not found|g' usr/lib/python3/dist-packages/distro.py
################################################################################
rpi-ppa:
plugin: nil
override-pull: |
sudo add-apt-repository ppa:sylvain-pineau/ppa-rpi
sudo apt-get update
build-packages:
- software-properties-common
rpi-support-binaries:
after: [rpi-ppa]
plugin: nil
stage-packages:
- on armhf:
- libraspberrypi0
- on arm64:
- libraspberrypi0
organize:
usr/lib/lib*.so: usr/lib/$SNAPCRAFT_ARCH_TRIPLET/
################################################################################
lk-boot-env:
plugin: nil
source: .
override-pull: |
snapcraftctl pull
wget https://raw.githubusercontent.com/snapcore/snapd/master/include/lk/snappy_boot_common.h
wget https://raw.githubusercontent.com/snapcore/snapd/master/include/lk/snappy_boot_v2.h
wget https://raw.githubusercontent.com/kubiko/dragonboard-gadget/20-lk/snap-boot-sel/lk-boot-env.c
build-packages:
- wget
- on amd64 to armhf:
- gcc-arm-linux-gnueabihf:amd64
- on amd64 to arm64:
- gcc-aarch64-linux-gnu:amd64
override-build: |
mkdir -p ${SNAPCRAFT_PART_INSTALL}/bin
if [ "${SNAPCRAFT_ARCH_TRIPLET}" = "arm-linux-gnueabihf" ]; then
arm-linux-gnueabihf-gcc lk-boot-env.c -I/usr/include/ -Iapp/aboot -o ${SNAPCRAFT_PART_INSTALL}/bin/lk-boot-env
elif [ "${SNAPCRAFT_ARCH_TRIPLET}" = "aarch64-linux-gnu" ]; then
aarch64-linux-gnu-gcc lk-boot-env.c -I/usr/include/ -Iapp/aboot -o ${SNAPCRAFT_PART_INSTALL}/bin/lk-boot-env
else
# native build
gcc lk-boot-env.c -I/usr/include/ -Iapp/aboot -o ${SNAPCRAFT_PART_INSTALL}/bin/lk-boot-env
fi
################################################################################
parts-meta-info:
plugin: nil
override-build: |
snapcraftctl build
echo $PWD
ls -1 -d ../../*
for p in `ls -d ../../*`; do
if [ -d $p/src ]; then
(cd $p/src
if [ -d $p/src/.git ]; then
(echo `basename $p`\: && git show --pretty=format:"%h%d %aN %ci%n%s%n" -q ; echo ) >> $SNAPCRAFT_PART_INSTALL/parts_meta_info
fi # for additional `source-type` support, elif them here
)
fi
done
after: [checkbox-provider-certification-server]
################################################################################
common-config:
plugin: dump
source: config/
```
### Relevant log output
```shell
<Full logs available at: https://github.com/canonical/checkbox/actions/runs/4977536729/jobs/890671400>
snapcraft remote-build is experimental and is subject to change - use with caution.
Use --build-for instead of --build-on
Using build ID snapcraft-checkbox20-74a3181e9730e14cca82b6e7dd7e447b
Packaging sources for checkbox-support...
Packaging sources for checkbox-ng...
Packaging sources for checkbox-provider-resource...
Packaging sources for checkbox-provider-base...
Packaging sources for checkbox-provider-docker...
Packaging sources for checkbox-provider-tpm2...
Packaging sources for checkbox-provider-iiotg...
Packaging sources for checkbox-provider-sru...
Packaging sources for checkbox-provider-gpgpu...
Packaging sources for checkbox-provider-certification-client...
Packaging sources for checkbox-provider-certification-server...
Packaging sources for lk-boot-env...
Packaging sources for common-config...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Sending build data to Launchpad... (https://ce-certification-qa:<token>@git.launchpad.net/~ce-certification-qa/+git/snapcraft-checkbox20-74a3181e9730e14cca82b6e7dd7e447b/)
To https://git.launchpad.net/~ce-certification-qa/+git/snapcraft-checkbox20-74a3181e9730e14cca82b6e7dd7e447b/
* [new branch] HEAD -> master
If interrupted, resume with: 'snapcraft remote-build --recover --build-id snapcraft-checkbox20-74a3181e9730e14cca82b6e7dd7e447b'
Building snap package for amd64, arm64, armhf, and i386. This may take some time to finish.
Build status as of 2023-05-15 07:11:56.224741:
arch=arm64 state=Needs building
arch=armhf state=Needs building
arch=amd64 state=Needs building
Build status as of 2023-05-15 07:12:26.577110:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:12:56.900552:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:13:27.236014:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:13:57.556636:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:14:27.909221:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:14:58.279353:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:15:28.645802:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:15:58.973703:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:16:29.397651:
arch=arm64 state=Currently building
arch=armhf state=Currently building
arch=amd64 state=Currently building
Build status as of 2023-05-15 07:16:59.760598:
arch=arm64 state=Currently building
Build status as of 2023-05-15 07:36:16.432279:
arch=arm64 state=Failed to build
arch=amd64 state=Successfully built
arch=armhf state=Currently building
Build status as of 2023-05-15 07:36:47.034605:
arch=arm64 state=Failed to build
arch=amd64 state=Successfully built
arch=armhf state=Currently building
Build status as of 2023-05-15 07:37:17.445042:
arch=arm64 state=Failed to build
arch=amd64 state=Successfully built
arch=armhf state=Currently building
Build status as of 2023-05-15 07:37:47.799670:
arch=arm64 state=Failed to build
arch=amd64 state=Successfully built
arch=armhf state=Currently building
Build status as of 2023-05-15 07:38:18.291151:
arch=armhf state=Successfully built
arch=arm64 state=Failed to build
arch=amd64 state=Successfully built
Snapped checkbox20_2.6_armhf.snap
Build log available at 'checkbox20_armhf.txt'
Starting Snapcraft 7.3.1
Logging execution to '/home/runner/.local/state/snapcraft/log/snapcraft-20230515-071137.935145.log'
Snap file not available for arch 'arm64'.
Build log available at 'checkbox20_arm64.txt'
Build failed for arch 'arm64'.
Snapped checkbox20_2.6_amd64.snap
Build log available at 'checkbox20_amd64.txt'
Build complete.
```
### Additional context
_No response_
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed stale | Closed without a documented fix; later #4826 (552897340) only made remote-build fail when no artifacts were produced, not when some architecture builds failed. | |
| stealth/space-bunny-alpha | — | closed stale | Closed without a documented fix; later PR #4826 (552897340) only made remote-build fail when no artifacts were created, not when only some architectures failed. | |
| stealth/space-bunny-alpha | — | closed stale | Closed without a documented full fix; PR #4826 (552897340) later made remote-build fail only when no artifacts were created, not when some architectures failed. | |
| stealth/space-bunny-alpha | — | closed stale | Closed without a documented fix. Later PR #4826 (commit 552897340) made remote-build fail when no artifacts are created. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without comments or resolution, indicating the request was abandoned. No official fix or merge details were provided. | |
| qwen/qwen3.6-35b-a3b | — | — | Abandoned. The issue reports snapcraft remote-build returning exit code 0 despite failed architecture builds, requesting a non-zero exit code. No comments or fixes were applied. | |
| qwen/qwen3.6-35b-a3b | — | — | Abandoned and closed without resolution. The tool continues to exit with code 0 on partial build failures, leaving the reported bug unfixed. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without resolution or comments, likely abandoned. The report detailed that snapcraft remote-build exits with code 0 on partial architecture failures, breaking CI/CD pipelines that rely on non-zero exit codes for error detection. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Abandoned without resolution. The report highlights snapcraft remote-build returning exit code 0 despite partial architecture build failures, hindering CI/CD pipelines. No comments or fixes were provided. |
Update history
No update history recorded yet.
Related work
-
Related To:
canonical/snapcraft#4826
(confidence 95%)
Merged as 552897340; makes remote-build return failure only when no artifacts are created.
-
Related To:
canonical/snapcraft#4793
(confidence 75%)
Merged as 53ec55cef; changed architecture-specific failure handling but did not resolve partial-build exit status.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #5080 `snapcraft remote-build` succeeds even if the build fails | snapcraft | closed | Fixed in Snapcraft 8 by PR #4826 (commit 552897340), which makes remote-build fail when Launchpad produces no artifacts. | |
| #4783 remote build: fail if launchpad fails to create artifacts | snapcraft | closed | Remote-build silently succeeded when Launchpad produced no artifacts. Fixed by merged PR #4826 (commit 552897340), which makes snapcraft remote-build fail when no artifacts are created. | |
| #2006445 remote-build is not copying files from root of repository | snapcraft (launchpad) | closed | Closed as no longer reproducible with Snapcraft 9's new remote builder; the legacy builder was removed in snapcraft#5994, with no targeted copy fix recorded. |