Skip to content

Commit a43e144

Browse files
committed
test: update bootc install script to support Fedora CI gating test
Signed-off-by: Xiaofeng Wang <[email protected]>
1 parent df879ed commit a43e144

File tree

1 file changed

+65
-18
lines changed

1 file changed

+65
-18
lines changed

tmt/tests/test-00-bootc-install.sh

+65-18
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,26 @@ case "$ID" in
1919
esac
2020

2121
if [ "$TMT_REBOOT_COUNT" -eq 0 ]; then
22+
if [[ -v KOJI_TASK_ID ]]; then
23+
# Fedora CI
24+
echo "$TMT_SOURCE_DIR"
25+
ls -al "$TMT_SOURCE_DIR"
26+
ls -al "$TMT_SOURCE_DIR/SRPMS"
27+
ls -al /etc/yum.repos.d
28+
cat /etc/yum.repos.d/test-artifacts.repo
29+
ls -al /var/share/test-artifacts
30+
# get bootc and system-reinstall-bootc rpm package name
31+
BOOTC_RPM_FULL_PATH=$(find /var/share/test-artifacts/ -type f | grep -E '/bootc-[0-9].[0-9].[0-9]-[0-9].fc[0-9]{2}.(x86_64|aarch64).rpm$')
32+
BOOTC_RPM_FILE_NAME=$(basename "$BOOTC_RPM_FULL_PATH")
33+
SYSTEM_REINSTALL_BOOTC_RPM_FULL_PATH=$(find /var/share/test-artifacts/ -type f | grep -E '/system-reinstall-bootc-[0-9].[0-9].[0-9]-[0-9].fc[0-9]{2}.(x86_64|aarch64).rpm$')
34+
SYSTEM_REINSTALL_BOOTC_RPM_FILE_NAME=$(basename "$SYSTEM_REINSTALL_BOOTC_RPM_FULL_PATH")
35+
# Copy bootc rpm package to image build root folder
36+
cp "$BOOTC_RPM_FULL_PATH" "$SYSTEM_REINSTALL_BOOTC_RPM_FULL_PATH" "$BOOTC_TEMPDIR"
37+
fi
38+
2239
# Copy bootc root folder to image build root folder
40+
# Required by bootc CI to build bootc binary
41+
# And Required by Fedora CI for some folders for test
2342
cp -a ../../. "$BOOTC_TEMPDIR"
2443

2544
# TMT needs this key
@@ -40,31 +59,15 @@ if [ "$TMT_REBOOT_COUNT" -eq 0 ]; then
4059
ls -al "$BOOTC_TEMPDIR"
4160

4261
CONTAINERFILE=${BOOTC_TEMPDIR}/Containerfile
43-
tee "$CONTAINERFILE" > /dev/null << REALEOF
44-
FROM $TIER1_IMAGE_URL as build
45-
46-
COPY contrib /contrib
47-
COPY hack/build.sh /build.sh
48-
RUN /build.sh && rm -v /build.sh
49-
COPY . /build
50-
WORKDIR /build
51-
52-
RUN mkdir -p /build/target/dev-rootfs
53-
RUN --mount=type=cache,target=/build/target --mount=type=cache,target=/var/roothome make test-bin-archive && mkdir -p /out && cp target/bootc.tar.zst /out
54-
55-
FROM $TIER1_IMAGE_URL
5662

63+
COMMON_CONTAINERFILE="${BOOTC_TEMPDIR}/common_containerfile"
64+
tee "$COMMON_CONTAINERFILE" > /dev/null << COMMONEOF
5765
COPY hack/provision-derived.sh /tmp
5866
RUN /tmp/provision-derived.sh && rm -f /tmp/*.sh
5967
# Also copy in some default install configs we use for testing
6068
COPY hack/install-test-configs/* /usr/lib/bootc/install/
6169
# And some test kargs
6270
COPY hack/test-kargs /usr/lib/bootc/kargs.d/
63-
# Inject our built code
64-
COPY --from=build /out/bootc.tar.zst /tmp
65-
RUN tar -C / --zstd -xvf /tmp/bootc.tar.zst && rm -vrf /tmp/*
66-
# Also copy over arbitrary bits from the target root
67-
COPY --from=build /build/target/dev-rootfs/ /
6871
6972
RUN <<EORUN
7073
set -xeuo pipefail
@@ -91,7 +94,51 @@ COPY bin /usr/local/bin
9194
9295
# In Testing Farm, all ssh things should be reserved for ssh command run after reboot
9396
COPY .ssh /var/roothome/.ssh
97+
COMMONEOF
98+
99+
if [[ -v KOJI_TASK_ID ]]; then
100+
FEDORA_CI_CONTAINERFILE="${BOOTC_TEMPDIR}/fedora_ci_containerfile"
101+
tee "$FEDORA_CI_CONTAINERFILE" > /dev/null << FEDORACIEOF
102+
FROM $TIER1_IMAGE_URL
103+
104+
COPY $BOOTC_RPM_FILE_NAME /$BOOTC_RPM_FILE_NAME
105+
COPY $SYSTEM_REINSTALL_BOOTC_RPM_FILE_NAME /$SYSTEM_REINSTALL_BOOTC_RPM_FILE_NAME
106+
RUN dnf remove -y bootc system-reinstall-bootc && dnf install -y /$BOOTC_RPM_FILE_NAME /$SYSTEM_REINSTALL_BOOTC_RPM_FILE_NAME rpm-ostree
107+
FEDORACIEOF
108+
cat >"$CONTAINERFILE" <<REALEOF
109+
$(cat "$FEDORA_CI_CONTAINERFILE")
110+
$(cat "$COMMON_CONTAINERFILE")
111+
94112
REALEOF
113+
else
114+
BOOTC_CI_CONTAINERFILE="${BOOTC_TEMPDIR}/bootc_ci_containerfile"
115+
tee "$BOOTC_CI_CONTAINERFILE" > /dev/null << BOOTCCIEOF
116+
FROM $TIER1_IMAGE_URL as build
117+
118+
COPY contrib /contrib
119+
COPY hack/build.sh /build.sh
120+
RUN /build.sh && rm -v /build.sh
121+
COPY . /build
122+
WORKDIR /build
123+
124+
RUN mkdir -p /build/target/dev-rootfs
125+
RUN --mount=type=cache,target=/build/target --mount=type=cache,target=/var/roothome make test-bin-archive && mkdir -p /out && cp target/bootc.tar.zst /out
126+
127+
FROM $TIER1_IMAGE_URL
128+
129+
# Inject our built code
130+
COPY --from=build /out/bootc.tar.zst /tmp
131+
RUN tar -C / --zstd -xvf /tmp/bootc.tar.zst && rm -vrf /tmp/*
132+
# Also copy over arbitrary bits from the target root
133+
COPY --from=build /build/target/dev-rootfs/ /
134+
135+
BOOTCCIEOF
136+
cat >"$CONTAINERFILE" <<REALEOF
137+
$(cat "$BOOTC_CI_CONTAINERFILE")
138+
$(cat "$COMMON_CONTAINERFILE")
139+
REALEOF
140+
fi
141+
95142

96143
if [[ -d "/var/ARTIFACTS" ]]; then
97144
# In Testing Farm, TMT work dir /var/ARTIFACTS should be reserved

0 commit comments

Comments
 (0)