all: sync with master

This commit is contained in:
Eugene Burkov
2024-12-05 16:00:18 +03:00
parent 54f3a5f990
commit 3f95db98d3
143 changed files with 3476 additions and 2959 deletions

View File

@@ -2,8 +2,7 @@
verbose="${VERBOSE:-0}"
if [ "$verbose" -gt '0' ]
then
if [ "$verbose" -gt '0' ]; then
set -x
fi
@@ -14,29 +13,27 @@ set -e -f -u
#
# TODO(a.garipov): Add to helpers.sh and use more actively in scripts.
log() {
if [ "$verbose" -gt '0' ]
then
if [ "$verbose" -gt '0' ]; then
# Don't use quotes to get word splitting.
echo "$1" 1>&2
fi
}
version="$( ./AdGuardHome_amd64 --version | cut -d ' ' -f 4 )"
if [ "$version" = '' ]
then
version="$(./AdGuardHome_amd64 --version | cut -d ' ' -f 4)"
if [ "$version" = '' ]; then
log 'empty version from ./AdGuardHome_amd64'
exit 1
fi
readonly version
log "version '$version'"
for arch in\
'i386'\
'amd64'\
'armhf'\
'arm64'
do
for arch in \
'amd64' \
'arm64' \
'armhf' \
'i386'; do
build_output="./AdGuardHome_${arch}"
snap_output="./AdGuardHome_${arch}.snap"
snap_dir="${snap_output}.dir"
@@ -48,25 +45,22 @@ do
cp -r './snap/gui' "${snap_dir}/meta/"
# Create a snap.yaml file, setting the values.
sed\
-e 's/%VERSION%/'"$version"'/'\
-e 's/%ARCH%/'"$arch"'/'\
./snap/snap.tmpl.yaml\
> "${snap_dir}/meta/snap.yaml"
sed \
-e 's/%VERSION%/'"$version"'/' \
-e 's/%ARCH%/'"$arch"'/' \
./snap/snap.tmpl.yaml \
>"${snap_dir}/meta/snap.yaml"
# TODO(a.garipov): The snapcraft tool will *always* write everything,
# including errors, to stdout. And there doesn't seem to be a way to change
# that. So, save the combined output, but only show it when snapcraft
# actually fails.
set +e
snapcraft_output="$(
snapcraft pack "$snap_dir" --output "$snap_output" 2>&1
)"
snapcraft_output="$(snapcraft pack "$snap_dir" --output "$snap_output" 2>&1)"
snapcraft_exit_code="$?"
set -e
if [ "$snapcraft_exit_code" -ne '0' ]
then
if [ "$snapcraft_exit_code" -ne '0' ]; then
log "$snapcraft_output"
exit "$snapcraft_exit_code"
fi

View File

@@ -2,8 +2,7 @@
verbose="${VERBOSE:-0}"
if [ "$verbose" -gt '0' ]
then
if [ "$verbose" -gt '0' ]; then
set -x
fi
@@ -12,18 +11,17 @@ set -e -f -u
channel="${CHANNEL:?please set CHANNEL}"
readonly channel
printf '%s %s\n'\
'386' 'i386'\
'amd64' 'amd64'\
'armv7' 'armhf'\
printf '%s %s\n' \
'386' 'i386' \
'amd64' 'amd64' \
'armv7' 'armhf' \
'arm64' 'arm64' \
| while read -r arch snap_arch
do
release_url="https://static.adtidy.org/adguardhome/${channel}/AdGuardHome_linux_${arch}.tar.gz"
output="./AdGuardHome_linux_${arch}.tar.gz"
| while read -r arch snap_arch; do
release_url="https://static.adtidy.org/adguardhome/${channel}/AdGuardHome_linux_${arch}.tar.gz"
output="./AdGuardHome_linux_${arch}.tar.gz"
curl -o "$output" -v "$release_url"
tar -f "$output" -v -x -z
cp ./AdGuardHome/AdGuardHome "./AdGuardHome_${snap_arch}"
rm -f -r "$output" ./AdGuardHome
done
curl -o "$output" -v "$release_url"
tar -f "$output" -v -x -z
cp ./AdGuardHome/AdGuardHome "./AdGuardHome_${snap_arch}"
rm -f -r "$output" ./AdGuardHome
done

View File

@@ -2,8 +2,7 @@
verbose="${VERBOSE:-0}"
if [ "$verbose" -gt '0' ]
then
if [ "$verbose" -gt '0' ]; then
set -x
fi
@@ -12,8 +11,7 @@ set -e -f -u
# Function log is an echo wrapper that writes to stderr if the caller requested
# verbosity level greater than 0. Otherwise, it does nothing.
log() {
if [ "$verbose" -gt '0' ]
then
if [ "$verbose" -gt '0' ]; then
# Don't use quotes to get word splitting.
echo "$1" 1>&2
fi
@@ -21,8 +19,7 @@ log() {
# Do not set a new lowercase variable, because the snapcraft tool expects the
# uppercase form.
if [ "${SNAPCRAFT_STORE_CREDENTIALS:-}" = '' ]
then
if [ "${SNAPCRAFT_STORE_CREDENTIALS:-}" = '' ]; then
log 'please set SNAPCRAFT_STORE_CREDENTIALS'
exit 1
@@ -40,12 +37,11 @@ default_timeout='90s'
kill_timeout='120s'
readonly default_timeout kill_timeout
for arch in\
'i386'\
'amd64'\
'armhf'\
'arm64'
do
for arch in \
'amd64' \
'arm64' \
'armhf' \
'i386'; do
snap_file="./AdGuardHome_${arch}.snap"
# Catch the exit code and the combined output to later inspect it.
@@ -53,30 +49,28 @@ do
snapcraft_output="$(
# Use timeout(1) to force snapcraft to quit after a certain time. There
# seems to be no environment variable or flag to force this behavior.
timeout\
--preserve-status\
-k "$kill_timeout"\
-v "$default_timeout"\
"$snapcraft_cmd" upload\
--release="${snapcraft_channel}"\
--quiet\
"${snap_file}"\
timeout \
--preserve-status \
-k "$kill_timeout" \
-v "$default_timeout" \
"$snapcraft_cmd" upload \
--release="${snapcraft_channel}" \
--quiet \
"${snap_file}" \
2>&1
)"
snapcraft_exit_code="$?"
set -e
if [ "$snapcraft_exit_code" -eq '0' ]
then
if [ "$snapcraft_exit_code" -eq '0' ]; then
log "successful upload: ${snapcraft_output}"
continue
fi
# Skip the ones that were failed by a duplicate upload error.
case "$snapcraft_output"
in
(*'A file with this exact same content has already been uploaded'*|\
case "$snapcraft_output" in
*'A file with this exact same content has already been uploaded'* | \
*'Error checking upload uniqueness'*)
log "warning: duplicate upload, skipping"
@@ -84,7 +78,7 @@ do
continue
;;
(*)
*)
echo "unexpected snapcraft upload error: ${snapcraft_output}"
return "$snapcraft_exit_code"