From 691bb6e6c301ebe3c2eb975403abea9d227385b2 Mon Sep 17 00:00:00 2001
From: Giovanni La Mura <giovanni.lamura@inaf.it>
Date: Wed, 6 Mar 2024 12:02:40 +0100
Subject: [PATCH] Move compatibility builds to separate pipeline stage

---
 .gitlab-ci.yml | 44 +++++++++++++++++++++++++++++++++++---------
 1 file changed, 35 insertions(+), 9 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4d46632e..de78aea8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,14 +18,15 @@ workflow:
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
 
 stages:
+   - compatibility
    - build
    - run
    - test
 
-building_stage:
-   stage: build
+compatibility_stage:
+   stage: compatibility
    tags: ["np-tmcode"]
-   allow_failure: false
+   allow_failure: true
    artifacts:
       paths:
          - build/cluster/*
@@ -33,7 +34,6 @@ building_stage:
          - build/testing/*
          - build/trapping/*
          - build/libnptm/*
-         - doc/build/*
       exclude:
          - ".git*"
          - ".git/**/*"
@@ -52,18 +52,44 @@ building_stage:
       - echo "Running make with gnu compilers version 12..."
       - make clean && BUILDDIR=$PWD/../build_gnu12 CXX=g++-12 FC=gfortran-12 make -j
       - echo "Running make with flang version 16 and clang version 13..."
-      - make clean && BUILDDIR=$PWD/../build_clang13-flang16 CXX="clang++-13 -stdlib=libc++" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS=-L/usr/lib/llvm-16/lib make -j
+      - make clean && BUILDDIR=$PWD/../build_clang13-flang16 CXX="clang++-13 -stdlib=libstdc++ -I/usr/include/c++/12 -I/usr/include/x86_64-linux-gnu/c++/12" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/12" make -j
       - echo "Running make with flang version 16 and clang version 14..."
-      - make clean && BUILDDIR=$PWD/../build_clang14-flang16 CXX="clang++-14 -stdlib=libc++" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS=-L/usr/lib/llvm-16/lib make -j
+      - make clean && BUILDDIR=$PWD/../build_clang14-flang16 CXX="clang++-14 -stdlib=libstdc++ -I/usr/include/c++/12 -I/usr/include/x86_64-linux-gnu/c++/12" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/12" make -j
       - echo "Running make with flang version 16 and clang version 15..."
-      - make clean && BUILDDIR=$PWD/../build_clang15-flang16 CXX="clang++-15 -stdlib=libc++" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS=-L/usr/lib/llvm-16/lib make -j
+      - make clean && BUILDDIR=$PWD/../build_clang15-flang16 CXX="clang++-15 -stdlib=libstdc++ -I/usr/include/c++/12 -I/usr/include/x86_64-linux-gnu/c++/12" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/12" make -j
       - echo "Running make with flang version 16 and clang version 16..."
-      - make clean && BUILDDIR=$PWD/../build_clang16-flang16 CXX="clang++-16 -stdlib=libc++" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS=-L/usr/lib/llvm-16/lib make -j
+      - make clean && BUILDDIR=$PWD/../build_clang16-flang16 CXX="clang++-16 -stdlib=libstdc++ -I/usr/include/c++/12 -I/usr/include/x86_64-linux-gnu/c++/12" FC=flang-new-16 FCFLAGS=-O3 LDFLAGS="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/12" make -j
       - echo "Running make with Intel ifort and Intel icpx..."
       - make clean && PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH BUILDDIR=$PWD/../build_ifort-icpx CXX=icpx FC=ifort FCFLAGS="-O3 -diag-disable=10448" make -j
       - echo "Running make with Intel ifx and Intel icpx..."
       - make clean && LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH BUILDDIR=$PWD/../build_ifx-icpx CXX=icpx FC=ifx FCFLAGS=-O3 make -j
-      - echo "Finally running make with default compilers..."
+   
+building_stage:
+   stage: build
+   tags: ["np-tmcode"]
+   allow_failure: false
+   artifacts:
+      paths:
+         - build/cluster/*
+         - build/sphere/*
+         - build/testing/*
+         - build/trapping/*
+         - build/libnptm/*
+         - doc/build/*
+      exclude:
+         - ".git*"
+         - ".git/**/*"
+      expire_in: 2 hours
+   script:
+      # bash commands to be executed
+      - pwd
+      - hostname
+      - echo $CI_COMMIT_SHA
+      - echo $CI_COMMIT_BRANCH
+      - echo "Getting system info ..."
+      - cat /etc/os-release
+      - cd src
+      - echo "Running make with default compilers..."
       - make clean && make -j
       - make docs -j && make -C ../doc/build/latex -j
 
-- 
GitLab