diff options
author | Christian Grothoff <grothoff@gnunet.org> | 2023-09-04 23:41:59 +0200 |
---|---|---|
committer | Christian Grothoff <grothoff@gnunet.org> | 2023-09-04 23:41:59 +0200 |
commit | 2b65557eeb085741f052592a22747dea762b49cb (patch) | |
tree | 90b1a4e8f7af2cd9d6ca237461a7da33e67687fe | |
parent | 6a03bac1de2a07c9b5e74ad9b446722913c1de2c (diff) | |
parent | 9c3eac362c2874160d1474382e66dc3d88114555 (diff) |
Merge branch 'master' of git+ssh://git.taler.net/exchange
-rw-r--r-- | ci/Containerfile | 60 | ||||
-rwxr-xr-x | ci/jobs/0-build/build.sh | 9 | ||||
-rwxr-xr-x | ci/jobs/0-build/job.sh | 6 | ||||
-rwxr-xr-x | ci/jobs/1-test/job.sh | 6 | ||||
-rwxr-xr-x | ci/jobs/1-test/test.sh | 28 | ||||
-rwxr-xr-x | ci/jobs/2-docs/docs.sh | 11 | ||||
-rwxr-xr-x | ci/jobs/2-docs/job.sh | 6 | ||||
-rw-r--r-- | ci/jobs/3-deb-package/install-fix.patch | 13 | ||||
-rwxr-xr-x | ci/jobs/3-deb-package/job.sh | 24 |
9 files changed, 163 insertions, 0 deletions
diff --git a/ci/Containerfile b/ci/Containerfile new file mode 100644 index 000000000..3cc99cb77 --- /dev/null +++ b/ci/Containerfile @@ -0,0 +1,60 @@ +FROM docker.io/library/debian:bookworm + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update -yqq && \ + apt-get install -yqq \ + autoconf \ + autopoint \ + curl \ + doxygen \ + git \ + jq \ + libcurl4-gnutls-dev \ + libgcrypt-dev \ + libidn11-dev \ + libjansson-dev \ + libmicrohttpd-dev \ + libpq-dev \ + libqrencode-dev \ + libsodium-dev \ + libtool \ + libunistring-dev \ + make \ + pkg-config \ + python3-pip \ + python3-sphinx \ + python3-sphinx-rtd-theme \ + recutils \ + texinfo \ + zlib1g-dev + +# Debian packaging tools +RUN apt-get install -yqq \ + po-debconf \ + build-essential \ + debhelper-compat \ + devscripts + +# Install Taler (and friends) packages +RUN curl -sS https://deb.taler.net/apt-nightly/taler-bookworm-ci.sources \ + | tee /etc/apt/sources.list.d/taler-bookworm-ci.sources + +RUN echo '\ +Package: * \n\ +Pin: origin "deb.taler.net" \n\ +Pin-Priority: 999' > /etc/apt/preferences.d/taler + +RUN cat /etc/apt/preferences.d/taler && \ + apt-get update -y && \ + apt-get install -y \ + libgnunet-dev \ + libgnunet \ +&& rm -rf /var/lib/apt/lists/* + + +RUN pip3 install --break-system-packages htmlark + +WORKDIR /workdir + +CMD ["bash", "/workdir/ci/ci.sh"] diff --git a/ci/jobs/0-build/build.sh b/ci/jobs/0-build/build.sh new file mode 100755 index 000000000..b11374291 --- /dev/null +++ b/ci/jobs/0-build/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -exuo pipefail + +./bootstrap +./configure CFLAGS="-ggdb -O0" \ + --enable-logging=verbose \ + --disable-doc + +make diff --git a/ci/jobs/0-build/job.sh b/ci/jobs/0-build/job.sh new file mode 100755 index 000000000..8d79902c5 --- /dev/null +++ b/ci/jobs/0-build/job.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +"${job_dir}"/build.sh diff --git a/ci/jobs/1-test/job.sh b/ci/jobs/1-test/job.sh new file mode 100755 index 000000000..bfb24e335 --- /dev/null +++ b/ci/jobs/1-test/job.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +"${job_dir}"/test.sh diff --git a/ci/jobs/1-test/test.sh b/ci/jobs/1-test/test.sh new file mode 100755 index 000000000..64be63253 --- /dev/null +++ b/ci/jobs/1-test/test.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -exuo pipefail + +./bootstrap +./configure CFLAGS="-ggdb -O0" \ + --enable-logging=verbose \ + --disable-doc +make +make install + +check_command() +{ + make check +} + +print_logs() +{ + for i in $(cat src/util/test-suite.log | grep '^FAIL:' | cut -d' ' -f 2) + do + echo Printing $i.log: + tail src/util/$i.log + done +} + +if ! check_command ; then + print_logs + exit 1 +fi diff --git a/ci/jobs/2-docs/docs.sh b/ci/jobs/2-docs/docs.sh new file mode 100755 index 000000000..fe2b96873 --- /dev/null +++ b/ci/jobs/2-docs/docs.sh @@ -0,0 +1,11 @@ +#!/bin/bash +set -exuo pipefail + +./bootstrap +./configure --enable-only-doc + +pushd ./doc/doxygen/ + +make full + +popd diff --git a/ci/jobs/2-docs/job.sh b/ci/jobs/2-docs/job.sh new file mode 100755 index 000000000..a72bca4ba --- /dev/null +++ b/ci/jobs/2-docs/job.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +"${job_dir}"/docs.sh diff --git a/ci/jobs/3-deb-package/install-fix.patch b/ci/jobs/3-deb-package/install-fix.patch new file mode 100644 index 000000000..8334c5a7a --- /dev/null +++ b/ci/jobs/3-deb-package/install-fix.patch @@ -0,0 +1,13 @@ +diff --git a/debian/taler-exchange.install b/debian/taler-exchange.install +index 631c270b..072c6231 100644 +--- a/debian/taler-exchange.install ++++ b/debian/taler-exchange.install +@@ -36,6 +36,6 @@ usr/share/taler/exchange/templates/*.must + debian/etc-taler-exchange/* etc/ + + # Terms of service / privacy policy templates +-usr/share/taler/exchange/*.rst ++#usr/share/taler/exchange/terms/*.rst + # Translations of ToS/PP +-usr/share/taler/exchange/locale/*/LC_MESSAGES/*.po ++#usr/share/taler/exchange/terms/locale/*/LC_MESSAGES/*.po diff --git a/ci/jobs/3-deb-package/job.sh b/ci/jobs/3-deb-package/job.sh new file mode 100755 index 000000000..dc78cdf24 --- /dev/null +++ b/ci/jobs/3-deb-package/job.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -exuo pipefail +# This file is in the public domain. +# Helper script to build the latest DEB packages in the container. + +unset LD_LIBRARY_PATH + + +git apply ./ci/jobs/2-deb-package/install-fix.patch + +# Get current version from debian/control file. +DEB_VERSION=$(dpkg-parsechangelog -S Version) + +# Install build-time dependencies. +mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control + +# We do a sparse checkout, so we need to hint +# the version to the build system. +echo $DEB_VERSION > .version +./bootstrap +dpkg-buildpackage -rfakeroot -b -uc -us + +ls ../*.deb +mv ../*.deb /artifacts/ |