summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorRyo Nakamura <upa@haeena.net>2024-02-04 10:58:11 +0900
committerRyo Nakamura <upa@haeena.net>2024-02-04 10:58:11 +0900
commit306a00ced564829d0c265644b99ecaa0de32920b (patch)
tree988f7f7af7c8ec4ea30ddab15ce1b82393d6d572 /docker
parent65025b9022102cf283af7577ab3b868982079322 (diff)
build source rpm inside a container
A new build target `build-srpm` builds mscp src.rpm inside a docker container. The src.rpm can be published at COPR.
Diffstat (limited to 'docker')
-rw-r--r--docker/.gitignore3
-rw-r--r--docker/build-srpm.Dockerfile22
-rw-r--r--docker/build-srpm.Dockerfile.in22
3 files changed, 47 insertions, 0 deletions
diff --git a/docker/.gitignore b/docker/.gitignore
new file mode 100644
index 0000000..f7083c9
--- /dev/null
+++ b/docker/.gitignore
@@ -0,0 +1,3 @@
+
+# generated by cmake
+rpmbuild.Dockerfile
diff --git a/docker/build-srpm.Dockerfile b/docker/build-srpm.Dockerfile
new file mode 100644
index 0000000..b614fc1
--- /dev/null
+++ b/docker/build-srpm.Dockerfile
@@ -0,0 +1,22 @@
+FROM rockylinux:9
+
+# install pytest, sshd for test, and rpm-build
+RUN set -ex && yum -y install rpm-build rpmdevtools
+
+ARG mscpdir="/mscp-0.1.3"
+ARG mscptgz="mscp-0.1.3.tar.gz"
+
+COPY . ${mscpdir}
+
+# install build dependency
+RUN ${mscpdir}/scripts/install-build-deps.sh
+
+# prepare rpmbuild
+RUN rpmdev-setuptree \
+ && rm -rf ${mscpdir}/build \
+ && tar zcvf /${mscptgz} --exclude-vcs ${mscpdir} \
+ && cp /${mscptgz} ~/rpmbuild/SOURCES/ \
+ && cp ${mscpdir}/rpm/mscp.spec ~/rpmbuild/SPECS/
+
+# build rpm and src.rpm
+RUN rpmbuild -ba ~/rpmbuild/SPECS/mscp.spec
diff --git a/docker/build-srpm.Dockerfile.in b/docker/build-srpm.Dockerfile.in
new file mode 100644
index 0000000..f7a8cf0
--- /dev/null
+++ b/docker/build-srpm.Dockerfile.in
@@ -0,0 +1,22 @@
+FROM rockylinux:9
+
+# install pytest, sshd for test, and rpm-build
+RUN set -ex && yum -y install rpm-build rpmdevtools
+
+ARG mscpdir="/mscp-@MSCP_VERSION@"
+ARG mscptgz="mscp-@MSCP_VERSION@.tar.gz"
+
+COPY . ${mscpdir}
+
+# install build dependency
+RUN ${mscpdir}/scripts/install-build-deps.sh
+
+# prepare rpmbuild
+RUN rpmdev-setuptree \
+ && rm -rf ${mscpdir}/build \
+ && tar zcvf /${mscptgz} --exclude-vcs ${mscpdir} \
+ && cp /${mscptgz} ~/rpmbuild/SOURCES/ \
+ && cp ${mscpdir}/rpm/mscp.spec ~/rpmbuild/SPECS/
+
+# build rpm and src.rpm
+RUN rpmbuild -ba ~/rpmbuild/SPECS/mscp.spec