summaryrefslogtreecommitdiff
path: root/.github/workflows/run_mkosi.sh
blob: 980fa1a96c6a5636d8d8472e9759a0219674b5cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
# shellcheck disable=SC2064

set -eu
set -o pipefail

EC=0
TEMPFILE="$(mktemp)"
trap "rm -f '$TEMPFILE'" EXIT

for ((i = 0; i < 5; i++)); do
    EC=0
    (sudo python3 -m mkosi "$@") |& tee "$TEMPFILE" || EC=$?
    if [[ $EC -eq 0 ]]; then
        # The command passed — let's return immediately
        break
    fi

    if ! grep -E "Failed to dissect image .+: Connection timed out" "$TEMPFILE"; then
        # The command failed for other reason than the dissect-related timeout -
        # let's exit with the same EC
        exit $EC
    fi

    # The command failed due to the dissect-related timeout — let's try again
    sleep 1
done

exit $EC