FROM $distro
RUN apt-get update \
-&& apt-get install -y build-essential cmake file \
-&& apt-get clean
+ && apt-get install -y build-essential cmake file \
+ && apt-get clean
RUN apt-get update \
-&& apt-get install -y libxml2-dev libcmocka-dev cppcheck \
-&& apt-get clean
+ && apt-get install -y libxml2-dev libcmocka-dev cppcheck \
+ && apt-get clean
COPY run /app/run
RUN chmod 755 /app/run
ENTRYPOINT /app/run
\ No newline at end of file
#!/bin/bash
+create_containerfile_template()
+{
+ local distro="$1"
+ local distro_postfix="$2"
+
+ cat builder/Containerfile.template \
+ | sed "s/\$distro/$distro/" \
+ > build/Containerfile-$distro_postfix
+}
+
+build_container_image()
+{
+ local distro_postfix="$1"
+
+ podman build \
+ -f build/Containerfile-$distro_postfix \
+ -t feierabend-builder-$distro_postfix
+}
+
+run_build_container()
+{
+ local distro_postfix="$1"
+
+ podman run \
+ --rm \
+ -v ./:/src \
+ -e SOLL_HOUR=$SOLL_HOUR \
+ -e SOLL_MINUTES=$SOLL_MINUTES \
+ feierabend-builder-$distro_postfix
+}
+
main()
{
- local distros="debian:trixie debian:forky"
+ local distros="debian:stable debian:testing"
mkdir -p build
cp builder/run build/run
for distro in $distros; do
- local codename=${distro##*:}
- cat builder/Containerfile.template \
- | sed "s/\$distro/$distro/" \
- > build/Containerfile-$codename
- podman build \
- -f build/Containerfile-$codename \
- -t feierabend-builder-$codename
- podman run \
- --rm \
- -v ./:/src \
- -e SOLL_HOUR=$SOLL_HOUR \
- -e SOLL_MINUTES=$SOLL_MINUTES \
- feierabend-builder-$codename
+ local distro_postfix=${distro/:/-}
+ create_containerfile_template "$distro" "$distro_postfix" || return $?
+ build_container_image "$distro_postfix" || return $?
+ run_build_container "$distro_postfix" || return $?
done
}
local soll_minutes=${SOLL_MINUTES:="0"}
mkdir -p /build && cd /build
- cmake -DCMAKE_BUILD_TYPE=Release -DSOLL_HOUR="$soll_hour" -DSOLL_MINUTES="$soll_minutes" /src
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DSOLL_HOUR="$soll_hour" \
+ -DSOLL_MINUTES="$soll_minutes" /src
make -j$(nproc) package
}
{
cd /build
local package_name=$(find . -maxdepth 1 -name '*.deb')
- local new_package_name=${package_name/.deb/-${VERSION_CODENAME}.deb}
- echo "$package_name -> $new_package_name"
+ local new_package_name=${package_name/.deb/-$ID-$VERSION_CODENAME.deb}
+
mv "$package_name" "$new_package_name"
}
copy_package()
{
cd /build
- mkdir -p /src/packages
- cp *.deb /src/packages
+ cp *.deb /src/build/
}
main()