[geos-commits] [SCM] GEOS branch main updated. b4ffacf814c0095b7631ed2e0b2757aaf3d6b33b

git at osgeo.org git at osgeo.org
Tue Mar 24 13:46:22 PDT 2026


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GEOS".

The branch, main has been updated
       via  b4ffacf814c0095b7631ed2e0b2757aaf3d6b33b (commit)
      from  afe57da9baff42e27afdbec613bb0fa8394eaba5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b4ffacf814c0095b7631ed2e0b2757aaf3d6b33b
Author: Mike Taves <mwtoews at gmail.com>
Date:   Wed Mar 25 09:45:58 2026 +1300

    CI: build container tags using docker/metadata-action (#1400)

diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml
index 07a0abb8c..0c755d659 100644
--- a/.github/workflows/container.yml
+++ b/.github/workflows/container.yml
@@ -9,6 +9,8 @@ on:
   push:
     branches:
       - main
+    tags:
+      - '*.*.*'
     paths-ignore:
       - 'web/**'
 
@@ -24,8 +26,17 @@ jobs:
 
     - uses: actions/checkout at v6
 
-    - name: Set up Docker Buildx
-      uses: docker/setup-buildx-action at v4
+    - name: Docker meta
+      id: meta
+      uses: docker/metadata-action at v6
+      with:
+        images: ghcr.io/libgeos/geosop
+        # generate Docker tags based on the following events/attributes
+        tags: |
+          type=ref,event=branch
+          type=semver,pattern={{major}}.{{minor}}
+          type=semver,pattern={{version}}
+          type=sha
 
     - name: Login to GitHub Container Registry
       uses: docker/login-action at v4
@@ -34,6 +45,9 @@ jobs:
         username: ${{ github.repository_owner }}
         password: ${{ secrets.GITHUB_TOKEN }}
 
+    - name: Set up Docker Buildx
+      uses: docker/setup-buildx-action at v4
+
     - name: Get Dockerfile
       run: |
         cp tools/ci/geosop/Dockerfile .
@@ -42,11 +56,6 @@ jobs:
       uses: docker/build-push-action at v7
       with:
         context: .
-        # platforms: linux/amd64,linux/arm64
-        platforms: linux/amd64
         push: true
-        tags: |
-            ghcr.io/libgeos/geosop:latest
-
-
-
+        tags: ${{ steps.meta.outputs.tags }}
+        labels: ${{ steps.meta.outputs.labels }}
diff --git a/tools/ci/geosop/Dockerfile b/tools/ci/geosop/Dockerfile
index 5854cd3bc..a20b783bf 100644
--- a/tools/ci/geosop/Dockerfile
+++ b/tools/ci/geosop/Dockerfile
@@ -1,28 +1,38 @@
-FROM docker.osgeo.org/geos/build-test:alpine AS base
-ARG VERSION=47f145e
+ARG BASEIMAGE="alpine:3.23"
+ARG GEOS_VERSION
+
+FROM ${BASEIMAGE} AS builder
+
+RUN apk add --no-cache \
+  cmake \
+  ninja \
+  g++ \
+  gcc
 
-WORKDIR /source
 ADD . /source
 
-#RUN wget --quiet https://github.com/libgeos/geos/archive/${VERSION}.tar.gz --output-document - \
-#| tar xz --directory=. --strip-components=1
+ARG GEOS_VERSION
+ENV GEOS_VERSION=${GEOS_VERSION}
+RUN if [ -n "${GEOS_VERSION}" ]; then \
+    rm -rf /source && mkdir /source && \
+    wget https://github.com/libgeos/geos/archive/${GEOS_VERSION}.tar.gz \
+      --output-document - | tar xz --directory=/source --strip-components=1; \
+  fi
 
-WORKDIR /build
-RUN cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_BENCHMARKS=OFF -D BUILD_TESTING=OFF /source \
-  && make install \
-  && cp bin/geosop /usr/local/bin/geosop
+RUN cmake -S /source -B /build -G Ninja \
+    -D CMAKE_BUILD_TYPE=Release \
+    -D CMAKE_INSTALL_LIBDIR=lib \
+    -D BUILD_BENCHMARKS=OFF \
+    -D BUILD_DOCUMENTATION=OFF \
+    -D BUILD_TESTING=OFF \
+  && cmake --build /build \
+  && cmake --install /build --prefix /install --strip
 
-WORKDIR /install/bin
-RUN cp --no-dereference /usr/local/bin/geos* . \
-  && for i in ./*; do strip -s $i 2>/dev/null || /bin/true; done
+FROM ${BASEIMAGE} AS runner
 
-WORKDIR /install/lib
-RUN cp --no-dereference /usr/local/lib*/libgeos*.so.* . \
-  && for i in ./*; do strip -s $i 2>/dev/null || /bin/true; done
-
-FROM alpine
 RUN apk add --no-cache libstdc++
-COPY --from=base /install/bin/geos* /usr/local/bin/
-COPY --from=base /install/lib/libgeos* /usr/local/lib/
+
+COPY --from=builder /install/bin/geosop /usr/local/bin/geosop
+COPY --from=builder /install/lib/libgeos.* /usr/local/lib/
 
 ENTRYPOINT ["geosop"]

-----------------------------------------------------------------------

Summary of changes:
 .github/workflows/container.yml | 27 +++++++++++++++--------
 tools/ci/geosop/Dockerfile      | 48 +++++++++++++++++++++++++----------------
 2 files changed, 47 insertions(+), 28 deletions(-)


hooks/post-receive
-- 
GEOS


More information about the geos-commits mailing list