mirror of
https://github.com/certbot/certbot.git
synced 2026-06-09 08:42:57 -04:00
The latest builds of snapcraft introduced somehow several failures when snaps are built on QEMU for armhf. See https://dev.azure.com/certbot/certbot/_build/results?buildId=2326&view=logs&j=7c548e18-6053-5a42-b366-e6480da09a69&t=a7c7ca26-ae0c-54e6-0355-3bfcd7bab03c for instance. This PR uses a specific tags from `adferrand/snapcraft`, extracted from the last known working `nightly` pipeline, to avoid these failures until a more permanent fix is done. Very likely the fix will be the move to snapcraft remote builds. * Use a specific tag of adferrand/snapcraft to build snaps and avoid an error on QEMU for armhf. * Update tools/snap/build.sh Co-authored-by: Brad Warren <bmw@users.noreply.github.com> * Update tools/snap/build_dns.sh Co-authored-by: Brad Warren <bmw@users.noreply.github.com> Co-authored-by: Brad Warren <bmw@users.noreply.github.com>
44 lines
1.2 KiB
Bash
Executable file
44 lines
1.2 KiB
Bash
Executable file
#!/bin/bash
|
|
# Cross-compile the Certbot snap from local sources for the specified architecture.
|
|
# This script is designed for CI tests purpose.
|
|
# Usage: build.sh [amd64,arm64,armhf]
|
|
set -ex
|
|
|
|
SNAP_ARCH=$1
|
|
|
|
if [[ -z "${SNAP_ARCH}" ]]; then
|
|
echo "You need to specify the target architecture"
|
|
exit 1
|
|
fi
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
CERTBOT_DIR="$(dirname "$(dirname "${DIR}")")"
|
|
|
|
# shellcheck source=common.sh
|
|
source "${DIR}/common.sh"
|
|
|
|
RegisterQemuHandlers
|
|
ResolveArch "${SNAP_ARCH}"
|
|
|
|
pushd "${DIR}/packages"
|
|
"${CERTBOT_DIR}/tools/simple_http_server.py" 8080 >/dev/null 2>&1 &
|
|
HTTP_SERVER_PID="$!"
|
|
popd
|
|
|
|
function cleanup() {
|
|
kill "${HTTP_SERVER_PID}"
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
# NB: We use ARCH-stable-save tag instead of ARCH-stable, because recent versions of snapcraft images
|
|
# behave badly on QEMU for arm64 architecture. This should be fixed either by a new version of the
|
|
# image that does not have this problem anymore, or the migration to snapcraft remote builds.
|
|
docker run \
|
|
--rm \
|
|
--net=host \
|
|
-v "${CERTBOT_DIR}:/certbot" \
|
|
-w "/certbot" \
|
|
-e "PIP_EXTRA_INDEX_URL=http://localhost:8080" \
|
|
"adferrand/snapcraft:${DOCKER_ARCH}-stable-save" \
|
|
bash -c "snapcraft clean && snapcraft"
|