forked from osbuild/osbuild-composer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appsre-build-fedora-worker-packer.sh
executable file
·85 lines (75 loc) · 3.17 KB
/
appsre-build-fedora-worker-packer.sh
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/bin/bash
# AppSRE runs this script to build an ami and share it with an account
set -ev
export SKIP_CREATE_AMI=false
# Use prebuilt rpms for the fedora images
export BUILD_RPMS=false
# Fedora community workers use osbuild form rpmrepo + composer from
# copr, as the osbuild rpms from copr disappear too quickly.
export ANSIBLE_TAGS="fedora"
FEDORA=fedora-40
export PACKER_ONLY_EXCEPT=--only=amazon-ebs."$FEDORA"-x86_64,amazon-ebs."$FEDORA"-aarch64
COMMIT_SHA="${COMMIT_SHA:-$(git rev-parse HEAD)}"
# wait up to 30 minutes for the packit-as-a-service app (app id being 29076)
for RETRY in {1..31}; do
if [ "$RETRY" = 31 ]; then
echo Waiting for the packit-as-a-service suite failed after 10 minutes
exit 1
fi
CHECK_SUITES=$(curl --request GET --url "https://api.github.com/repos/osbuild/osbuild-composer/commits/$COMMIT_SHA/check-suites?app_id=29076")
CHECK_SUITES_COUNT=$(echo "$CHECK_SUITES" | jq -r .total_count)
if [ "$CHECK_SUITES_COUNT" != 1 ]; then
echo Waiting for the packit-as-a-service suite upstream
sleep 60
continue
fi
echo Packit-as-a-service suite present \(total_count "$CHECK_SUITES_COUNT"\)
break
done
CHECK_RUNS_URL=$(echo "$CHECK_SUITES" | jq -r .check_suites[0].check_runs_url)
if [ "$CHECK_RUNS_URL" = null ]; then
echo CHECK_RUNS_URL not found in "$CHECK_SUITES"
exit 1
fi
# wait up to 2 hours for the rpms to be built
for RETRY in {1..121}; do
if [ "$RETRY" = 121 ]; then
echo Waiting for the packit-as-a-service results failed after 30 minutes
exit 1
fi
CHECK_RUNS_RESULT=$(curl "$CHECK_RUNS_URL")
CHECK_RUNS_RESULT_COUNT=$(echo "$CHECK_RUNS_RESULT" | jq -r .total_count)
if [ "$CHECK_RUNS_RESULT_COUNT" = 0 ] || [ "$CHECK_RUNS_RESULT_COUNT" = null ]; then
echo No results in "$CHECK_RUNS_RESULT", waiting
sleep 60
continue
fi
X86_RPMS_STATUS=$(echo "$CHECK_RUNS_RESULT" | jq -r ".check_runs[] | select (.name | contains(\"$FEDORA-x86_64\"))" | jq -r .status)
if [ "$X86_RPMS_STATUS" != completed ]; then
echo waiting on "$FEDORA"-x86_64 rpms, status is "$X86_RPMS_STATUS"
sleep 60
continue
fi
AARCH64_RPMS_STATUS=$(echo "$CHECK_RUNS_RESULT" | jq -r ".check_runs[] | select (.name | contains(\"$FEDORA-aarch64\"))" | jq -r .status)
if [ "$AARCH64_RPMS_STATUS" != completed ]; then
echo waiting on "$FEDORA"-aarch64 rpms, status is "$AARCH64_RPMS_STATUS"
sleep 60
continue
fi
X86_RPMS_CONCLUSION=$(echo "$CHECK_RUNS_RESULT" | jq -r ".check_runs[] | select (.name | contains(\"$FEDORA-x86_64\"))" | jq -r .conclusion)
if [ "$X86_RPMS_CONCLUSION" = success ]; then
echo "$FEDORA"-x86_64 rpms ready!
else
echo "$FEDORA"-x86_64 rpms failed to build :\(
exit 1
fi
AARCH64_RPMS_CONCLUSION=$(echo "$CHECK_RUNS_RESULT" | jq -r ".check_runs[] | select (.name | contains(\"$FEDORA-aarch64\"))" | jq -r .conclusion)
if [ "$AARCH64_RPMS_CONCLUSION" = success ]; then
echo "$FEDORA"-aarch64 rpms ready!
break
else
echo "$FEDORA"-aarch64 rpms failed to build :\(
exit 1
fi
done
tools/appsre-build-worker-packer.sh