Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Propagate const attribute (sonar).
[simgrid.git] / .appveyor.yml
1 # This file automatize the testing of SimGrid on Windows using the appveyor.com continuous integration service
2 #
3 # Build logs: https://ci.appveyor.com/project/simgrid/simgrid
4
5 # Documentation: https://www.appveyor.com/docs/
6 #                https://www.appveyor.com/docs/installed-software/
7
8 image:
9   - Visual Studio 2019
10 #  - Ubuntu
11
12 version: "{build}"
13 clone_depth: 1
14
15 # scripts that are called at very beginning, before repo cloning
16 init:
17 - git config --global core.longpaths true
18 - git config --global core.autocrlf input
19
20 branches:
21   only:
22      - master
23      - appveyor
24
25 environment:
26   global:
27     BOOST_ROOT: C:\Libraries\boost_1_77_0
28
29 install:
30 # Strawberry perl is the one to work with gcc; AppVeyor provides ActiveState perl, which is the one to work with visual.
31 # This package is so outdated and broken that we cannot use it anymore. So we build without perl
32 # - choco install --limit-output strawberryperl --version 5.20.1.1
33 # - SET PATH=C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH%
34 # We need python v3
35 - cmd: SET PATH=C:\Python37-x64;%PATH% # We need python v3
36 # Ugly hack to ignore versions 3.8 and later of Python
37 - rename "C:\Python38-x64\python.exe" "python-ignored.exe"
38 - rename "C:\Python39-x64\python.exe" "python-ignored.exe"
39 - rename "C:\Python310-x64\python.exe" "python-ignored.exe"
40 # Use the mingw-w64 provided by Appveyor (must be placed before Perl in the path)
41 - cmd: SET PATH=C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\;%PATH%
42 # Work around a bug on appveyor where the default sh is not the one I expect
43 - rename "C:\Program Files\Git\usr\bin\sh.exe" "sh-ignored.exe"
44 # We need pybind11. SimGrid will pick it automatically if the subdir is here
45 - cmd: git clone --branch stable --depth=1 https://github.com/pybind/pybind11.git
46
47 before_build:
48   - cmd: if not exist C:\"Program Files"\Eigen\include\eigen3\Eigen\Core (
49             curl -LO https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz &&
50             cmake -E tar zxf eigen-3.4.0.tar.gz &&
51             cd eigen-3.4.0 &&
52             mkdir build &&
53             cd build &&
54             cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=C:\projects .. &&
55             cmake --build . --target install &&
56             cd ..\..
57          ) else (echo Using cached Eigen3)
58
59 build_script:
60 - cmake -G "MinGW Makefiles" -Denable_documentation=OFF -Denable_java=ON -Denable_msg=ON -Denable_smpi=OFF -Denable_mallocators=OFF -Denable_lto=OFF .
61 - mingw32-make.exe VERBOSE=1 java-all python-bindings # Only the Java and Python parts
62 - ctest --output-on-failure -R java
63 - ctest --output-on-failure -R python
64
65 artifacts:
66 - path: simgrid.jar
67   name: jarfile
68
69 # IRC notifications, even if https://github.com/appveyor/ci/issues/88 is not closed yet
70 on_failure:
71   - "python tools/appveyor-irc-notify.py simgrid [{project_name}:{branch}] {short_commit}: \"{message}\" ({author}) {color_red}Failed,Details: {build_url},Commit: {commit_url}"
72 #on_success:
73 #  - "python tools/appveyor-irc-notify.py simgrid [{project_name}:{branch}] {short_commit}: \"{message}\" ({author}) {color_green}Succeeded,Details: {build_url},Commit: {commit_url}"