Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix some sphinx warnings
[simgrid.git] / .gitlab-ci.yml
index be34650..b763d33 100644 (file)
@@ -1,27 +1,69 @@
-image: debian:testing-slim
+image: simgrid/build-deps
 
-.build: &build
+stages:
+ - build
+ - test
+
+pages:
+  stage: test
   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
+  - cmake -Denable_model-checking=OFF -Denable_documentation=ON -Denable_compile_optimizations=OFF -Denable_smpi=OFF -Dpython=ON .
+  - make -j4
+  - pip3 install --requirement docs/requirements.txt
   - cd docs
-  - sphinx-build -M html source/ build/
+  - 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.
+  - 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
-
-pages:
-  <<: *build
   only:
   - master
 
-test:
-  <<: *build
+ctest:
+  stage: build
   except:
-  - master
+  - stable
+  script:
+  - 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 .
+  - make VERBOSE=1 all tests && ctest --output-on-failure
+
+pip:
+  image: debian:testing
+  stage: build
+  except:
+  - stable
+  script:
+  - apt 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
+
+release:
+  stage: build
+  only:
+  - stable
+  script:
+  - apt 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_lib_in_jar=ON -Dminimal-bindings=ON -Denable_compile_optimizations=ON -Denable_smpi=OFF .
+  - make VERBOSE=1 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=`printf '#include "simgrid/config.h"\n#if SIMGRID_VERSION_PATCH\nSIMGRID_VERSION_MAJOR.SIMGRID_VERSION_MINOR.SIMGRID_VERSION_PATCH\n#else\nSIMGRID_VERSION_MAJOR.SIMGRID_VERSION_MINOR\n#endif'|gcc -E - -Iinclude|tail -1|sed 's/ //g'`
+  - wget https://ci.inria.fr/simgrid/job/SimGrid/build_mode=Debug,node=osx/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