summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-07-05 20:30:23 +0200
committerFlorian Dold <florian@dold.me>2023-07-05 20:30:23 +0200
commit273f6a52f590f27898babfd73ae1c4d72f672ef8 (patch)
tree4491618fbd8003f0bd22b3ffbcdaec5247bc2e19
parentcb2d2217d6a624a82d6f7331a5038b7ea5b2a5e0 (diff)
downloaddeployment-273f6a52f590f27898babfd73ae1c4d72f672ef8.tar.gz
deployment-273f6a52f590f27898babfd73ae1c4d72f672ef8.tar.bz2
deployment-273f6a52f590f27898babfd73ae1c4d72f672ef8.zip
sandcastle: granular, file-based tagging and rebuilding
-rw-r--r--sandcastle/buildconfig/README5
-rw-r--r--sandcastle/buildconfig/exchange.tag1
-rw-r--r--sandcastle/buildconfig/gnunet.tag1
-rw-r--r--sandcastle/buildconfig/libeufin.tag1
-rw-r--r--sandcastle/buildconfig/libmhd.tag1
-rw-r--r--sandcastle/buildconfig/merchant-demos.tag1
-rw-r--r--sandcastle/buildconfig/merchant.tag1
-rw-r--r--sandcastle/buildconfig/sync.tag1
-rw-r--r--sandcastle/buildconfig/tags.sh9
-rw-r--r--sandcastle/buildconfig/wallet.tag1
-rw-r--r--sandcastle/images/base/Dockerfile60
11 files changed, 45 insertions, 37 deletions
diff --git a/sandcastle/buildconfig/README b/sandcastle/buildconfig/README
new file mode 100644
index 0000000..005630f
--- /dev/null
+++ b/sandcastle/buildconfig/README
@@ -0,0 +1,5 @@
+These files determine the git tag from which the respective components are
+built in the base Docker image.
+
+They are in separate files to make modification checking with
+staged Docker builds work nicely.
diff --git a/sandcastle/buildconfig/exchange.tag b/sandcastle/buildconfig/exchange.tag
new file mode 100644
index 0000000..dafe884
--- /dev/null
+++ b/sandcastle/buildconfig/exchange.tag
@@ -0,0 +1 @@
+v0.9.3-dev.3
diff --git a/sandcastle/buildconfig/gnunet.tag b/sandcastle/buildconfig/gnunet.tag
new file mode 100644
index 0000000..c6eeb38
--- /dev/null
+++ b/sandcastle/buildconfig/gnunet.tag
@@ -0,0 +1 @@
+v0.19.5-talerdev.2
diff --git a/sandcastle/buildconfig/libeufin.tag b/sandcastle/buildconfig/libeufin.tag
new file mode 100644
index 0000000..cb27af9
--- /dev/null
+++ b/sandcastle/buildconfig/libeufin.tag
@@ -0,0 +1 @@
+v0.9.3-dev.1
diff --git a/sandcastle/buildconfig/libmhd.tag b/sandcastle/buildconfig/libmhd.tag
new file mode 100644
index 0000000..17ab5bf
--- /dev/null
+++ b/sandcastle/buildconfig/libmhd.tag
@@ -0,0 +1 @@
+v0.9.75
diff --git a/sandcastle/buildconfig/merchant-demos.tag b/sandcastle/buildconfig/merchant-demos.tag
new file mode 100644
index 0000000..cb27af9
--- /dev/null
+++ b/sandcastle/buildconfig/merchant-demos.tag
@@ -0,0 +1 @@
+v0.9.3-dev.1
diff --git a/sandcastle/buildconfig/merchant.tag b/sandcastle/buildconfig/merchant.tag
new file mode 100644
index 0000000..d47a5c3
--- /dev/null
+++ b/sandcastle/buildconfig/merchant.tag
@@ -0,0 +1 @@
+v0.9.3-dev.2
diff --git a/sandcastle/buildconfig/sync.tag b/sandcastle/buildconfig/sync.tag
new file mode 100644
index 0000000..d47a5c3
--- /dev/null
+++ b/sandcastle/buildconfig/sync.tag
@@ -0,0 +1 @@
+v0.9.3-dev.2
diff --git a/sandcastle/buildconfig/tags.sh b/sandcastle/buildconfig/tags.sh
deleted file mode 100644
index 67fd145..0000000
--- a/sandcastle/buildconfig/tags.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-# Current stable tags for all components
-TAG_EXCHANGE="v0.9.2"
-TAG_GNUNET="v0.19.3"
-TAG_LIBEUFIN="v0.9.2"
-TAG_LIBMHD="v0.9.75"
-TAG_MERCHANT="v0.9.2"
-TAG_MERCHANT_DEMOS="v0.9.3-dev.1"
-TAG_SYNC="v0.9.2"
-TAG_WALLET="v0.9.3-dev.10"
diff --git a/sandcastle/buildconfig/wallet.tag b/sandcastle/buildconfig/wallet.tag
new file mode 100644
index 0000000..439a7cf
--- /dev/null
+++ b/sandcastle/buildconfig/wallet.tag
@@ -0,0 +1 @@
+v0.9.3-dev.15
diff --git a/sandcastle/images/base/Dockerfile b/sandcastle/images/base/Dockerfile
index 7bf6e65..d43ab65 100644
--- a/sandcastle/images/base/Dockerfile
+++ b/sandcastle/images/base/Dockerfile
@@ -46,9 +46,10 @@ RUN pip3 install --break-system-packages requests click poetry uwsgi htmlark
FROM base-system AS mhd
WORKDIR /
-COPY buildconfig/tags.sh tags.sh
-RUN . /tags.sh && git clone git://git.gnunet.org/libmicrohttpd \
- --branch ${TAG_LIBMHD:-master}
+COPY buildconfig/libmhd.tag /buildconfig/
+RUN TAG=$(cat /buildconfig/libmhd.tag) && \
+ git clone git://git.gnunet.org/libmicrohttpd \
+ --branch $TAG
WORKDIR /libmicrohttpd
RUN ./bootstrap
RUN ./configure --disable-doc
@@ -56,9 +57,11 @@ RUN make install
WORKDIR /
FROM mhd AS gnunet
+COPY buildconfig/gnunet.tag /buildconfig/
WORKDIR /
-RUN . /tags.sh && git clone git://git.gnunet.org/gnunet \
- --branch ${TAG_GNUNET:-master}
+RUN TAG=$(cat /buildconfig/gnunet.tag) && \
+ git clone git://git.gnunet.org/gnunet \
+ --branch $TAG
WORKDIR /gnunet
RUN ./bootstrap
RUN ./configure --enable-logging=verbose --disable-documentation
@@ -67,20 +70,11 @@ WORKDIR /
FROM gnunet AS exchange
WORKDIR /
-RUN . /tags.sh && git clone git://git.taler.net/exchange \
- --branch ${TAG_EXCHANGE:-master}
+COPY buildconfig/exchange.tag /buildconfig/
+RUN TAG=$(cat /buildconfig/exchange.tag) && \
+ git clone git://git.taler.net/exchange \
+ --branch $TAG
WORKDIR /exchange
-RUN if . /tags.sh && test "${TAG_EXCHANGE:-}" = "v0.9.0"; then \
- # Init Gana and checkout the v0.9.0-compatible commit.
- git submodule init contrib/gana; \
- git submodule update --remote contrib/gana; \
- # Note: without init first, the following checkout hits "reference is not a tree".
- git -C contrib/gana checkout 6b9824cb4d4561f1167c7f518998a226a82222d6; \
- # Remove master branch tracking the remote
- git -C contrib/gana branch -d master; \
- git -C contrib/gana remote set-url origin .; \
- git -C contrib/gana branch master; \
-fi
RUN ./bootstrap
RUN ./configure CFLAGS="-ggdb -O0" --enable-logging=verbose --disable-doc
RUN make install
@@ -88,8 +82,10 @@ WORKDIR /
FROM exchange AS merchant
WORKDIR /
-RUN . /tags.sh && git clone git://git.taler.net/merchant \
- --branch ${TAG_MERCHANT:-master}
+COPY buildconfig/merchant.tag /buildconfig/
+RUN TAG=$(cat /buildconfig/merchant.tag) && \
+ git clone git://git.taler.net/merchant \
+ --branch $TAG
WORKDIR /merchant
RUN ./bootstrap
RUN ./configure CFLAGS="-ggdb -O0" \
@@ -100,8 +96,10 @@ WORKDIR /
FROM base-system AS libeufin
WORKDIR /
-RUN . /tags.sh && git clone git://git.taler.net/libeufin \
- --branch ${TAG_LIBEUFIN:-master}
+COPY buildconfig/libeufin.tag /buildconfig/
+RUN TAG=$(cat buildconfig/libeufin.tag) && \
+ git clone git://git.taler.net/libeufin \
+ --branch $TAG
WORKDIR /libeufin
RUN ./bootstrap
RUN ./configure
@@ -110,8 +108,10 @@ WORKDIR /
FROM base-system AS taler-merchant-demos
WORKDIR /
-RUN . /tags.sh && git clone git://git.taler.net/taler-merchant-demos \
- --branch ${TAG_MERCHANT_DEMOS:-master}
+COPY buildconfig/merchant-demos.tag /buildconfig/
+RUN TAG=$(cat buildconfig/merchant-demos.tag) && \
+ git clone git://git.taler.net/taler-merchant-demos \
+ --branch $TAG
WORKDIR /taler-merchant-demos
RUN ./bootstrap
RUN ./configure
@@ -120,8 +120,10 @@ WORKDIR /
FROM base-system AS wallet-core
WORKDIR /
-RUN . /tags.sh && git clone git://git.taler.net/wallet-core \
- --branch ${TAG_WALLET:-master}
+COPY buildconfig/wallet.tag /buildconfig/
+RUN TAG=$(cat /buildconfig/wallet.tag) && \
+ git clone git://git.taler.net/wallet-core \
+ --branch $TAG
RUN npm install -g pnpm@^7.0.0
WORKDIR /wallet-core
RUN ./bootstrap
@@ -135,9 +137,11 @@ RUN make install
WORKDIR /
FROM merchant AS sync
+COPY buildconfig/sync.tag /buildconfig/
WORKDIR /
-RUN . /tags.sh && git clone git://git.taler.net/sync \
- --branch ${TAG_SYNC:-master}
+RUN TAG=$(cat buildconfig/sync.tag) && \
+ git clone git://git.taler.net/sync \
+ --branch $TAG
WORKDIR /sync
RUN ./bootstrap
RUN ./configure CFLAGS="-ggdb -O0" \