From 45e3209fa61873db192f02a223dc70464331568e Mon Sep 17 00:00:00 2001 From: Devan Carpenter Date: Wed, 6 Sep 2023 21:28:27 -0400 Subject: ci: add codespell job --- ci/jobs/0-build/build.sh | 9 ------- ci/jobs/0-build/job.sh | 6 ----- ci/jobs/0-codespell/config.ini | 5 ++++ ci/jobs/0-codespell/dictionary.txt | 44 +++++++++++++++++++++++++++++++++ ci/jobs/0-codespell/job.sh | 6 +++++ ci/jobs/1-build/build.sh | 9 +++++++ ci/jobs/1-build/job.sh | 6 +++++ ci/jobs/1-test/job.sh | 6 ----- ci/jobs/1-test/test.sh | 33 ------------------------- ci/jobs/2-docs/docs.sh | 11 --------- ci/jobs/2-docs/job.sh | 6 ----- ci/jobs/2-test/job.sh | 6 +++++ ci/jobs/2-test/test.sh | 33 +++++++++++++++++++++++++ ci/jobs/3-deb-package/install-fix.patch | 13 ---------- ci/jobs/3-deb-package/job.sh | 24 ------------------ ci/jobs/3-docs/docs.sh | 11 +++++++++ ci/jobs/3-docs/job.sh | 6 +++++ ci/jobs/4-deb-package/install-fix.patch | 13 ++++++++++ ci/jobs/4-deb-package/job.sh | 24 ++++++++++++++++++ 19 files changed, 163 insertions(+), 108 deletions(-) delete mode 100755 ci/jobs/0-build/build.sh delete mode 100755 ci/jobs/0-build/job.sh create mode 100644 ci/jobs/0-codespell/config.ini create mode 100644 ci/jobs/0-codespell/dictionary.txt create mode 100755 ci/jobs/0-codespell/job.sh create mode 100755 ci/jobs/1-build/build.sh create mode 100755 ci/jobs/1-build/job.sh delete mode 100755 ci/jobs/1-test/job.sh delete mode 100755 ci/jobs/1-test/test.sh delete mode 100755 ci/jobs/2-docs/docs.sh delete mode 100755 ci/jobs/2-docs/job.sh create mode 100755 ci/jobs/2-test/job.sh create mode 100755 ci/jobs/2-test/test.sh delete mode 100644 ci/jobs/3-deb-package/install-fix.patch delete mode 100755 ci/jobs/3-deb-package/job.sh create mode 100755 ci/jobs/3-docs/docs.sh create mode 100755 ci/jobs/3-docs/job.sh create mode 100644 ci/jobs/4-deb-package/install-fix.patch create mode 100755 ci/jobs/4-deb-package/job.sh (limited to 'ci/jobs') diff --git a/ci/jobs/0-build/build.sh b/ci/jobs/0-build/build.sh deleted file mode 100755 index b11374291..000000000 --- a/ci/jobs/0-build/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/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 deleted file mode 100755 index 8d79902c5..000000000 --- a/ci/jobs/0-build/job.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -set -exuo pipefail - -job_dir=$(dirname "${BASH_SOURCE[0]}") - -"${job_dir}"/build.sh diff --git a/ci/jobs/0-codespell/config.ini b/ci/jobs/0-codespell/config.ini new file mode 100644 index 000000000..1c52b6a1a --- /dev/null +++ b/ci/jobs/0-codespell/config.ini @@ -0,0 +1,5 @@ +[build] +HALT_ON_FAILURE = False +WARN_ON_FAILURE = True +CONTAINER_BUILD = False +CONTAINER_NAME = nixery.dev/shell/codespell diff --git a/ci/jobs/0-codespell/dictionary.txt b/ci/jobs/0-codespell/dictionary.txt new file mode 100644 index 000000000..b4d643349 --- /dev/null +++ b/ci/jobs/0-codespell/dictionary.txt @@ -0,0 +1,44 @@ +# 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 +complet +doas +ect +ehr +fo +hel +ifset +ist +keypair +nd +onl +openin +ot +ser +sie +som +sover +te +te +teh +tha +ths +updateing +wan +wih diff --git a/ci/jobs/0-codespell/job.sh b/ci/jobs/0-codespell/job.sh new file mode 100755 index 000000000..58bd07b5a --- /dev/null +++ b/ci/jobs/0-codespell/job.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +codespell -I "${job_dir}"/dictionary.txt -S "*.bib,*.bst,*.cls,*.json,*.png,*.svg,*.wav,*.gz,*/templating/test?/**,**/auditor/*.sql,**/templating/mustach**,*.fees,*key,*.tag,*.info,*.latexmkrc,*.ecc,*.jpg,*.zkey,*.sqlite,*/contrib/hellos/**,*/vpn/tests/**,*.priv,*.file,*.tgz,*.woff,*.gif,*.odt,*.fee,*.deflate,*.dat,*.jpeg,*.eps,*.odg,*/m4/ax_lib_postgresql.m4,*/m4/libgcrypt.m4,*.rpath,config.status,ABOUT-NLS,*/doc/texinfo.tex,*.PNG,*.??.json,*.docx,*.ods,*.doc,*.docx,*.xcf,*.xlsx,*.ecc,*.ttf,*.woff2,*.eot,*.ttf,*.eot,*.mp4,*.pptx,*.epgz,*.min.js,**/*.map,**/fonts/**,*.pack.js,*.po,*.bbl,*/afl-tests/*,*/.git/**,*.pdf,*.epub,**/signing-key.asc,**/pnpm-lock.yaml,**/*.svg,**/*.cls,**/rfc.bib,**/*.bst,*/cbdc-es.tex,*/cbdc-it.tex,**/ExchangeSelection/example.ts,*/testcurl/test_tricky.c,*/i18n/strings.ts,*/src/anastasis-data.ts,**/doc/flows/main.de.tex" diff --git a/ci/jobs/1-build/build.sh b/ci/jobs/1-build/build.sh new file mode 100755 index 000000000..b11374291 --- /dev/null +++ b/ci/jobs/1-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/1-build/job.sh b/ci/jobs/1-build/job.sh new file mode 100755 index 000000000..8d79902c5 --- /dev/null +++ b/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/ci/jobs/1-test/job.sh b/ci/jobs/1-test/job.sh deleted file mode 100755 index bfb24e335..000000000 --- a/ci/jobs/1-test/job.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/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 deleted file mode 100755 index 6c3d2be21..000000000 --- a/ci/jobs/1-test/test.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -set -evu - -./bootstrap -./configure CFLAGS="-ggdb -O0" \ - --enable-logging=verbose \ - --disable-doc -make -make install - - -check_command() -{ - # Set LD_LIBRARY_PATH so tests can find the installed libs - LD_LIBRARY_PATH=/usr/local/lib make check -} - -print_logs() -{ - for i in src/*/test-suite.log - do - FAILURE="$(grep '^FAIL:' ${i} | cut -d' ' -f2)" - if [ ! -z "${FAILURE}" ]; then - echo "Printing ${FAILURE}.log" - tail "$(dirname $i)/${FAILURE}.log" - fi - 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 deleted file mode 100755 index fe2b96873..000000000 --- a/ci/jobs/2-docs/docs.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/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 deleted file mode 100755 index a72bca4ba..000000000 --- a/ci/jobs/2-docs/job.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -set -exuo pipefail - -job_dir=$(dirname "${BASH_SOURCE[0]}") - -"${job_dir}"/docs.sh diff --git a/ci/jobs/2-test/job.sh b/ci/jobs/2-test/job.sh new file mode 100755 index 000000000..bfb24e335 --- /dev/null +++ b/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/ci/jobs/2-test/test.sh b/ci/jobs/2-test/test.sh new file mode 100755 index 000000000..6c3d2be21 --- /dev/null +++ b/ci/jobs/2-test/test.sh @@ -0,0 +1,33 @@ +#!/bin/bash +set -evu + +./bootstrap +./configure CFLAGS="-ggdb -O0" \ + --enable-logging=verbose \ + --disable-doc +make +make install + + +check_command() +{ + # Set LD_LIBRARY_PATH so tests can find the installed libs + LD_LIBRARY_PATH=/usr/local/lib make check +} + +print_logs() +{ + for i in src/*/test-suite.log + do + FAILURE="$(grep '^FAIL:' ${i} | cut -d' ' -f2)" + if [ ! -z "${FAILURE}" ]; then + echo "Printing ${FAILURE}.log" + tail "$(dirname $i)/${FAILURE}.log" + fi + done +} + +if ! check_command ; then + print_logs + exit 1 +fi diff --git a/ci/jobs/3-deb-package/install-fix.patch b/ci/jobs/3-deb-package/install-fix.patch deleted file mode 100644 index 8334c5a7a..000000000 --- a/ci/jobs/3-deb-package/install-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -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 deleted file mode 100755 index dc78cdf24..000000000 --- a/ci/jobs/3-deb-package/job.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/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/ diff --git a/ci/jobs/3-docs/docs.sh b/ci/jobs/3-docs/docs.sh new file mode 100755 index 000000000..fe2b96873 --- /dev/null +++ b/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/ci/jobs/3-docs/job.sh b/ci/jobs/3-docs/job.sh new file mode 100755 index 000000000..a72bca4ba --- /dev/null +++ b/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/ci/jobs/4-deb-package/install-fix.patch b/ci/jobs/4-deb-package/install-fix.patch new file mode 100644 index 000000000..8334c5a7a --- /dev/null +++ b/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/ci/jobs/4-deb-package/job.sh b/ci/jobs/4-deb-package/job.sh new file mode 100755 index 000000000..dc78cdf24 --- /dev/null +++ b/ci/jobs/4-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/ -- cgit v1.2.3