summaryrefslogtreecommitdiff
path: root/packaging/ng/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/ng/build.sh')
-rwxr-xr-xpackaging/ng/build.sh67
1 files changed, 67 insertions, 0 deletions
diff --git a/packaging/ng/build.sh b/packaging/ng/build.sh
new file mode 100755
index 0000000..2523319
--- /dev/null
+++ b/packaging/ng/build.sh
@@ -0,0 +1,67 @@
+#!/usr/bin/env bash
+
+set -eu
+
+usage() {
+ echo Usage: $0 DISTRO >&2
+ exit 1
+}
+
+if [[ $# != 1 ]]; then
+ usage
+fi
+
+LABEL=$1
+IMAGE_TAG=taler-packaging-$LABEL:latest
+DOCKERFILE=distros/Dockerfile.$LABEL
+PKGDIR=packages/$LABEL
+
+if [[ ! -e "$DOCKERFILE" ]]; then
+ echo Need $DOCKERFILE to build $LABEL >&2
+ exit 1
+fi
+
+
+function build_base() {
+ echo "Building $IMAGE_TAG from $DOCKERFILE"
+ # Build the base image. Usually fast because it's cached.
+ podman build -t $IMAGE_TAG -f $DOCKERFILE .
+}
+
+function run() {
+ SCRIPT=$1
+ shift
+ mkdir -p $PKGDIR
+ mkdir -p cache
+ podman run -it --entrypoint=/bin/bash \
+ --mount type=bind,source="$(pwd)"/buildscripts,target=/buildscripts,readonly \
+ --mount type=bind,source="$(pwd)"/buildconfig,target=/buildconfig,readonly \
+ --mount type=bind,source="$(pwd)"/$PKGDIR,target=/pkgdir \
+ $IMAGE_TAG "/buildscripts/$SCRIPT" "$@"
+}
+
+function debug() {
+ mkdir -p $PKGDIR
+ podman run -it --entrypoint=/bin/bash \
+ --mount type=bind,source="$(pwd)"/buildscripts,target=/buildscripts,readonly \
+ --mount type=bind,source="$(pwd)"/buildconfig,target=/buildconfig,readonly \
+ --mount type=bind,source="$(pwd)"/$PKGDIR,target=/pkgdir \
+ $IMAGE_TAG -i
+}
+
+function build_all() {
+ run generic.sh gnunet
+ run generic.sh gnunet-gtk
+ run generic.sh taler-exchange
+ run generic.sh taler-merchant
+ run generic.sh sync
+ run generic.sh anastasis
+ run generic.sh anastasis-gtk
+ run generic.sh libeufin
+ run generic.sh taler-merchant-demos
+ run generic.sh taler-wallet-cli packages/taler-wallet-cli
+ run generic.sh taler-harness packages/taler-harness
+ run generic.sh libeufin
+}
+
+build_all