@@ -19,7 +19,27 @@ case "$ID" in
19
19
esac
20
20
21
21
if [ " $TMT_REBOOT_COUNT " -eq 0 ]; then
22
+ # Fedora CI: https://github.com/fedora-ci/dist-git-pipeline/blob/master/Jenkinsfile#L145
23
+ # OSCI: https://gitlab.cee.redhat.com/osci-pipelines/dist-git-pipeline/-/blob/master/Jenkinsfile?ref_type=heads#L93
24
+ if [[ -v KOJI_TASK_ID ]] || [[ -v CI_KOJI_TASK_ID ]]; then
25
+ echo " $TMT_SOURCE_DIR "
26
+ ls -al " $TMT_SOURCE_DIR "
27
+ ls -al " $TMT_SOURCE_DIR /SRPMS"
28
+ ls -al /etc/yum.repos.d
29
+ cat /etc/yum.repos.d/test-artifacts.repo
30
+ ls -al /var/share/test-artifacts
31
+ # get bootc and system-reinstall-bootc rpm package name
32
+ BOOTC_RPM_FULL_PATH=$( find /var/share/test-artifacts/ -type f | grep -E ' /bootc-[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}-[0-9]{1,2}.(fc|el)[0-9]{1,2}.(x86_64|aarch64).rpm$' )
33
+ BOOTC_RPM_FILE_NAME=$( basename " $BOOTC_RPM_FULL_PATH " )
34
+ SYSTEM_REINSTALL_BOOTC_RPM_FULL_PATH=$( find /var/share/test-artifacts/ -type f | grep -E ' /system-reinstall-bootc-[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}-[0-9]{1,2}.(fc|el)[0-9]{1,2}.(x86_64|aarch64).rpm$' )
35
+ SYSTEM_REINSTALL_BOOTC_RPM_FILE_NAME=$( basename " $SYSTEM_REINSTALL_BOOTC_RPM_FULL_PATH " )
36
+ # Copy bootc rpm package to image build root folder
37
+ cp " $BOOTC_RPM_FULL_PATH " " $SYSTEM_REINSTALL_BOOTC_RPM_FULL_PATH " " $BOOTC_TEMPDIR "
38
+ fi
39
+
22
40
# Copy bootc root folder to image build root folder
41
+ # Required by bootc CI to build bootc binary
42
+ # And Required by Fedora CI for some folders for test
23
43
cp -a ../../. " $BOOTC_TEMPDIR "
24
44
25
45
# TMT needs this key
@@ -40,31 +60,15 @@ if [ "$TMT_REBOOT_COUNT" -eq 0 ]; then
40
60
ls -al " $BOOTC_TEMPDIR "
41
61
42
62
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
56
63
64
+ COMMON_CONTAINERFILE=" ${BOOTC_TEMPDIR} /common_containerfile"
65
+ tee " $COMMON_CONTAINERFILE " > /dev/null << COMMONEOF
57
66
COPY hack/provision-derived.sh /tmp
58
67
RUN /tmp/provision-derived.sh && rm -f /tmp/*.sh
59
68
# Also copy in some default install configs we use for testing
60
69
COPY hack/install-test-configs/* /usr/lib/bootc/install/
61
70
# And some test kargs
62
71
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/ /
68
72
69
73
RUN <<EORUN
70
74
set -xeuo pipefail
@@ -91,7 +95,51 @@ COPY bin /usr/local/bin
91
95
92
96
# In Testing Farm, all ssh things should be reserved for ssh command run after reboot
93
97
COPY .ssh /var/roothome/.ssh
98
+ COMMONEOF
99
+
100
+ if [[ -v KOJI_TASK_ID ]] || [[ -v CI_KOJI_TASK_ID ]]; then
101
+ FEDORA_CI_CONTAINERFILE=" ${BOOTC_TEMPDIR} /fedora_ci_containerfile"
102
+ tee " $FEDORA_CI_CONTAINERFILE " > /dev/null << FEDORACIEOF
103
+ FROM $TIER1_IMAGE_URL
104
+
105
+ COPY $BOOTC_RPM_FILE_NAME /$BOOTC_RPM_FILE_NAME
106
+ COPY $SYSTEM_REINSTALL_BOOTC_RPM_FILE_NAME /$SYSTEM_REINSTALL_BOOTC_RPM_FILE_NAME
107
+ RUN dnf remove -y bootc system-reinstall-bootc && dnf install -y /$BOOTC_RPM_FILE_NAME /$SYSTEM_REINSTALL_BOOTC_RPM_FILE_NAME rpm-ostree
108
+ FEDORACIEOF
109
+ cat > " $CONTAINERFILE " << REALEOF
110
+ $( cat " $FEDORA_CI_CONTAINERFILE " )
111
+ $( cat " $COMMON_CONTAINERFILE " )
112
+
94
113
REALEOF
114
+ else
115
+ BOOTC_CI_CONTAINERFILE=" ${BOOTC_TEMPDIR} /bootc_ci_containerfile"
116
+ tee " $BOOTC_CI_CONTAINERFILE " > /dev/null << BOOTCCIEOF
117
+ FROM $TIER1_IMAGE_URL as build
118
+
119
+ COPY contrib /contrib
120
+ COPY hack/build.sh /build.sh
121
+ RUN /build.sh && rm -v /build.sh
122
+ COPY . /build
123
+ WORKDIR /build
124
+
125
+ RUN mkdir -p /build/target/dev-rootfs
126
+ 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
127
+
128
+ FROM $TIER1_IMAGE_URL
129
+
130
+ # Inject our built code
131
+ COPY --from=build /out/bootc.tar.zst /tmp
132
+ RUN tar -C / --zstd -xvf /tmp/bootc.tar.zst && rm -vrf /tmp/*
133
+ # Also copy over arbitrary bits from the target root
134
+ COPY --from=build /build/target/dev-rootfs/ /
135
+
136
+ BOOTCCIEOF
137
+ cat > " $CONTAINERFILE " << REALEOF
138
+ $( cat " $BOOTC_CI_CONTAINERFILE " )
139
+ $( cat " $COMMON_CONTAINERFILE " )
140
+ REALEOF
141
+ fi
142
+
95
143
96
144
if [[ -d " /var/ARTIFACTS" ]]; then
97
145
# In Testing Farm, TMT work dir /var/ARTIFACTS should be reserved
0 commit comments