taler-rust

GNU Taler code in Rust. Largely core banking integrations.
Log | Files | Refs | Submodules | README | LICENSE

commit fc6218c35a1f230a5d80697be098f58c1c9ff50c
parent 2ed3507f7eb974bc2f228d51ce6dd7644c20417c
Author: Antoine A <>
Date:   Thu, 20 Nov 2025 12:49:18 +0100

common: improve ci

Diffstat:
D.ci/config.toml | 17-----------------
Mcontrib/ci/Containerfile | 25+++++++++----------------
Acontrib/ci/deb-test.sh | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Mcontrib/ci/jobs/1-build/job.sh | 5++---
Acontrib/ci/jobs/4-deb-amd64/config.ini | 2++
Acontrib/ci/jobs/4-deb-amd64/job.sh | 17+++++++++++++++++
Dcontrib/ci/jobs/4-deb/job.sh | 20--------------------
Dcontrib/ci/jobs/4-deb/test.sh | 51---------------------------------------------------
Acontrib/ci/jobs/5-deb-arm64/config.ini | 2++
Acontrib/ci/jobs/5-deb-arm64/job.sh | 20++++++++++++++++++++
Dcontrib/ci/jobs/5-deploy/job.sh | 14--------------
Rcontrib/ci/jobs/5-deploy/config.ini -> contrib/ci/jobs/6-deploy/config.ini | 0
Acontrib/ci/jobs/6-deploy/job.sh | 13+++++++++++++
13 files changed, 116 insertions(+), 121 deletions(-)

diff --git a/.ci/config.toml b/.ci/config.toml @@ -1,17 +0,0 @@ -[target.x86_64-unknown-linux-gnu] -linker = "clang" -rustflags = [ - "-C", - "link-arg=-fuse-ld=mold", - "-C", - "link-arg=--target=x86_64-unknown-linux-gnu", -] - -[target.aarch64-unknown-linux-gnu] -linker = "clang" -rustflags = [ - "-C", - "link-arg=-fuse-ld=mold", - "-C", - "link-arg=--target=aarch64-unknown-linux-gnu", -] diff --git a/contrib/ci/Containerfile b/contrib/ci/Containerfile @@ -1,32 +1,25 @@ -FROM docker.io/library/rust:trixie +FROM docker.io/library/debian:trixie ENV DEBIAN_FRONTEND=noninteractive \ # Persistent cargo cache CARGO_HOME=/workdir/.ci - # Add both amd64 and arm64 packages architecture -RUN dpkg --add-architecture amd64 && \ - dpkg --add-architecture arm64 && \ # Apt sync - apt-get update -yq && \ +RUN apt-get update -yq && \ apt-get upgrade -yq && \ # Install build & test dependencies apt-get install -yq \ + rustup \ + git \ + python3 \ sudo \ man \ make \ postgresql \ - mold \ - clang \ - debhelper-compat \ - build-essential \ - crossbuild-essential-arm64 \ - crossbuild-essential-amd64 \ - libc6-dev-arm64-cross \ - libc6-dev-amd64-cross && \ - # Add both amd64 and arm64 rustc targets - rustup target add x86_64-unknown-linux-gnu && \ - rustup target add aarch64-unknown-linux-gnu + debhelper \ + build-essential && \ + # Install rustup toolchain + rustup default stable WORKDIR /workdir diff --git a/contrib/ci/deb-test.sh b/contrib/ci/deb-test.sh @@ -0,0 +1,50 @@ +set -eu + +ARCH=$(dpkg --print-architecture) + +function step() { + echo -e "\n$@" >&2 +} + +USERS="taler-magnet-bank-httpd taler-magnet-bank-worker" + +step "Install magnet-bank" +dpkg -i ../taler-magnet-bank_*.deb + +step "Install magnet-bank again" +dpkg -i ../taler-magnet-bank_*.deb + +step "Start postgres cluster" +sudo -u postgres pg_ctlcluster 17 main start + +step "taler-magnet-bank version" +taler-magnet-bank --version + +for USER in $USERS; do + step "$USER user:" + id $USER +done + +step "Run dbconfig" +taler-magnet-bank-dbconfig -r + +for USER in $USERS; do + step "Check $USER db access" + sudo -u $USER psql -d taler-magnet-bank -c "SELECT 1;" &> /dev/null +done + +step "Check man pages" +man taler-magnet-bank > /dev/null +man taler-magnet-bank.conf > /dev/null + +step "Remove magnet-bank" +dpkg --remove taler-magnet-bank + +step "Reinstall magnet-bank" +dpkg -i ../taler-magnet-bank_*.deb + +step "Purge magnet-bank:" +dpkg --purge taler-magnet-bank + +step "Reinstall magnet-bank" +dpkg -i ../taler-magnet-bank_*.deb +\ No newline at end of file diff --git a/contrib/ci/jobs/1-build/job.sh b/contrib/ci/jobs/1-build/job.sh @@ -5,6 +5,5 @@ set -exuo pipefail apt-get update -yq apt-get upgrade -yq -# Build for release -cargo build --release --bin taler-magnet-bank --target x86_64-unknown-linux-gnu -cargo build --release --bin taler-magnet-bank --target aarch64-unknown-linux-gnu +# Build binary +make build diff --git a/contrib/ci/jobs/4-deb-amd64/config.ini b/contrib/ci/jobs/4-deb-amd64/config.ini @@ -0,0 +1,2 @@ +[build] +CONTAINER_ARCH = amd64 diff --git a/contrib/ci/jobs/4-deb-amd64/job.sh b/contrib/ci/jobs/4-deb-amd64/job.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -exuo pipefail + +# Update system +apt-get update -yq +apt-get upgrade -yq + +# Build package +export VERSION="$(./contrib/ci/version.sh)" +echo "Building package version ${VERSION}" +make deb + +# Move to artifact +ls -alh ../*.deb +mkdir -p /artifacts/magnet-bank/${CI_COMMIT_REF} # Variable comes from CI environment +mv ../*.deb /artifacts/magnet-bank/${CI_COMMIT_REF} +\ No newline at end of file diff --git a/contrib/ci/jobs/4-deb/job.sh b/contrib/ci/jobs/4-deb/job.sh @@ -1,19 +0,0 @@ -#!/bin/bash -set -exuo pipefail - -# Update system -apt-get update -yq -apt-get upgrade -yq - -# Build package -export VERSION="$(./contrib/ci/version.sh)" -echo "Building package version ${VERSION}" -make deb - -# Test package -./contrib/ci/jobs/4-deb/test.sh - -# Move to artifact -ls -alh ../*.deb -mkdir -p /artifacts/magnet-bank/${CI_COMMIT_REF} # Variable comes from CI environment -mv ../*.deb /artifacts/magnet-bank/${CI_COMMIT_REF} -\ No newline at end of file diff --git a/contrib/ci/jobs/4-deb/test.sh b/contrib/ci/jobs/4-deb/test.sh @@ -1,50 +0,0 @@ -set -eu - -ARCH=$(dpkg --print-architecture) - -function step() { - echo -e "\n$@" >&2 -} - -USERS="taler-magnet-bank-httpd taler-magnet-bank-worker" - -step "Install magnet-bank" -dpkg -i ../taler-magnet-bank_*.deb - -step "Install magnet-bank again" -dpkg -i ../taler-magnet-bank_*.deb - -step "Start postgres cluster" -sudo -u postgres pg_ctlcluster 17 main start - -step "taler-magnet-bank version" -taler-magnet-bank --version - -for USER in $USERS; do - step "$USER user:" - id $USER -done - -step "Run dbconfig" -sudo taler-magnet-bank-dbconfig -r - -for USER in $USERS; do - step "Check $USER db access" - sudo -u $USER psql -d taler-magnet-bank -c "SELECT 1;" &> /dev/null -done - -step "Check man pages" -man taler-magnet-bank > /dev/null -man taler-magnet-bank.conf > /dev/null - -step "Remove magnet-bank" -dpkg --remove taler-magnet-bank - -step "Reinstall magnet-bank" -dpkg -i ../taler-magnet-bank_*.deb - -step "Purge magnet-bank:" -dpkg --purge taler-magnet-bank - -step "Reinstall magnet-bank" -dpkg -i ../taler-magnet-bank_*.deb -\ No newline at end of file diff --git a/contrib/ci/jobs/5-deb-arm64/config.ini b/contrib/ci/jobs/5-deb-arm64/config.ini @@ -0,0 +1,2 @@ +[build] +CONTAINER_ARCH = arm64 diff --git a/contrib/ci/jobs/5-deb-arm64/job.sh b/contrib/ci/jobs/5-deb-arm64/job.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -exuo pipefail + +# Update system +apt-get update -yq +apt-get upgrade -yq + +# Build package +export VERSION="$(./contrib/ci/version.sh)" +echo "Building package version ${VERSION}" +make deb + +# Test package +./contrib/ci/deb-test.sh + +# Move to artifact +ls -alh ../*.deb +mkdir -p /artifacts/magnet-bank/${CI_COMMIT_REF} # Variable comes from CI environment +mv ../*.deb /artifacts/magnet-bank/${CI_COMMIT_REF} +\ No newline at end of file diff --git a/contrib/ci/jobs/5-deploy/job.sh b/contrib/ci/jobs/5-deploy/job.sh @@ -1,14 +0,0 @@ -#!/bin/bash -set -exuo pipefail - -ARTIFACT_PATH="/artifacts/magnet-bank/${CI_COMMIT_REF}/*.deb" - -RSYNC_HOST="taler.host.internal" -RSYNC_PORT=424242 -RSYNC_PATH="incoming_packages/trixie-taler-ci/" -RSYNC_DEST="rsync://${RSYNC_HOST}/${RSYNC_PATH}" - - -rsync -vP \ - --port ${RSYNC_PORT} \ - ${ARTIFACT_PATH} ${RSYNC_DEST} diff --git a/contrib/ci/jobs/5-deploy/config.ini b/contrib/ci/jobs/6-deploy/config.ini diff --git a/contrib/ci/jobs/6-deploy/job.sh b/contrib/ci/jobs/6-deploy/job.sh @@ -0,0 +1,13 @@ +#!/bin/bash +set -exuo pipefail + +ARTIFACT_PATH="/artifacts/magnet-bank/${CI_COMMIT_REF}/*.deb" + +RSYNC_HOST="taler.host.internal" +RSYNC_PORT=424242 +RSYNC_PATH="incoming_packages/trixie-taler-ci/" +RSYNC_DEST="rsync://${RSYNC_HOST}/${RSYNC_PATH}" + +rsync -vP \ + --port ${RSYNC_PORT} \ + ${ARTIFACT_PATH} ${RSYNC_DEST}