Commit 09befe84 authored by Ramon Nou's avatar Ramon Nou
Browse files

Merge branch 'mr1_infrastructure' into 'master'

MR1: Update dependency scripts to 0.9.6

Updated scripts and dockers to 0.9.6

See merge request !274
parents d2adbfb3 9820b6a4
Loading
Loading
Loading
Loading
Loading
+18 −19
Original line number Diff line number Diff line
@@ -28,14 +28,14 @@ variables:


# base image
image: gekkofs/core:0.9.5
image: gekkofs/core:0.9.6

################################################################################
## Validating
################################################################################
check format:
  stage: lint
  image: gekkofs/linter:0.9.5
  image: gekkofs/linter:0.9.6
  needs: []
  script:
    - ${SCRIPTS_DIR}/check_format.sh
@@ -49,7 +49,7 @@ check format:
################################################################################
gkfs:
  stage: build
  image: gekkofs/deps:0.9.5
  image: gekkofs/deps:0.9.6
  interruptible: true
  needs: []
  script:
@@ -88,7 +88,7 @@ gkfs:
## == tests for scripts ====================
scripts:
  stage: test
  image: gekkofs/testing:0.9.5
  image: gekkofs/testing:0.9.6
  needs: []
  script:
    - mkdir -p ${BUILD_PATH}/tests/scripts
@@ -103,7 +103,7 @@ scripts:
## == integration tests for gkfs ===========
gkfs:allintegration:
  stage: test
  image: gekkofs/testing:0.9.5
  image: gekkofs/testing:0.9.6
  interruptible: true
  needs: ['gkfs']

@@ -151,12 +151,12 @@ gkfs:allintegration:
## == integration tests for gkfs ===========
gkfs:integration:
  stage: test
  image: gekkofs/testing:0.9.5
  image: gekkofs/testing:0.9.6
  interruptible: true
  needs: ['gkfs']  # we need to remove gkfs dependencies on manual
  parallel:
    matrix:
      - SUBTEST: [ data, status, syscalls, directories, operations, position, shell, rename ]
      - SUBTEST: [ data, status, syscalls, directories, operations, position, shell, rename, migration, startup, error_handling, resilience, compatibility ]
  rules:
    - if: '$CI_MERGE_REQUEST_EVENT_TYPE == "detached"'
      when: never
@@ -209,7 +209,7 @@ gkfs:integration:
## == integration tests for gkfwd ==========
gkfwd:integration:
  stage: test
  image: gekkofs/testing:0.9.5
  image: gekkofs/testing:0.9.6
  interruptible: true
  needs: ['gkfs']
  parallel:
@@ -267,7 +267,7 @@ gkfwd:integration:
## == unit tests for gkfs ==================
gkfs:unit:
  stage: test
  image: gekkofs/testing:0.9.5
  image: gekkofs/testing:0.9.6
  needs: ['gkfs']
  script:
    ## Add path to mkfs.kreon
@@ -307,7 +307,7 @@ gkfs:unit:
## == unit tests for gkfs ==================
gkfs:app:
  stage: test
  image: gekkofs/apps:0.9.5
  image: gekkofs/apps:0.9.6
  needs: ['gkfs']
  script:
    ## Add path to mkfs.kreon
@@ -348,7 +348,7 @@ gkfs:app:
## == java tests for gkfs ==================
gkfs:java:
  stage: test
  image: gekkofs/java:0.9.5
  image: gekkofs/java:0.9.6
  needs: ['gkfs']
  script:
    ## Add path to mkfs.kreon
@@ -389,7 +389,7 @@ gkfs:java:
## == python tests for gkfs ==================
gkfs:python:
  stage: test
  image: gekkofs/testing:0.9.5
  image: gekkofs/testing:0.9.6
  needs: ['gkfs']
  script:
    ## Add path to mkfs.kreon
@@ -432,7 +432,7 @@ gkfs:python:
################################################################################
documentation:
  stage: docs
  image: gekkofs/docs:0.9.5
  image: gekkofs/docs:0.9.6
  needs: []
  rules:
    # we only build the documentation automatically if we are on the
@@ -465,7 +465,7 @@ documentation:
## == coverage baseline ====================
coverage:baseline:
  stage: report
  image: gekkofs/testing:0.9.5
  image: gekkofs/testing:0.9.6
  interruptible: true
  needs: ['gkfs']

@@ -496,7 +496,7 @@ coverage:baseline:

coverage:
  stage: report
  image: gekkofs/testing:0.9.5
  image: gekkofs/testing:0.9.6
  #needs: [ 'coverage:baseline', 'gkfs:integration', 'gkfs:unit', 'gkfwd:integration']
  needs: [ 'coverage:baseline', 'gkfs:allintegration', 'gkfs:unit', 'gkfs:app', 'gkfs:java', 'gkfs:python' ]
  script:
@@ -528,12 +528,11 @@ coverage:

cppcheck:
  stage: report
  image: gekkofs/testing:0.9.5
  needs: [ 'gkfs:allintegration', 'gkfs:unit']
  image: gekkofs/testing:0.9.6
  needs: [ 'gkfs']
  script:
    - cd ${CI_PROJECT_DIR}
    - rm -rf external gkfs
    - cppcheck -I/usr/local/include --xml --enable=warning,style,performance --force ${CI_PROJECT_DIR} 2> cppcheck_out.xml 
    - cppcheck --enable=all --std=c++17 --suppress=missingIncludeSystem --xml --xml-version=2 src include tests -i external -i builds -i gkfs 2> cppcheck_out.xml
    - cppcheck-codequality --input-file cppcheck_out.xml --output-file cppcheck.json
  #change paths
  after_script:
+70 −0
Original line number Diff line number Diff line
FROM gekkofs/testing:0.9.6 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\/usr\/lib\/x86_64-linux-gnu\/fortran\/gfortran-mod-15/' 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 && \
    mkdir build && cd build && \
    cmake .. && \
    make -j$(nproc) && \
    mv wacommplusplus /usr/local/bin/wacommplusplus && \
    mv external /usr/local/lib/

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

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
Original line number Diff line number Diff line
.PHONY: all

amd64:
	docker build --platform amd64 -t gekkofs/apps:0.9.6 .

aarch64:
	docker build --platform aarch64 -t gekkofs/apps:0.9.6 .

all:
	docker build -t gekkofs/apps:0.9.6 .
+74.7 MiB

File added.

No diff preview for this file type.

+27 −0
Original line number Diff line number Diff line
{
    "type": "FeatureCollection",
    "crs": {
        "type": "name",
        "properties": {
            "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
        }
    },
    "features": [
        {
            "type": "Feature",
            "properties": {
                "start": -1.0,
                "end": -1.0,
                "mode": 1,
                "particlesPerHour": 100,
                "depth": 0.0,
                "id": "1"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [
                    14.972061,
                    40.343286
                ]
            }
        } ] }
 No newline at end of file
Loading