Commit 9ff4cced authored by Ramon Nou's avatar Ramon Nou
Browse files

Prepare 0.9.7 dependency profiles and Alpha11 CI images

parent 2b6ba47b
Loading
Loading
Loading
Loading
Loading
+1 −1
Changes for .gitlab-ci.yml: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ stages:
  - deploy

variables:
  VERSION:                      "0.9.6"
  VERSION:                      "0.9.7"
  SCRIPTS_DIR:                  "${CI_PROJECT_DIR}/scripts"
  CI_SCRIPTS_DIR:               "${CI_PROJECT_DIR}/scripts/ci"
  BUILD_PATH:                   "${CI_PROJECT_DIR}/gkfs/build"
+11 −0
Changes for CMake/FindRocksDB.cmake: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -74,6 +74,17 @@ else()
                 PATH_SUFFIXES lib)
endif()

# Read the selected headers, not a potentially stale pkg-config cache.
if(EXISTS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h")
    file(STRINGS "${ROCKSDB_INCLUDE_DIR}/rocksdb/version.h" _rocksdb_version_lines
         REGEX "^#define ROCKSDB_(MAJOR|MINOR|PATCH) [0-9]+")
    foreach(_component MAJOR MINOR PATCH)
        string(REGEX MATCH "ROCKSDB_${_component} ([0-9]+)" _match "${_rocksdb_version_lines}")
        set(_rocksdb_${_component} "${CMAKE_MATCH_1}")
    endforeach()
    set(RocksDB_VERSION_STRING "${_rocksdb_MAJOR}.${_rocksdb_MINOR}.${_rocksdb_PATCH}")
endif()

# Allow ROCKSDB_LIBRARY to be set manually, as the location of the rocksdb library
if(NOT ROCKSDB_LIBRARY)
  include(SelectLibraryConfigurations)
+4 −5
Changes for CMakeLists.txt: 4 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ cmake_minimum_required(VERSION 3.16)

project(
    GekkoFS
    VERSION 0.9.6
    VERSION 0.9.7
    LANGUAGES ASM CXX C
)

@@ -89,9 +89,6 @@ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
            string(REGEX MATCH
                "^v([0-9]+)\.([0-9]+)\.([0-9]+)-([0-9]+)-(.*)$"
                DROP ${GIT_VERSION})
            set(PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1})
            set(PROJECT_VERSION_MINOR ${CMAKE_MATCH_2})
            set(PROJECT_VERSION_PATCH ${CMAKE_MATCH_3})
            set(GKFS_COMMIT_GAP ${CMAKE_MATCH_4})
            set(GKFS_COMMIT_HASH ${CMAKE_MATCH_5})
            set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-snapshot+${GKFS_COMMIT_GAP}-${GKFS_COMMIT_HASH}")
@@ -195,7 +192,9 @@ if (GKFS_ENABLE_ROCKSDB)
        target_link_libraries(uring::uring INTERFACE PkgConfig::liburing)
    endif ()

    find_package(RocksDB REQUIRED)
    # Use our module to detect the version from the selected headers even when
    # CMAKE_FIND_PACKAGE_PREFER_CONFIG is enabled.
    find_package(RocksDB MODULE REQUIRED)
    message(STATUS "[${PROJECT_NAME}] RocksDB version ${RocksDB_VERSION}")
    message(STATUS "[${PROJECT_NAME}] RocksDB location ${RocksDB_DIR}")
endif ()
+71 −0
Changes for docker/0.9.7/apps/Dockerfile: 71 added lines, 0 removed lines.
Original line number Diff line number Diff line
FROM gekkofs/testing:0.9.7 AS builder

LABEL Description="Build environment for S3D-IO and WaComM++"

ARG DEBIAN_FRONTEND=noninteractive

RUN <<EOF
    apt-get update
    apt-get install -y --no-install-recommends \
    openmpi-bin openmpi-common gfortran libopenmpi-dev pnetcdf-bin libpnetcdf-dev libssl-dev wget nco nghttp2
    rm -rf /var/lib/apt/lists/* 
    apt-get clean
    apt-get autoclean
EOF

# --- Build S3D-IO ---
WORKDIR /build/S3D-IO
RUN git clone https://github.com/wkliao/S3D-IO.git . && \
    # Note: The PNETCDF_DIR and include path might need adjustment if libpnetcdf-dev installs to a different standard location
    # or if the base image structure changes.
    sed -i -e 's/PNETCDF_DIR = ${HOME}\/PNetCDF/PNETCDF_DIR = \/usr/' \
    -e "s|\(INC[[:space:]]*=[[:space:]]*-I\$(PNETCDF_DIR)/include\)|\1 -I$(dirname "$(find /usr/lib -name pnetcdf.mod -print -quit)")|" Makefile && \
    make && \
    mv s3d_io.x /usr/local/bin/s3d_io.x

# --- Build wacommplusplus ---
WORKDIR /build/wacommplusplus
RUN git clone https://github.com/CCMMMA/wacommplusplus.git . && \
    sed -i 's|\${LIBCURL}|/usr/lib/x86_64-linux-gnu/libcurl.so|g' CMakeLists.txt && \
    sed -i 's|https://zlib.net/zlib-1.3.1.tar.gz|https://zlib.net/fossils/zlib-1.3.1.tar.gz|g' CMakeLists.txt && \
    mkdir build && cd build && \
    cmake .. && \
    make -j8 && \
    mv wacommplusplus /usr/local/bin/wacommplusplus && \
    mv external /usr/local/lib/

# ---- Final Stage ----
FROM gekkofs/testing:0.9.7

LABEL Description="Debian-based environment to test GekkoFS with apps"
ARG DEBIAN_FRONTEND=noninteractive

# Install runtime dependencies
# libpnetcdf13 (or similar, check exact name with 'apt-cache search libpnetcdf')
# libssl might be libssl1.1 or libssl3 depending on Debian version in base image
RUN apt-get update && apt-get install -y --no-install-recommends \
    openmpi-bin openmpi-common libopenmpi-dev pnetcdf-bin libssl3 libcurl4 \
    wget nco nghttp2 \
    && rm -rf /var/lib/apt/lists/* \
    && apt-get clean && \
    mkdir -p /root/wacommplusplus/build/example /root/S3D-IO

# Copy built applications from the builder stage
COPY --from=builder /usr/local/bin/s3d_io.x /root/S3D-IO
COPY --from=builder /usr/local/bin/wacommplusplus /root/wacommplusplus/build
COPY --from=builder /usr/local/lib/external /root/wacommplusplus/build/external/


WORKDIR /root/wacommplusplus/build/example
COPY rms.tar.gz /root/wacommplusplus/build/example/input/
RUN mkdir -p input processed output restarts && \
    cd input && \
    tar xzf rms.tar.gz && \
    rm rms.tar.gz

# Copy configuration files
# These files (sources.json, wacomm.json) should be in the same directory as your Dockerfile
COPY sources.json /root/wacommplusplus/build/example
COPY wacomm.json /root/wacommplusplus/build/example

ENV LD_LIBRARY_PATH=/root/wacommplusplus/build/external/lib/
+10 −0
Changes for docker/0.9.7/apps/Makefile: 10 added lines, 0 removed lines.
Original line number Diff line number Diff line
.PHONY: all

amd64:
	docker build --platform linux/amd64 -t gekkofs/apps:0.9.7 .

aarch64:
	docker build --platform linux/arm64 -t gekkofs/apps:0.9.7 .

all:
	docker build -t gekkofs/apps:0.9.7 .
Loading