Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix test with ASan.
[simgrid.git] / .gitlab-ci.yml
index 288f181..cb45b58 100644 (file)
@@ -1,21 +1,92 @@
 image: simgrid/build-deps
 
+stages:
+ - build
+ - deploy
+
+ctest:
+  stage: build
+  except:
+  - stable
+  script:
+  - apt-get --allow-releaseinfo-change update
+  - apt install -y xsltproc
+  - cmake -Denable_model-checking=OFF -Denable_documentation=OFF -Denable_coverage=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=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:
+    - lib/
+    reports:
+      junit:
+      - CTestResults.xml
+    expire_in: 1 week
+    when: always
+
+
+release:
+  stage: build
+  only:
+  - stable
+  script:
+  - apt-get --allow-releaseinfo-change update
+  - apt install -y binutils-x86-64-linux-gnu wget unzip zip
+  # Build the linux version of the jarfile without the boost dependency
+  - cmake -Denable_documentation=OFF -Denable_java=ON -Denable_msg=ON -Denable_lib_in_jar=ON -Dminimal-bindings=ON -Denable_compile_optimizations=ON -Denable_smpi=OFF -DLTO_EXTRA_FLAG="auto" .
+  - make VERBOSE=1 -j$(nproc) dist simgrid simgrid-java_jar
+# This cannot work anymore because Java is now built by the modelchecker jenkins configuration, that is not on macosx
+# Please use the github action instead
+#  - make VERBOSE=1 -j$(nproc) dist simgrid simgrid-java_jar
+#  # Get the foreign architectures
+#  - wget https://ci.appveyor.com/api/projects/mquinson/simgrid/artifacts/simgrid.jar -O simgrid-windows.jar
+#  - export SGVER=`grep SimGrid ChangeLog|head -n1|sed -e 's/SimGrid (//' -e 's/).*//'`
+#  - wget https://ci.inria.fr/simgrid/job/SimGrid/build_mode=Debug,node=macos/lastSuccessfulBuild/artifact/build/simgrid-${SGVER}/build/simgrid.jar -O simgrid-mac.jar
+#  # Open all jar files, and strip them
+#  - mkdir content ; cd content
+#  - for j in  ../simgrid.jar ../simgrid-windows.jar ../simgrid-mac.jar ; do unzip -n $j ; done
+#  - strip NATIVE/*/*/*.so
+#  - x86_64-linux-gnu-strip NATIVE/*/*/lib*dll
+#  - zip -r ../simgrid-${SGVER}.jar *
+  artifacts:
+    paths:
+#    - simgrid-*.jar
+    - simgrid-*.tar.gz
+
+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:
   - pip3 install --requirement docs/requirements.txt
-  - cmake -Denable_model-checking=OFF -Denable_documentation=OFF -Denable_coverage=OFF -Denable_java=OFF -Denable_lua=OFF -Denable_compile_optimizations=OFF -Denable_smpi=OFF .
-  - make -j4 simgrid_python
-  - cd docs
+  - cd docs/source/_ext/javasphinx; python3 setup.py build; python3 setup.py install
+  - cd ../../..
   - 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
+  # - The javasphinx output does not exist in the git, so the "edit on FramaGit" link is broken.
+  #   I'd like to report this as a bug, but javasphinx seems abandonned upstream.
+#not installed   - linkchecker --ignore-url='.*\.css$' --ignore-url=public/java/org ../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$' --ignore-url=public/java/org --check-extern ../public
   artifacts:
     paths:
     - public
   only:
   - master
-
-ctest:
-  script:
-  - apt install curl unzip
-  - cmake -Denable_model-checking=OFF -Denable_documentation=OFF -Denable_coverage=ON -Denable_java=ON -Denable_lua=OFF -Denable_compile_optimizations=ON -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=ON -Denable_compile_warnings=ON .
-  - ./tools/internal/travis-sonarqube.sh make VERBOSE=1 && ctest --output-on-failure
+  needs: ["ctest"]