diff options
author | Florian Dold <florian@dold.me> | 2023-07-05 20:30:23 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-07-05 20:30:23 +0200 |
commit | 273f6a52f590f27898babfd73ae1c4d72f672ef8 (patch) | |
tree | 4491618fbd8003f0bd22b3ffbcdaec5247bc2e19 | |
parent | cb2d2217d6a624a82d6f7331a5038b7ea5b2a5e0 (diff) | |
download | deployment-273f6a52f590f27898babfd73ae1c4d72f672ef8.tar.gz deployment-273f6a52f590f27898babfd73ae1c4d72f672ef8.tar.bz2 deployment-273f6a52f590f27898babfd73ae1c4d72f672ef8.zip |
sandcastle: granular, file-based tagging and rebuilding
-rw-r--r-- | sandcastle/buildconfig/README | 5 | ||||
-rw-r--r-- | sandcastle/buildconfig/exchange.tag | 1 | ||||
-rw-r--r-- | sandcastle/buildconfig/gnunet.tag | 1 | ||||
-rw-r--r-- | sandcastle/buildconfig/libeufin.tag | 1 | ||||
-rw-r--r-- | sandcastle/buildconfig/libmhd.tag | 1 | ||||
-rw-r--r-- | sandcastle/buildconfig/merchant-demos.tag | 1 | ||||
-rw-r--r-- | sandcastle/buildconfig/merchant.tag | 1 | ||||
-rw-r--r-- | sandcastle/buildconfig/sync.tag | 1 | ||||
-rw-r--r-- | sandcastle/buildconfig/tags.sh | 9 | ||||
-rw-r--r-- | sandcastle/buildconfig/wallet.tag | 1 | ||||
-rw-r--r-- | sandcastle/images/base/Dockerfile | 60 |
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" \ |