taler-mailbox

Service for asynchronous wallet-to-wallet payment messages
Log | Files | Refs | Submodules | README | LICENSE

commit 70c6ae9de37fd3bc0ff48c96a0da331144253fb9
parent d8a0d621e67d610267e34ecff616f06f76dfa7fa
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Sat, 26 Apr 2025 10:12:57 +0200

add CI

Diffstat:
Acontrib/ci/Containerfile | 22++++++++++++++++++++++
Acontrib/ci/README | 7+++++++
Acontrib/ci/buildbot/ssh-config | 33+++++++++++++++++++++++++++++++++
Acontrib/ci/buildbot/ssh-keys | 22++++++++++++++++++++++
Acontrib/ci/ci.sh | 42++++++++++++++++++++++++++++++++++++++++++
Acontrib/ci/common/build/build.sh | 12++++++++++++
Acontrib/ci/common/build/job.sh | 6++++++
Acontrib/ci/debian-package-job.sh | 23+++++++++++++++++++++++
Acontrib/ci/disabled_jobs/7-riscv64-build/build.sh | 12++++++++++++
Acontrib/ci/disabled_jobs/7-riscv64-build/config.ini | 6++++++
Acontrib/ci/disabled_jobs/7-riscv64-build/job.sh | 6++++++
Acontrib/ci/disabled_jobs/8-riscv64-deb-package/config.ini | 6++++++
Acontrib/ci/disabled_jobs/9-riscv64-deploy-package/config.ini | 6++++++
Acontrib/ci/jobs/0-codespell/config.ini | 6++++++
Acontrib/ci/jobs/0-codespell/dictionary.txt | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontrib/ci/jobs/0-codespell/job.sh | 93+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontrib/ci/jobs/1-amd64-build/build.sh | 6++++++
Acontrib/ci/jobs/1-amd64-build/job.sh | 6++++++
Acontrib/ci/jobs/2-amd64-deb-package/job.sh | 2++
Acontrib/ci/jobs/3-amd64-deploy-package/config.ini | 6++++++
Acontrib/ci/jobs/3-amd64-deploy-package/job.sh | 18++++++++++++++++++
Acontrib/ci/jobs/4-arm64-build/build.sh | 6++++++
Acontrib/ci/jobs/4-arm64-build/config.ini | 6++++++
Acontrib/ci/jobs/4-arm64-build/job.sh | 6++++++
Acontrib/ci/jobs/5-arm64-deb-package/config.ini | 6++++++
Acontrib/ci/jobs/5-arm64-deb-package/job.sh | 2++
Acontrib/ci/jobs/6-arm64-deploy-package/config.ini | 6++++++
Acontrib/ci/jobs/6-arm64-deploy-package/job.sh | 18++++++++++++++++++
Acontrib/ci/riscv64.Containerfile | 23+++++++++++++++++++++++
Acontrib/ci/version.sh | 20++++++++++++++++++++
30 files changed, 490 insertions(+), 0 deletions(-)

diff --git a/contrib/ci/Containerfile b/contrib/ci/Containerfile @@ -0,0 +1,22 @@ +FROM docker.io/library/debian:bookworm + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update -yqq +RUN apt-get upgrade -yqq +RUN apt-get install -yqq \ + git \ + golang + +# Debian packaging tools +RUN apt-get install -yqq \ + po-debconf \ + build-essential \ + debhelper-compat \ + devscripts \ + git-buildpackage \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /workdir + +CMD ["/bin/bash"] diff --git a/contrib/ci/README b/contrib/ci/README @@ -0,0 +1,7 @@ +Doing the cross-compilation jobs requires installing + +# apt install qemu-user-static + +(see also: https://wiki.archlinux.org/title/Podman#Foreign_architectures) + +Otherwise, you get some fun errors. diff --git a/contrib/ci/buildbot/ssh-config b/contrib/ci/buildbot/ssh-config @@ -0,0 +1,33 @@ +# ~/.ssh/config for buildbots + +Host *.buildbot.gnunet + User root + +Host debian-amd64-grothoff.buildbot.gnunet + Hostname gnunet.org + Port 20004 + +Host debian-i686-wachs.buildbot.gnunet + Hostname gnunet.org + Port 20000 + +Host ubuntu-amd64-wachs.buildbot.gnunet + Hostname gnunet.org + Port 20003 + +Host opensuse-amd64-wachs.buildbot.gnunet + Hostname gnunet.org + Port 20002 + +Host freebsd-amd64-wachs.buildbot.gnunet + Hostname gnunet.org + Port 20006 + +Host debian-powerpc-wachs.buildbot.gnunet + Hostname powerpcbot.decentralise.rennes.inria.fr + +Host debian-armv7l-evans.buildbot.gnunet + Hostname efikamxbot.decentralise.rennes.inria.fr + +Host debian-sparc64-wachs.buildbot.gnunet + Hostname sparcbot.decentralise.rennes.inria.fr diff --git a/contrib/ci/buildbot/ssh-keys b/contrib/ci/buildbot/ssh-keys @@ -0,0 +1,22 @@ +ssh-dss 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 grothoff@gnunet.org +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEArczTGb2rBEUa6mamO6jx5CILCMcF3ZWYlDOk7J0OavsqFV0bnpwKQVypW1TEXwFXgzXJvg6dKenpmWW3EPPN6S6mxxyA6O8dlBwRKLtaFQ5L1KBK1sGt9/1jN5UlyciYxoyKCpkb8RPqcb0u+uzO1o8LIiBbJc/52iiNv2FdgLIOFntWytoV63uXQ3gC1sMJWX/AgbifZpSAijYJEOOU3d1s2944EKT0ZmyC8mKm2lAq8/OoJGM0er3pD7jmd+5CLoiEQWUiOlNaJ14a1Pqv9DoqqsIsnJSrvigAX1JIdgD21BmD6nqwbzzE5SQUatC2yErRFHX0MZAJRpt+T1x56Gqt/+VUvVEB9dW0q5ZCBf18knlROjR8kXHyzbibiXk46W44oP3Uf21/MeoIEzhiXxODXMKuJnqDcxJHWN7/bHbEBDPdfucpLSChlx2F9tKRhfJhLJ/YItC9qUb800PXcAVW25un6KfRALlFSQuEhFoOCq8K5Eje5U/9RMvC0eFV/6V0bmlnDzicjC1XgBfjKL3oCvIxjZizKgrKgU+WT4Y1eT8oP2D8+HYAyYsEGhPYkMUY4Aqan+UcGJppeKA/3xFDEP/fa0Usvi1r9cMKgL3zt/23FTGCDz52cNq50sZgrkIQEUIfk4qGZi36L5GvZtGVU/oIGr7hwBmpAt/PefE= grothoff@gnunet.org +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxpjDxPCAVHRmn/D4u7DtR+P6DUhSOiVXUMTC7VPcBpfBzdiEjsdlME1MBvlYJ5kXUENnB/zpPGNPVj6OCk0nQLEK6nX8diaJ+U4T13EiT7+HAQjBsvil+lWIsbKzZ6CyRulkcextFgi5kd/VM7QL+oRTdrP6Pleky/MvrcUEz2W7z4vLM7SZXnkMvIN19qhEW5HTkVzi8XhPQLplWYL4QdzvL/VGsPRmFY7/lRCRp2iHgJuxBSnGT/S9HjgbC4VlsSuO+I4ee6GgR7A0WcoCFXAkxXu43IcDnceRcWSY0e6vJlg59T4QardVBfRdxmp0g7YSft+ilrBdCD3y4T68Sw== mwachs TUM key +ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgB78mdEOXz5qMmxtNlsazJTvMkLc9GCO1Hnp6sNvQCecsXs85aEiGHDiJsJAVH808KLqfZ5cFN5as/6JZx5bAc3WhWJFXi8oGJT3iOiPXVtdu3yPjNAN34eW18fzYGs4QkDvj6Xf/BZZmAivK/hebhlgG/knNWaOPpSzQIexqcXbDT/hkD1Izr8W/ObGA8uben2ucOM7uuKEGPQAZn901RwRanKdFIiBE6TRbXbhaR23/ygjNMmG20kRpIGriWJ95wrw8E7ZnYnAnXzzg/4GWgzf5gSGeB2LopZ474Wz1OqZsmzSONIKrQ8AI7e2R0mfnfU9NG18m2GrS5l6zuplbQNECrZf2fTROpT8fAaKqlQ0iXfFI8tZuOPT/j8hB3RlZFPsa1mdyZwzCvON/hJ9nBtLNhIuXO/QWydQ+smJxgBBdtF+q3EdEn++0RV7lJ+RrGoexNyzLDVuOQX/1HPWjQR7GzxGmbIL4IhJ4QSvrOLMMrWGZ3JwAbDgxT58WfOFWGEzdeAESCaTo/OHS3zm6K3qmyY+doa1cVrdoyPV9+L32iP1cmRQF5j6P3it6TdtxStXDjvyMd0j9wsR0+DL5Hmxt/0mjXScTuv3slwGan1gs/MaViLXY3E4zSLnHS4YkNA2DpHND475VYOEECLgZrR16zIhsl4C6FpPp3m/mdKyQ== ndurner@web.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDWlt7hcFgIHyvCuCw/4S+iP6TFi7aHs1RCT7FzePK4KWoxqnrTYRNhtJsAOHFXCUw8U0V884P9e7SaglCuwrxEQ77CVDDJViI0CwJd3WqB4ehJEbzZYrQmexyaJ0rKSUvL0QW0pQpDuVJswmGK/sRAoEHyTZA9L9b76RdJO0NWqx4tAZau/2AMaxpsJQ3uePeZbabNIbEWdfX+35zCg8hDJfkk13vva68y88y4cPeuNxBti0K9LunhQAWZGzB0Is5pOMzWJ21rNF9ZVXn7kwdFX9gR1DZUEnTe7byj/GbGe2NLIfLxTARUcS6sJbAKrd5xqQH2FbZFiyUU5HDGZxFkRMIPbjypF2Q5fHT8UAc7UADy548nMWUuCXkL/Ji0vpVFZgFzjPQk28v2DAN4vh/L91Gwsd+LwHkW1EKTwq1wbzjeplNc2+vu6knFNf5zhdwlW8EMTvbg8+GnWD/PJEmmY5ci6b5f5WeR8a7YW7UKrDOS1yyUHyXSQ//gXxbelgCSwJnASTU2O/7uNcMh6/c7tpQ9n532hK3t9/zp40whqFJofkJcOYsaJHF8tY54efFPQcQKiwi6U2s2FJMis5yM2+LvOvDmfpiU4DkfR2F8dkhDLnUmZ+CfyoKmRTuDXSQiW7lQPnmPiexfy6XHlen19vFHF5cSxRgClFYJmxz0Rw== bart@ranger +ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxcmXWIGT3szxGyBDHJhORmCsAmfFYGjt3eFDPLcVgAQ26ug35zwtYT7CAeYrEzroau+7t2655Rj3TUkyZcibbhYCsst/46/Qz0beOVsS+GNtRjJu55jbaFrIxbvdidNUV4IL/cBgd/+yXiqyAD9zl3UO4l6yeCL5yXimkgsiyq2/c6LXPcdZRrwSYuJnUwqgiFIz55vOyF+kJfIc3LrbqoEBJZmxMYqxd2ymoNVaMr47/qHnries0a+/p9YBYlxoBBMIQzn+eq5XXkOsAcEkDQGpTJ46hC7JgcyKmSou+KCmilj+bL1b2L8lJt3KGFqPjShGeNx6838kMMfiLG8xVw== totakura@in.tum.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCwY5XSDyXVqobwR+UfQ0+lPJTVj8MchnOYAJWNC9xvks4s7ZapBkzbpxcnCi27hb31NBtXECgMCfbDI4HuaaphgbGZjOoIWQeMLn8yHCgo7WJT0KDm4o7nODl/6drgab9XmQKhobTtrzmM+MY+MPCSXNDGRk53rM8knT+8cuPsdafEUa67mTC0p/VQJOgX0JVUF45MfVUtl1914Uot22AMHChGGg+7EMPge9QV3z5ZlP9tzXLUkw28+dkeqkXhGgAtBu2alaAy+sxiRbVHVgedOQzYCmhfQZBly8wMBvlnnTNLK023jT9FAp6j2h9/mnfGaXncElzZqkqMTXTkLe1 dold@dold-ThinkPad-T400 +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCw/lnVcAoYrMhfRpr6iXlpyVWoFpbJG7sxaNmNKR6qxASNg5tI3/+yPZ/UVL6H8AjEkPhGq/4+Km22ofolNsNtsANJn94B7va8eAyPrY097MV33srTNXpylaFRH6JUq4wxgLTFnG13FQ9eyzr2NPwlJqTtosdzvn2pRfhxG5phYt0ZXPE4jozUgPhxlrWMsORHzlDyhoyYjRMvXHo/U5dXPbq0t5SIdPJnj1poJqKzB9wZGk3vgDiYNKUuWW2h9lqDqUqZa445UZH4Rib2Bll45zJYsfLNj+iqU71djKVfUoUlj8lRQXjyiDhsUgFnBMCJrEYzkCKMYznZrHUp/9NV lrn +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9oQC+WndedWTKdjLPJGiyiOrlSStLBaLOSNLWKso3xH24MCD4ga55Tf0ZkKFCwalC/LLoftD/z0nnyxbTgoIKrtDjSycet08HL+2p/+e1Xl0kbqLYy+e7PmUdkxgBuIPMXHpFexcn0O44oCDsP9VE28GUJcjWXL/l07wvS7tvIip8sxxz0nf5AJ/Ixa+pjFbTD2ivh06KfuRJNeyxrS1yBtL7nA3LOgZahcX13WReJM6zZapO/hyX24eU+cQJqN9Hgji1qBYRqtRhFrl3/7w5fpv0pV0Dzjh75PKhThAUV8Le8X0pCTGlooMD989ToXi/m3vj9BHXx30XedEp6NM5 harsha@nautophone.net.in.tum.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyWni+1l6L4tMhdhlEe5+yVv9Hr03tvtKJkmjqOpJV37gLisdxxWhfGYGNycccpqn7lZhsU1eCqnfEuhhEHZWcWUKdY3Wx8xKzBt5E2wo0Kk/oyxasLxSv542fP9HlKY0/GVXJG8wf8XkiPdOAU9aMVeDi+qrQc61SF1Zyx2I5QyfuJR72lmOdzHFyUUTT0YL/ug3+HBoHFqk8NfgOEQe/O5/Ppj6n7iUc+LOJokq6eFeg7m7uszfYpy9IWrVelPG2YxH4t4TXpKpdnRkg1asNqHrWDS/COoCx+OlIknAEVr0P2I5YlUp9dDYU6qPVO9G2PQAuv36UEVOwahaXcru9 tarabai@devegypt.com +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCRm+/pobQVbTqfosN3eahouoKmOMCAxfNM/nQT7ELJWIGlKHYAgmwiCQcYzFZvUEqqfLhIOQ6WgeLvl0sqiCkzvz2LuFHhePqQ9QmmP1zple+9GEqP86RUOarrJZTkx5HPszfn+ak1lpYLD2XoBItKUkTPL6nRNLX9mSPX+N0w7UapuM42QrAeGWv8Lv+U0idJ9akpNb4kRgW8DTeG01EM7h+Tw0iSKA8J9QKe7Sz4X/jTD2zZuCmIzK4/PhvypCcyEfn/e0E84qcPMkH2YulxSDtnSD3UkLgyI/KeW2K0HzKoyRs51x62L9xuNbFwaqVkKgU0Lx+t1II1RU2MsyCQHMR7lqFGna2j0U6aYsn/fubxgh9yiuqHEaK3MbjKlHeMOGAptyDUJXzR8lTrQFW/dF22KhA6gvb+S2uI/MEMlvS/7xLCpoOHMPr72k+R/W4bVhNfFx+msUt0PB+F/WLpuHRmPETOijNempQsspKEIexC0zVIngMXeNtH4w/ZyUa4LAsKWnaJQGm5Z5148DMMJbk0P8wTncy5F+mSngupwBs3LzPzDfdGYqUT/W5QV5yFrHJq4qYT7rf0nzNU1KsUIrpJVpul5jW5bzgJH4uUAiUpzXiTp7pZZpwCzJWvNJT2ttvYTODHxAGBcvGlM5v0UUrKgqiGvOCnTGr9H/jgTQ== cfuchs +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEKm10NKw0pdcJRBfO3o32KdhEiRVvu34cNyiobYFFVX7wBPyeqveFD5NxuRbIibPnZh62aw9areWwlZydot3jZHHD8XqgIJH32WdvOoIqYSwtL9iPePk+yzJ4mSAgzYe1v/FmI7yGTWj42SK5gpDME7qPClmP28vJyc3TB6KkvPZFnjRTeeaVIAhdIYZCxItxiCFQcJELvmeoAhHPtM6ug2OHEOdHR12Rc+phXPCD1F87vnHyWuDvqHgcpiIFncce0kPscFsjt8o9nWzG7lH6KuMT8wIio/ybKRYCC9kVmE8gjEIh56HCL2BlOoQo//h7thVLJZJTOSwyoloNzvuv oehlmann@in.tum.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZfH/w+XKNgMasTaqs6BqX8IbzA10gD4on0jsYV35CqW/wwmHEwj/7EmThY/yLnzUeNMcHFs3B11p7ZTZvlZ2WZJ5FZr/0FMoWXp5uMN9i6ykVa4D5WoO+VyxGhZEtrHb8+lAl1ekXep+gTwViKNmSiu+ogJ2f49h+losbEsLFBV0FDTUPChFYpSB3OGTuAkTuUJ6qxDsK7NpY4nXTLG3Iyke7LjCw9uTkSP8a2q2xzheXrOG8o13F8CBL7hGFc6laZG3TfmM1WheJJQ+CkY11s0sRvddEhKlB7Ru8u23Crw5cJEkHiKUOyFln3+tvyLCb5ETlbMlHxhZVPblsYN8L martin@nietzsche +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCud/+43em7FFIm81c7POZ5TwheiO2w+ZNajKn0sDTBgCd2kf1bKn3bancbYC3kp574iFVmy91NaGJY9XZ5tLHrchFZjppM3x6KVwxY3BTm5ABSmvgNYWZIM2eIbLDWFinOV2QIJrxYY6XEdIOG6ZyQ/lqyITopmvRw2tqvdnz0PaSjAQpoLwY8HxfgNSNeCTbh2xQC+UYEiMOmANJ5FjNA27ZpLPZB+RYpAFu4H5EU1uVMUwjFP8GI9AD1DcnNsVn714IhqS3U9xjB8GzYvZg/KgeniUCliUYfHdrxyNcvgcWClDvVpdy7vuYdZObiBJjs2a5AXEXUoW5AEeu6/ODBGCTL45IpHSR6wB5s2pSU3IwAxbyH6fPB0mwbijYZmHLvNtD3Ka1+dessUrVyVBHSoteWyCuhmTr0r9QUsonS4BDr808SitJ6DXWheSupckdpCWo8c+UnMkvHTXEGCU6YZVaGyZAXEIF8iO6bYLV+IJU2BnoRgWi394NHRf/OIK99Tgxwqlclautm5A6q6gSshg8rgvLgt2tj7dmIqDFdjk/foyd7BEAXMBv4QjJGOJQu0w1i4igFNw3Kg9W5pDmhRgERttjkbXeqJA4C8t90TKigLeJ+gz198tCf4XI6+YtTld5cOTpyzI9h3G3mSCIrUG1Ik7gDcibAu8uKThyEbQ== tg +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqlkUztOQ65gRvfxI6gwkP+095eEEc5DtHzZd1x9e7AWM4yF+vK/LkQPC8Mq9fwSlN17oFFM/07CeY8LV3RQ3wck1JgDECobk6kByUtxhFpuKlViVz3sTD5KqeQHzoQXwxb5fZWuWkXs2NmalpEMCaSNDnDQdyL/PRNiWF6FsNDCSVa8hhHcSzizrF/RL0bfhzQVCSMl5RxsOQ6VEqtUNeImEyQYQ0ijlk/NErcHKipjVkj9Sa4DMKKztcccj8AEFYoqPoJrZ3pEg6puUiJ2UlPllQf7ba6+Z+U91kN4i3m8PwcuuUh5ky3cnQe2D1njUdnYg0Vamug2xrAebNSHdT supritisingh08@gmail.com +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ2JbS5dNBxiSRGeNIE+VvvJBUStgndjduH2HmGyy7Z7VGNrykSDgjkcLj1+808zWzkniUZTUKvH5uT4rjSYrc8Au2l65e+J6gYypaOhn7oQKW9KQ3P7K8VpHSc407iQk0fM6bmpRKcd5GK0U6mlpi3nKvPhd9JttwfeNF6HWo4goCuYXdnLmWIimP6BBg6dZRBqO0y00bjSlMJmHnlQXI3YUBvceB3tBe6hOaEx5X3pCpE9CPaAUp6pAohHv97k6Dq7OcXeJulDaHKYvEGTCOq5v3V4zSYH4tJCrAO5OL83fsoAwn70l2qy+BkuThhiud2cff/jL1gB1+oU06s42N bart@voyager +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC4/0jIkaaWtGolhWJPijpaPA1QHeQNlaZTc3wlCr/PGnFxY/TfXMKwEFX+JBvtYAuBsD+NXshKUssFtDSSQ5ljqbjGfA1SFv7ueRcuEVfg8MSTic7crHo23afjYWC9GND0LFDwy8IGrT6QtmbOV1cACTDk3GRcFT3wK2ZsTYAlsq7o+TTfD6A2OncqQGyIrgZl+eNx3je19xQ6OK+RTOXhvsNx77IdOluNkItAS8XEJpqnrYAqrqrtX5eyzHkwmPvu/gxrjO55YuXXXj4yramy5j++SkjH1y1XXMdAl1zNsDwT4U0/bNLm/0vvMQ8qgEVOak6vq+Qw0iyIyJP6RFI/J2S/mISCGyasAWULynhFP0DaCwFkFOnn3tv+A+caoxYKUU3nD+zD2q04FaIaOastTbDfeUSseHeKX08mSHxcPd/alYKcXA+Qm9SWsHGHJ8PAMPJNOcMwtkgGDKKzKJLW6CTUIEgl9BZXs0GXv1erAYu7zqNCRU/PWIKV2J509sk65dkykDRDkHMJ1esG+2Rg094hbNHsB4uoRZjlibS/9WYEOdn1eLt2xAvMXa1Vs8RpysMfv98zJabz8+mADf5u1prLGk9zSQA7akVoFe6OLqnQBVJr1E5simMZaCqZBYbYfgTveo8xtPZw7NDcH6/xrV2j0sN2xGHfkRFpuMpnCQ== burdges@gmail.com +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4UL53uXZCis1C9VNWJjVXTtyRHVmzFmg3vajTXrRF6LBYpEtDRA3OCtzCsj88AlL2VEtIiBWBqZrntE0TKDia1Czru3sM1ieKCra1F1GlSj4Yk+7VaRSS1hGwMBUb0zyaiIHjizGH45+zL5TXeAiGbeiF/iiRJJG/qQ+txTXVg51QLuMv9W5wKs9Dz+o+vbbUwVaauJo/TmhVz1VFjqhQBOt9N/CtaTe84B1716/d/YTZLH1bmjxMja+a6aCyABaPM5JcMNYEZT2UMCP5fTyJRUpfNlimpdRkcxaA5/K8AKTW7R35cQpLrngnnOChUB+KT6683omDr2edXGqkWNsZ grothoff@firefly +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCvbeMnZGlujN9IsLxUSTuHBUESoN6ZTXmEFi/GkBKp9RQ7xZAS84JDcV0GFddiCfTHGQL04mkeYXkof5d9NkMWjtTvQ9QFtUgGOqI3PbGCGW83vSwJHsqVbfbv5uqFCODjpTx4/WiJNkEpN/HgE2eIYFcm+Dcpo1vTgC26LjdMfqUaAGv/OTmKWmaMqyOzc4MXuUiBQT83oTfn2zSWDEOJG67yULqg5jMzaXqzPbhsaokBIPehks0bJR/q7OWNwDQJyM1oTKeRIh0ZmC0qYwGu/vlc3rYW4cp//ErAXG5iPfCXXUySUc0DTFHazzkNzUStuUwugznxuUCgbvg2tu5WEnrh/PpzIMuvNaUk2ZSDq00hHDrpVJyKKCih2d1cGV+qs9XFjDoD6Ch2NiSdPnG7fSsTxVw1SB7/APuMqfXWrQDfT5ee5xOKGzKOxQckGihQi39kmqf4WjNESOw4tmhNFZOee9dpC7ESYSpG/3zK8WG6FDln1nU6rHGjVgaSK6HwZUOsneS2fntiQZR2olzEY9+ybL1vh1fk6pkhS78X/PiwS3cSiu4q7JWJ4tUiB0T/cHAFBaODDKHXmEaGefLrPBWLLFRdjbnepWo1d0k1z/NLVovXDCGlF4IOBKqcImIffods/jTpH0hjU/vBjIQHH3Ii0J6vtGJw9whcNAGQfw== t3sserakt@posteo.de +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDRzeeUMJKn/9lY8FJIuU6HuQpWZozerTtbgsoGUNW0n0P/RsPYMQjweURDlJyKQisSZt+xRzRorSr0j9P016L8N13wGR9wtJwoJOi8DpwqEMxleYwPAZOu1zsA1Qty3ftNu6c3xB2wnlSPC0oZ2RYBOlxvIGtSGoNcDY43MKmsJ+IPsNpKOOS3x1J+xE7jOnQ0LHvxt4b54Sdr0uruTbHupwBbzBIxMFzS9hzEN6gL5cYp2fggZM8Qt707UlzIUuNzsU50qM6A8UJ+0Kun1GhKhK2J7T4Dok7M6m8ZtaKGexMfZwCl4luXlP/r1Kn48kXx/EtoQ/OcR23ymxZ95X+X8TB0ZdYcj17M7B+kk7OFz/2SVdJqYDqnMIOmXtAEdUsmSAmI7YxWyYOutRnEIkzQvHfW0h3D2pSA6EApR5huLOi40N5Ga3XLSBJC1yC8+qdiNE/t+5nGGxdlLvJ7VuzkwTEKQs33LNUdS4qKVBcIppZ7yUMjqJ5VzFk6xwEqGPCYcEWzYpNmzBiE/EFvwVSNV15Rknyieq7RB/gY/DNKX7yuC7lRZdEgGG6xu7l34c1ZhtIFhUGCnEtYsx5kJQFGMMP7bi/LNVnm+M7YZGp+uKgsnmWzrYw+YORzLwqBncs6N1tvwOG9DRKJ00S3JqSEDJ5FH/VDIUlWWbIgNwtAIQ== lurchi +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1WzIhCxeYQzjAHvwkSN7oQ3hhakwLzrTC6fXqnGUn71sQQKe4Rb2lmcUqVepnuKx2wEw3GLev89rVBSXwneiiVHwOEPNqFJXKHV5AsQbLYBvt9qlkK0Wff71Ptc9xB+M1qDVluA/4ieLDOemXYvkcK/6fqimyIdBMSlXSs2PKQkpjkAvE3qh0c41HKlagq7Y4rHV/chs1XPWCWX19ZO2EnZoVx6KeZHouc/FoE/lC7X1FudJxSKf5ZIcy3CIiYTQsL//hb6DT/mCgssCL+NtTDDXNsYiuIlj8Oi+nCpW/GkisIeyTZpbPiokDP+r0V3T8jcMbbGCVN6Um33lG2/LR amatus@atom +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILL6PhAcMxsc4GhRuQYRMwchcig5qTDQQFZBQzxFTmxI dvn.me diff --git a/contrib/ci/ci.sh b/contrib/ci/ci.sh @@ -0,0 +1,42 @@ +#!/bin/bash +set -exvuo pipefail + +# Requires podman +# Fails if not found in PATH +OCI_RUNTIME=$(which podman) +REPO_NAME=$(basename "${PWD}") +JOB_NAME="${1}" +JOB_ARCH=$((grep CONTAINER_ARCH contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "${2:-amd64}") +JOB_CONTAINER=$((grep CONTAINER_NAME contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "localhost/${REPO_NAME}:${JOB_ARCH}") +CONTAINER_BUILD=$((grep CONTAINER_BUILD contrib/ci/jobs/${JOB_NAME}/config.ini | cut -d' ' -f 3) || echo "True") +CONTAINERFILE="contrib/ci/$JOB_ARCH.Containerfile" + +if ! [[ -f "$CONTAINERFILE" ]]; +then + CONTAINERFILE="$(dirname "$CONTAINERFILE")/Containerfile" +fi + +echo "Image name: ${JOB_CONTAINER}" 2>&1 +echo "Containerfile: ${CONTAINERFILE}" 2>&1 + +if [ "${CONTAINER_BUILD}" = "True" ] ; +then + "${OCI_RUNTIME}" build \ + --arch "${JOB_ARCH}" \ + -t "${JOB_CONTAINER}" \ + -f "$CONTAINERFILE" . +fi + +"${OCI_RUNTIME}" run \ + --rm \ + -ti \ + --arch "${JOB_ARCH}" \ + --env CI_COMMIT_REF="$(git rev-parse HEAD)" \ + --volume "${PWD}":/workdir \ + --workdir /workdir \ + "${JOB_CONTAINER}" \ + contrib/ci/jobs/"${JOB_NAME}"/job.sh + +top_dir=$(dirname "${BASH_SOURCE[0]}") + +#"${top_dir}"/build.sh diff --git a/contrib/ci/common/build/build.sh b/contrib/ci/common/build/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -exuo pipefail + +MESON_BUILD_DIR=./build + +rm -rf ${MESON_BUILD_DIR} +./bootstrap meson +meson setup -Dlogging=verbose \ + ${MESON_BUILD_DIR} + +meson compile -C ${MESON_BUILD_DIR} +meson install -C ${MESON_BUILD_DIR} diff --git a/contrib/ci/common/build/job.sh b/contrib/ci/common/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/debian-package-job.sh b/contrib/ci/debian-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. +# Shared between various jobs. + +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/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/gnunet/${CI_COMMIT_REF} # Variable comes from CI environment +mv ../*.deb /artifacts/gnunet/${CI_COMMIT_REF}/ diff --git a/contrib/ci/disabled_jobs/7-riscv64-build/build.sh b/contrib/ci/disabled_jobs/7-riscv64-build/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -exuo pipefail + +MESON_BUILD_DIR=./build + +rm -rf ${MESON_BUILD_DIR} +./bootstrap meson +meson setup -Dlogging=verbose \ + ${MESON_BUILD_DIR} + +meson compile -C ${MESON_BUILD_DIR} +meson install -C ${MESON_BUILD_DIR} diff --git a/contrib/ci/disabled_jobs/7-riscv64-build/config.ini b/contrib/ci/disabled_jobs/7-riscv64-build/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = True +WARN_ON_FAILURE = True +CONTAINER_BUILD = True +CONTAINER_NAME = gnunet:riscv64 +CONTAINER_ARCH = riscv64 diff --git a/contrib/ci/disabled_jobs/7-riscv64-build/job.sh b/contrib/ci/disabled_jobs/7-riscv64-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/disabled_jobs/8-riscv64-deb-package/config.ini b/contrib/ci/disabled_jobs/8-riscv64-deb-package/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = True +WARN_ON_FAILURE = True +CONTAINER_BUILD = True +CONTAINER_NAME = gnunet:riscv64 +CONTAINER_ARCH = riscv64 diff --git a/contrib/ci/disabled_jobs/9-riscv64-deploy-package/config.ini b/contrib/ci/disabled_jobs/9-riscv64-deploy-package/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = True +WARN_ON_FAILURE = True +CONTAINER_BUILD = False +CONTAINER_NAME = nixery.dev/shell/rsync +CONTAINER_ARCH = riscv64 diff --git a/contrib/ci/jobs/0-codespell/config.ini 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 @@ -0,0 +1,57 @@ +# 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 +oce +onl +openin +ot +ser +sie +som +sover +te +te +teh +tha +ths +updateing +wan +wih +decose +clen +PRIS +pris +ciph +ges +nown +ue +bu +sme +abd +servent diff --git a/contrib/ci/jobs/0-codespell/job.sh b/contrib/ci/jobs/0-codespell/job.sh @@ -0,0 +1,93 @@ +#!/bin/bash +set -exuo pipefail + +job_dir=$(dirname "${BASH_SOURCE[0]}") + +skip=$(cat <<EOF +ABOUT-NLS +*/debian/tmp/** +*.bbl +*.bib +*build-aux* +*.bst +*.cache/* +ChangeLog +*.cls +configure* +config.status +config.guess +depcomp +*/contrib/* +*/contrib/hellos/** +*.dat +*.deflate +*.doc +*/doc/* +**/doc/flows/main.de.tex +*/doc/texinfo.tex +*.docx +*.ecc +*.eot +*.epgz +*.eps +*.epub +*.fee +*.fees +*.file +**/fonts/** +*.gif +*/.git/** +*.gz +*/i18n/strings.ts +*.info +*.jpeg +*.jpg +*.??.json +*.json +*.json-* +*/keys/* +*key +*.latexmkrc +*libtool* +ltmain.sh +*.log +*/m4/* +*.m4 +**/*.map +*.min.js +*.mp4 +*.odg +*.ods +*.odt +*.pack.js +*.pdf +*.png +*.PNG +*.po +*.pptx +*.priv +**/rfc.bib +*.rpath +**/signing-key.asc +*.sqlite +**/*.svg +*.svg +*.tag +*/templating/test?/** +*.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-amd64-build/build.sh b/contrib/ci/jobs/1-amd64-build/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +./configure +make +make install diff --git a/contrib/ci/jobs/1-amd64-build/job.sh b/contrib/ci/jobs/1-amd64-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-amd64-deb-package/job.sh b/contrib/ci/jobs/2-amd64-deb-package/job.sh @@ -0,0 +1,2 @@ +#!/bin/bash +exec ./contrib/ci/debian-package-job.sh diff --git a/contrib/ci/jobs/3-amd64-deploy-package/config.ini b/contrib/ci/jobs/3-amd64-deploy-package/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = True +WARN_ON_FAILURE = True +CONTAINER_BUILD = False +CONTAINER_NAME = nixery.dev/shell/rsync +CONTAINER_ARCH = amd64 diff --git a/contrib/ci/jobs/3-amd64-deploy-package/job.sh b/contrib/ci/jobs/3-amd64-deploy-package/job.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -exuo pipefail + +ARTIFACT_PATH="/artifacts/${CI_PROJECT_NAME}/${CI_COMMIT_REF}/*.deb" +RELEASE_ARTIFACT_DIR="${RELEASE_ARTIFACT_DIR:-"$(dirname $0)/../../../../release-artifacts"}" + +if [[ -d "$RELEASE_ARTIFACT_DIR" ]]; then + rsync -vP $ARTIFACT_PATH $RELEASE_ARTIFACT_DIR +else + RSYNC_HOST=${RSYNC_HOST:-"taler.host.internal"} + RSYNC_PORT=${RSYNC_PORT:-424242} + RSYNC_PATH=${RSYNC_PATH:-"incoming_packages/bookworm-taler-ci/"} + RSYNC_DEST=${RSYNC_DEST:-"rsync://${RSYNC_HOST}/${RSYNC_PATH}"} + + rsync -vP \ + --port ${RSYNC_PORT} \ + ${ARTIFACT_PATH} ${RSYNC_DEST} +fi; diff --git a/contrib/ci/jobs/4-arm64-build/build.sh b/contrib/ci/jobs/4-arm64-build/build.sh @@ -0,0 +1,6 @@ +#!/bin/bash +set -exuo pipefail + +./configure +make +make install diff --git a/contrib/ci/jobs/4-arm64-build/config.ini b/contrib/ci/jobs/4-arm64-build/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = True +WARN_ON_FAILURE = True +CONTAINER_BUILD = True +CONTAINER_NAME = gnunet:arm64 +CONTAINER_ARCH = arm64 diff --git a/contrib/ci/jobs/4-arm64-build/job.sh b/contrib/ci/jobs/4-arm64-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/5-arm64-deb-package/config.ini b/contrib/ci/jobs/5-arm64-deb-package/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = True +WARN_ON_FAILURE = True +CONTAINER_BUILD = True +CONTAINER_NAME = gnunet:arm64 +CONTAINER_ARCH = arm64 diff --git a/contrib/ci/jobs/5-arm64-deb-package/job.sh b/contrib/ci/jobs/5-arm64-deb-package/job.sh @@ -0,0 +1,2 @@ +#!/bin/bash +exec ./contrib/ci/debian-package-job.sh diff --git a/contrib/ci/jobs/6-arm64-deploy-package/config.ini b/contrib/ci/jobs/6-arm64-deploy-package/config.ini @@ -0,0 +1,6 @@ +[build] +HALT_ON_FAILURE = True +WARN_ON_FAILURE = True +CONTAINER_BUILD = False +CONTAINER_NAME = nixery.dev/shell/rsync +CONTAINER_ARCH = arm64 diff --git a/contrib/ci/jobs/6-arm64-deploy-package/job.sh b/contrib/ci/jobs/6-arm64-deploy-package/job.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -exuo pipefail + +ARTIFACT_PATH="/artifacts/${CI_PROJECT_NAME}/${CI_COMMIT_REF}/*.deb" +RELEASE_ARTIFACT_DIR="${RELEASE_ARTIFACT_DIR:-"$(dirname $0)/../../../../release-artifacts"}" + +if [[ -d "$RELEASE_ARTIFACT_DIR" ]]; then + rsync -vP $ARTIFACT_PATH $RELEASE_ARTIFACT_DIR +else + RSYNC_HOST=${RSYNC_HOST:-"taler.host.internal"} + RSYNC_PORT=${RSYNC_PORT:-424242} + RSYNC_PATH=${RSYNC_PATH:-"incoming_packages/bookworm-taler-ci/"} + RSYNC_DEST=${RSYNC_DEST:-"rsync://${RSYNC_HOST}/${RSYNC_PATH}"} + + rsync -vP \ + --port ${RSYNC_PORT} \ + ${ARTIFACT_PATH} ${RSYNC_DEST} +fi; diff --git a/contrib/ci/riscv64.Containerfile b/contrib/ci/riscv64.Containerfile @@ -0,0 +1,23 @@ +# This file is separate as trixie does not offer a stable riscv on docker yet. +FROM docker.io/library/debian:unstable + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update -yqq && \ + apt-get upgrade -yqq && \ + apt-get install -yqq \ + git \ + golang + +# Debian packaging tools +RUN apt-get install -yqq \ + po-debconf \ + build-essential \ + debhelper-compat \ + devscripts \ + git-buildpackage \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /workdir + +CMD ["/bin/bash"] diff --git a/contrib/ci/version.sh b/contrib/ci/version.sh @@ -0,0 +1,20 @@ +#!/bin/sh +set -ex +# This file is in the public domain. +# Determines the current version of our code. +# Shared between various jobs. + +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