Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add new entry in Release_Notes.
[simgrid.git] / .gitlab-ci.yml
index be34650..bbf969b 100644 (file)
-image: debian:testing-slim
+image: simgrid/build-deps
 
-.build: &build
+stages:
+ - build
+ - deploy
+
+ctest-debug:
+  stage: build
+  except:
+  - stable
   script:
-  - apt-get update
-  - apt-get install -y python3-pip cmake doxygen libboost-all-dev libboost-dev fig2dev
-  - pip3 install --requirement docs/requirements.txt 
-  - cmake -Denable_documentation=ON .
-  - make documentation
-  - mkdir docs/doxyoutput
-  - cp -r doc/xml docs/doxyoutput
-  - cd docs
-  - sphinx-build -M html source/ build/
-  - mv build/html ../public
+  - apt-get --allow-releaseinfo-change update
+  - apt install -y binutils xsltproc
+  - cmake -Denable_model-checking=OFF -Denable_documentation=OFF -Denable_coverage=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_testsuite_smpi_MPICH3=ON -Denable_testsuite_McMini=ON -Denable_compile_warnings=ON -DLTO_EXTRA_FLAG="auto" .
+  - make -j$(nproc) VERBOSE=1 all tests
+  - ctest -T Test -j$(nproc) --output-on-failure
+  - xsltproc ./tools/jenkins/ctest2junit.xsl Testing/"$( head -n 1 < Testing/TAG )"/Test.xml > CTestResults.xml
   artifacts:
     paths:
-    - public
+    - lib/
+    reports:
+      junit:
+      - CTestResults.xml
+    expire_in: 1 week
+    when: always
 
-pages:
-  <<: *build
+ctest-modelchecking:
+  stage: build
+  except:
+  - stable
+  script:
+  - apt-get --allow-releaseinfo-change update
+  - apt install -y binutils xsltproc clang
+  - cmake -Denable_model-checking=ON -Denable_documentation=OFF -Denable_coverage=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_testsuite_smpi_MPICH3=OFF -Denable_testsuite_McMini=OFF -Denable_compile_warnings=ON -DLTO_EXTRA_FLAG="auto" -DCMAKE_C_COMPILER=/usr/bin/clang  -DCMAKE_CXX_COMPILER=/usr/bin/clang++ .
+  - make -j$(nproc) VERBOSE=1 all tests
+  - ctest -T Test -j$(nproc) --output-on-failure
+  - xsltproc ./tools/jenkins/ctest2junit.xsl Testing/"$( head -n 1 < Testing/TAG )"/Test.xml > CTestResults.xml
+  artifacts:
+    paths:
+    - lib/
+    reports:
+      junit:
+      - CTestResults.xml
+    expire_in: 1 week
+    when: always
+
+ctest-distcheck:
+  stage: build
   only:
-  - master
+  - merge_requests
+  script:
+  - apt-get --allow-releaseinfo-change update
+  - apt install -y binutils
+  - cmake .
+  - make distcheck-configure
+
+release:
+  stage: build
+  only:
+  - stable
+  script:
+  - apt-get --allow-releaseinfo-change update
+  - apt install -y binutils wget unzip zip
+  - cmake -Denable_documentation=OFF -Dminimal-bindings=ON -Denable_compile_optimizations=ON -Denable_smpi=OFF -DLTO_EXTRA_FLAG="auto" .
+  - make VERBOSE=1 -j$(nproc) dist
+  artifacts:
+    paths:
+    - simgrid-*.tar.gz
 
-test:
-  <<: *build
+pip:
+  image:
+    name: python:3-bullseye
+    entrypoint: ['/bin/bash', '-c', 'ln -snf /bin/bash /bin/sh && /bin/bash -c $0' ]
+  stage: build
   except:
+  - stable
+  script:
+  - apt-get --allow-releaseinfo-change update
+  - apt install -y python3-pip cmake libboost-dev g++ gcc pybind11-dev
+  - python3 setup.py sdist
+  - cd dist
+  - tar xfz simgrid*.tar.gz
+  - cd simgrid-*/
+  - python3 setup.py build
+
+pages:
+  stage: deploy
+  script:
+  - apt install -y python3-breathe python3-sphinx python3-sphinx-rtd-theme python3-sphinx-copybutton python3-sphinx-tabs
+ # - pip3 install --requirement docs/requirements.txt # Forbidden in Debian:12
+  - cd docs
+  - LC_ALL=C.UTF-8 ./Build.sh
+  - mv build/html ../public
+  # - The CSS contains a reference to a font or something, not something we gonna fix on our side
+# not installed   - linkchecker --ignore-url='.*\.css$' ../public
+  # From time to time, we should check external links with the
+  # following, but it has a lot of false positive
+  # - linkchecker --ignore-url='.*\.css$' --check-extern ../public
+  artifacts:
+    paths:
+    - public
+  only:
   - master
+  needs: ["ctest-debug"]