libgnt/builders

overhaul the build images

2021-09-27, Gary Kramlich
3f78b58fa056
Parents fd2109e2f2ef
Children 1513640c4385
overhaul the build images
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Dockerfile.debian-bookworm-amd64 Mon Sep 27 23:06:36 2021 -0500
@@ -0,0 +1,17 @@
+FROM debian:bookworm-slim
+
+RUN set -ex && \
+ apt-get update && \
+ apt-get install -y --no-install-recommends \
+ build-essential meson ninja-build git mercurial \
+ gobject-introspection libgirepository1.0-dev gtk-doc-tools \
+ libglib2.0-dev libxml2-dev libncurses-dev libpython3-dev \
+ python3-jinja2 python3-toml python3-typogrify \
+ && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists
+
+COPY simple/build.sh /usr/local/bin/
+
+CMD ["/usr/local/bin/build.sh"]
+
--- a/Dockerfile.debian-bullseye-amd64 Tue Oct 06 20:23:42 2020 -0500
+++ b/Dockerfile.debian-bullseye-amd64 Mon Sep 27 23:06:36 2021 -0500
@@ -1,17 +1,12 @@
FROM debian:bullseye-slim
-MAINTAINER Gary Kramlich <grim@reaperworld.com>
-
-ENV DISTRO=debian
-ENV VERSION=bullseye
-ENV ARCH=amd64
-
RUN set -ex && \
apt-get update && \
apt-get install -y --no-install-recommends \
build-essential meson ninja-build git mercurial \
gobject-introspection libgirepository1.0-dev gtk-doc-tools \
libglib2.0-dev libxml2-dev libncurses-dev libpython3-dev \
+ python3-jinja2 python3-toml python3-typogrify \
&& \
apt-get clean && \
rm -rf /var/lib/apt/lists
--- a/Dockerfile.debian-buster-amd64 Tue Oct 06 20:23:42 2020 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-# vi:et:ts=4 sw=4 sts=4:ft=dockerfile
-FROM debian:buster-slim
-
-MAINTAINER Gary Kramlich <grim@reaperworld.com>
-
-ENV DISTRO=debian
-ENV VERSION=buster
-ENV ARCH=amd64
-
-RUN set -ex && \
- apt-get update && \
- apt-get install -y --no-install-recommends \
- build-essential meson ninja-build git mercurial \
- gobject-introspection libgirepository1.0-dev gtk-doc-tools \
- libglib2.0-dev libxml2-dev libncurses-dev libpython3-dev \
- && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists
-
-COPY simple/build.sh /usr/local/bin/
-
-CMD ["/usr/local/bin/build.sh"]
-
--- a/Dockerfile.fedora-30-amd64 Tue Oct 06 20:23:42 2020 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-# vi:et:ft=dockerfile:ts=4 sw=4 sts=4
-FROM fedora:30
-
-MAINTAINER Gary Kramlich <grim@reaperworld.com>
-
-ENV DISTRO=fedora
-ENV VERSION=30
-ENV ARCH=amd64
-
-RUN set -ex && \
- dnf install -y \
- meson ninja-build gcc mercurial \
- redhat-rpm-config rpm-build \
- gettext \
- glib2-devel gobject-introspection-devel gtk-doc \
- ncurses-devel \
- && \
- rm -rf /var/cache/dnf/
-
-COPY simple/build.sh /usr/local/bin/build.sh
-
-CMD ["/usr/local/bin/build.sh"]
-
--- a/Dockerfile.fedora-32-amd64 Tue Oct 06 20:23:42 2020 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-FROM fedora:32
-
-MAINTAINER Gary Kramlich <grim@reaperworld.com>
-
-ENV DISTRO=fedora
-ENV VERSION=32
-ENV ARCH=amd64
-
-RUN set -ex && \
- dnf install -y \
- meson ninja-build gcc mercurial make \
- redhat-rpm-config rpm-build \
- gettext \
- glib2-devel gobject-introspection-devel gtk-doc \
- ncurses-devel \
- && \
- rm -rf /var/cache/dnf/
-
-COPY simple/build.sh /usr/local/bin/build.sh
-
-CMD ["/usr/local/bin/build.sh"]
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Dockerfile.fedora-34-amd64 Mon Sep 27 23:06:36 2021 -0500
@@ -0,0 +1,18 @@
+FROM fedora:34
+
+RUN set -ex && \
+ dnf install -y \
+ meson ninja-build gcc mercurial make \
+ redhat-rpm-config rpm-build \
+ gettext \
+ glib2-devel gobject-introspection-devel gtk-doc \
+ python3-jinja2 python3-pygments python3-markdown python3-toml python3-typogrify \
+ ncurses-devel \
+ libxml2-devel \
+ && \
+ rm -rf /var/cache/dnf/
+
+COPY simple/build.sh /usr/local/bin/build.sh
+
+CMD ["/usr/local/bin/build.sh"]
+
--- a/Dockerfile.pvs-studio Tue Oct 06 20:23:42 2020 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-FROM libgnt/builders:debian-buster-amd64
-
-ENV PVS_STUDIO_DOWNLOAD_URL=https://files.viva64.com/pvs-studio-latest.tgz
-
-MAINTAINER Gary Kramlich <grim@reaperworld.com>
-
-RUN set -ex && \
- apt-get update && \
- apt-get install -y --no-install-recommends wget strace ca-certificates && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists
-
-RUN set -ex && \
- cd /tmp && \
- wget -O pvs-studio.tgz ${PVS_STUDIO_DOWNLOAD_URL} && \
- tar zxf pvs-studio.tgz && \
- rm pvs-studio.tgz && \
- cd pvs-studio-* && \
- ./install.sh && \
- cd .. && \
- rm -rf pvs-studio-*
-
-COPY pvs-studio/build.sh /usr/local/bin/
-
--- a/convey.yml Tue Oct 06 20:23:42 2020 -0500
+++ b/convey.yml Mon Sep 27 23:06:36 2021 -0500
@@ -1,4 +1,4 @@
-# vi:et:ts=2 sw=2 sts=2
+#s vi:et:ts=2 sw=2 sts=2
environment:
- REPO=libgnt/builders
- REGISTRY=docker.io
@@ -38,21 +38,17 @@
images: ${REGISTRY}/${REPO}:${TARGET}
plans:
- debian-buster-amd64:
- environment: TARGET=debian-buster-amd64
+ debian-bullseye-amd64:
+ environment: TARGET=debian-bullseye-amd64
stages:
- tasks: [import, build]
- debian-bullseye-amd64:
- environment: TARGET=debian-buster-amd64
+ debian-bookworm-amd64:
+ environment: TARGET=debian-bookworm-amd64
stages:
- tasks: [import, build]
- fedora-30-amd64:
- environment: TARGET=fedora-30-amd64
- stages:
- - tasks: [import, build]
- fedora-32-amd64:
- environment: TARGET=fedora-30-amd64
+ fedora-34-amd64:
+ environment: TARGET=fedora-34-amd64
stages:
- tasks: [import, build]
@@ -66,11 +62,6 @@
- tasks: [logout]
run: always
- pvs-studio:
- environment: TARGET=pvs-studio
- stages:
- - tasks: [import, build]
-
clean:
stages:
- tasks: clean
--- a/pvs-studio/build.sh Tue Oct 06 20:23:42 2020 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#!/bin/sh -ex
-# Copyright (C) 2015-2019 Gary Kramlich <grim@reaperworld.com>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-cd ${CONVEY_WORKSPACE}
-
-BUILD_DIR="build-pvs-studio"
-PLOG_ARGS="--excludedCodes V011,V1042"
-
-# don't leak our secrets via `set -x`
-set +x
-if [ -z "${PVS_STUDIO_USERNAME}" -o -z "${PVS_STUDIO_KEY}" ] ; then
- echo "Both PVS_STUDIO_USERNAME and PVS_STUDIO_KEY must be provided" >&2
- exit 1
-fi
-set -x
-
-# don't echo commands as we're stashing secrets
-set +x
-echo "${PVS_STUDIO_USERNAME}" > /license
-echo "${PVS_STUDIO_KEY}" >> /license
-set -x
-
-meson ${BUILD_DIR}
-cd ${BUILD_DIR}
-
-echo "running ninja because we don't have a way to just generate the built source files" >&2
-ninja
-
-echo "creating compile_commands.json"
-ninja -t compdb
-
-# run the analyzer
-pvs-studio-analyzer analyze -l /license -o pvs-studio.log
-
-# convert the output to html
-plog-converter -a GA:1,2 -t fullhtml -o pvs-studio -p ${HG_REMOTE} -v ${HG_COMMIT} ${PLOG_ARGS} pvs-studio.log
-cp -a pvs-studio ${CONVEY_WORKSPACE}
-
-# run the converter to determine if we found issues
-plog-converter -a GA:1,2 -t tasklist ${PLOG_ARGS} -o ${CONVEY_WORKSPACE}/pvs-studio/tasklist.txt pvs-studio.log
-ERRORS=$(wc -l ${CONVEY_WORKSPACE}/pvs-studio/tasklist.txt | awk '{print $1}')
-# the tasklist output has a stock line at the top, which we ignore by checking
-# if we have more than one line in the file
-if [ "${ERRORS}" -gt 1 ] ; then
- exit 1
-fi
-
-exit 0
-
--- a/simple/build.sh Tue Oct 06 20:23:42 2020 -0500
+++ b/simple/build.sh Mon Sep 27 23:06:36 2021 -0500
@@ -17,10 +17,9 @@
cd "${CONVEY_WORKSPACE}"
-BUILD_DIR="${DISTRO:-unknown}-${VERSION:-unknown}-${ARCH:-unknown}"
+BUILD_DIR="${TARGET:-_build}"
meson ${BUILD_DIR}
ninja -C ${BUILD_DIR}
ninja -C ${BUILD_DIR} test
-ninja -C ${BUILD_DIR} libgnt-doc