commit fc6218c35a1f230a5d80697be098f58c1c9ff50c
parent 2ed3507f7eb974bc2f228d51ce6dd7644c20417c
Author: Antoine A <>
Date: Thu, 20 Nov 2025 12:49:18 +0100
common: improve ci
Diffstat:
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}