diff options
Diffstat (limited to 'contrib/ci/jobs')
-rw-r--r-- | contrib/ci/jobs/0-codespell/config.ini | 6 | ||||
-rw-r--r-- | contrib/ci/jobs/0-codespell/dictionary.txt | 47 | ||||
-rwxr-xr-x | contrib/ci/jobs/0-codespell/job.sh | 100 | ||||
-rwxr-xr-x | contrib/ci/jobs/1-build/build.sh | 14 | ||||
-rwxr-xr-x | contrib/ci/jobs/1-build/job.sh | 6 | ||||
-rw-r--r-- | contrib/ci/jobs/2-test/config.ini | 6 | ||||
-rwxr-xr-x | contrib/ci/jobs/2-test/job.sh | 6 | ||||
-rwxr-xr-x | contrib/ci/jobs/2-test/test.sh | 51 | ||||
-rw-r--r-- | contrib/ci/jobs/3-docs/config.ini | 6 | ||||
-rwxr-xr-x | contrib/ci/jobs/3-docs/docs.sh | 11 | ||||
-rwxr-xr-x | contrib/ci/jobs/3-docs/job.sh | 6 | ||||
-rw-r--r-- | contrib/ci/jobs/4-deb-package/install-fix.patch | 13 | ||||
-rwxr-xr-x | contrib/ci/jobs/4-deb-package/job.sh | 23 | ||||
-rwxr-xr-x | contrib/ci/jobs/4-deb-package/version.sh | 17 | ||||
-rw-r--r-- | contrib/ci/jobs/5-deploy-package/config.ini | 5 | ||||
-rwxr-xr-x | contrib/ci/jobs/5-deploy-package/job.sh | 14 |
16 files changed, 331 insertions, 0 deletions
diff --git a/contrib/ci/jobs/0-codespell/config.ini b/contrib/ci/jobs/0-codespell/config.ini new file mode 100644 index 000000000..bd7d73860 --- /dev/null +++ b/contrib/ci/jobs/0-codespell/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = False +WARN_ON_FAILURE = True +CONTAINER_BUILD = False +CONTAINER_NAME = nixery.dev/shell/codespell +CONTAINER_ARCH = amd64 diff --git a/contrib/ci/jobs/0-codespell/dictionary.txt b/contrib/ci/jobs/0-codespell/dictionary.txt new file mode 100644 index 000000000..f4ffa7945 --- /dev/null +++ b/contrib/ci/jobs/0-codespell/dictionary.txt @@ -0,0 +1,47 @@ +# List of "words" that codespell should ignore in our sources. +# +# Note: The word sensitivity depends on how the to-be-ignored word is +# spelled in codespell_lib/data/dictionary.txt. F.e. if there is a word +# 'foo' and you add 'Foo' _here_, codespell will continue to complain +# about 'Foo'. +# +BRE +ND +Nd +TE +TEH +UPDATEing +WAN +aci +acn +ba +bre +cant +clen +complet +doas +ect +ehr +fo +ges +hel +ifset +ist +keypair +nam +nd +onl +openin +ot +ser +sie +som +sover +te +te +teh +tha +ths +updateing +wan +wih diff --git a/contrib/ci/jobs/0-codespell/job.sh b/contrib/ci/jobs/0-codespell/job.sh new file mode 100755 index 000000000..64c0e779c --- /dev/null +++ b/contrib/ci/jobs/0-codespell/job.sh @@ -0,0 +1,100 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +skip=$(cat <<EOF +ABOUT-NLS +*/afl-tests/* +**/auditor/*.sql +**/templating/test-specs/* +*.bbl +*.bib +*build-aux* +*.bst +*.cache/* +*/cbdc-es.tex +*/cbdc-it.tex +*.cls +configure* +config.status +*/contrib/* +*/contrib/hellos/** +*.dat +*.deflate +*.doc +*/doc/* +**/doc/flows/main.de.tex +*/doc/texinfo.tex +*.docx +*.ecc +*.eot +*.epgz +*.eps +*.epub +**/ExchangeSelection/example.ts +*.fee +*.fees +*.file +**/fonts/** +*.gif +*/.git/** +*.gz +*/i18n/strings.ts +*.info +*.jpeg +*.jpg +*.??.json +*.json +*/keys/* +*key +*.latexmkrc +*libtool* +*.log +*/m4/* +*.m4 +**/*.map +*.min.js +*.mp4 +*.odg +*.ods +*.odt +*.pack.js +*.pdf +*.png +*.PNG +**/pnpm-lock.yaml +*.po +*.pptx +*.priv +**/rfc.bib +*.rpath +**/signing-key.asc +*.sqlite +*/src/anastasis-data.ts +**/*.svg +*.svg +*.tag +**/templating/mustach** +*/templating/test?/** +*/testcurl/test_tricky.c +*/debian/tmp/** +*/debian/taler-exchange/** +*/debian/.debhelper/** +*.tgz +*.ttf +*.ttf +**/valgrind.h +*/vpn/tests/** +*.wav +*.woff +*.woff2 +*.xcf +*.xlsx +*.zkey +EOF +); + +echo Current directory: `pwd` + +codespell -I "${job_dir}"/dictionary.txt -S ${skip//$'\n'/,} diff --git a/contrib/ci/jobs/1-build/build.sh b/contrib/ci/jobs/1-build/build.sh new file mode 100755 index 000000000..d3fcfab85 --- /dev/null +++ b/contrib/ci/jobs/1-build/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -exuo pipefail + +apt-get update +apt-get upgrade -yqq + +./bootstrap +./configure CFLAGS="-ggdb -O0" \ + --enable-logging=verbose \ + --disable-doc + +nump=$(grep processor /proc/cpuinfo | wc -l) +make -j$(( $nump / 2 )) +make diff --git a/contrib/ci/jobs/1-build/job.sh b/contrib/ci/jobs/1-build/job.sh new file mode 100755 index 000000000..8d79902c5 --- /dev/null +++ b/contrib/ci/jobs/1-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/contrib/ci/jobs/2-test/config.ini b/contrib/ci/jobs/2-test/config.ini new file mode 100644 index 000000000..49cc8ea8a --- /dev/null +++ b/contrib/ci/jobs/2-test/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = False +WARN_ON_FAILURE = True +CONTAINER_BUILD = True +CONTAINER_NAME = localhost/exchange +CONTAINER_ARCH = amd64 diff --git a/contrib/ci/jobs/2-test/job.sh b/contrib/ci/jobs/2-test/job.sh new file mode 100755 index 000000000..bfb24e335 --- /dev/null +++ b/contrib/ci/jobs/2-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/contrib/ci/jobs/2-test/test.sh b/contrib/ci/jobs/2-test/test.sh new file mode 100755 index 000000000..a0002f226 --- /dev/null +++ b/contrib/ci/jobs/2-test/test.sh @@ -0,0 +1,51 @@ +#!/bin/bash +set -evux + +apt-get update +apt-get upgrade -yqq + +./bootstrap +./configure CFLAGS="-ggdb -O0" \ + --enable-logging=verbose \ + --disable-doc + +nump=$(grep processor /proc/cpuinfo | wc -l) +make clean +make -j$(( $nump / 2 )) +cd src/templating/ +./run-original-tests.sh +make clean +cd - +make -j$(( $nump / 2 )) +make install + +sudo -u postgres /usr/lib/postgresql/15/bin/postgres -D /etc/postgresql/15/main -h localhost -p 5432 & +sleep 10 +sudo -u postgres createuser -p 5432 root +sudo -u postgres createdb -p 5432 -O root talercheck + +check_command() +{ + # Set LD_LIBRARY_PATH so tests can find the installed libs + LD_LIBRARY_PATH=/usr/local/lib PGPORT=5432 make check +} + +print_logs() +{ + set +e + for i in src/*/test-suite.log + do + echo "Printing ${i}" + cat "$i" + for FAILURE in $(grep '^FAIL:' ${i} | cut -d' ' -f2) + do + echo "Printing $(dirname $i)/${FAILURE}.log" + cat "$(dirname $i)/${FAILURE}.log" + done + done +} + +if ! check_command ; then + print_logs + exit 1 +fi diff --git a/contrib/ci/jobs/3-docs/config.ini b/contrib/ci/jobs/3-docs/config.ini new file mode 100644 index 000000000..49cc8ea8a --- /dev/null +++ b/contrib/ci/jobs/3-docs/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = False +WARN_ON_FAILURE = True +CONTAINER_BUILD = True +CONTAINER_NAME = localhost/exchange +CONTAINER_ARCH = amd64 diff --git a/contrib/ci/jobs/3-docs/docs.sh b/contrib/ci/jobs/3-docs/docs.sh new file mode 100755 index 000000000..fe2b96873 --- /dev/null +++ b/contrib/ci/jobs/3-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/contrib/ci/jobs/3-docs/job.sh b/contrib/ci/jobs/3-docs/job.sh new file mode 100755 index 000000000..a72bca4ba --- /dev/null +++ b/contrib/ci/jobs/3-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/contrib/ci/jobs/4-deb-package/install-fix.patch b/contrib/ci/jobs/4-deb-package/install-fix.patch new file mode 100644 index 000000000..8334c5a7a --- /dev/null +++ b/contrib/ci/jobs/4-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/contrib/ci/jobs/4-deb-package/job.sh b/contrib/ci/jobs/4-deb-package/job.sh new file mode 100755 index 000000000..922f8bf63 --- /dev/null +++ b/contrib/ci/jobs/4-deb-package/job.sh @@ -0,0 +1,23 @@ +#!/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 + +# Install build-time dependencies. +# Update apt cache first +apt-get update +apt-get upgrade -y +mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control + +export VERSION="$(./contrib/ci/jobs/4-deb-package/version.sh)" +echo "Building package version ${VERSION}" +EMAIL=none gbp dch --dch-opt=-b --ignore-branch --debian-tag="%(version)s" --git-author --new-version="${VERSION}" +./bootstrap +dpkg-buildpackage -rfakeroot -b -uc -us + +ls -alh ../*.deb +mkdir -p /artifacts/exchange/${CI_COMMIT_REF} # Variable comes from CI environment +mv ../*.deb /artifacts/exchange/${CI_COMMIT_REF}/ diff --git a/contrib/ci/jobs/4-deb-package/version.sh b/contrib/ci/jobs/4-deb-package/version.sh new file mode 100755 index 000000000..52031b23a --- /dev/null +++ b/contrib/ci/jobs/4-deb-package/version.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -ex + +BRANCH=$(git name-rev --name-only HEAD) +if [ -z "${BRANCH}" ]; then + exit 1 +else + # "Unshallow" our checkout, but only our current branch, and exclude the submodules. + git fetch --no-recurse-submodules --tags --depth=1000 origin "${BRANCH}" + RECENT_VERSION_TAG=$(git describe --tags --match 'v*.*.*' --exclude '*-dev*' --always --abbrev=0 HEAD || exit 1) + commits="$(git rev-list ${RECENT_VERSION_TAG}..HEAD --count)" + if [ "${commits}" = "0" ]; then + git describe --tag HEAD | sed -r 's/^v//' || exit 1 + else + echo $(echo ${RECENT_VERSION_TAG} | sed -r 's/^v//')-${commits}-$(git rev-parse --short=8 HEAD) + fi +fi diff --git a/contrib/ci/jobs/5-deploy-package/config.ini b/contrib/ci/jobs/5-deploy-package/config.ini new file mode 100644 index 000000000..8d6409a6e --- /dev/null +++ b/contrib/ci/jobs/5-deploy-package/config.ini @@ -0,0 +1,5 @@ +[build] +HALT_ON_FAILURE = True +WARN_ON_FAILURE = True +CONTAINER_BUILD = False +CONTAINER_NAME = nixery.dev/shell/rsync diff --git a/contrib/ci/jobs/5-deploy-package/job.sh b/contrib/ci/jobs/5-deploy-package/job.sh new file mode 100755 index 000000000..d39cf9987 --- /dev/null +++ b/contrib/ci/jobs/5-deploy-package/job.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -exuo pipefail + +ARTIFACT_PATH="/artifacts/exchange/${CI_COMMIT_REF}/*.deb" + +RSYNC_HOST="taler.host.internal" +RSYNC_PORT=424242 +RSYNC_PATH="incoming_packages/bookworm-taler-ci/" +RSYNC_DEST="rsync://${RSYNC_HOST}/${RSYNC_PATH}" + + +rsync -vP \ + --port ${RSYNC_PORT} \ + ${ARTIFACT_PATH} ${RSYNC_DEST} |