summaryrefslogtreecommitdiff
path: root/.github/workflows/run_mkosi.sh
blob: e8803239aa6223a2d3b7d4dfefda0ce4214b313e (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 immediatelly
        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