Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
deactivate clock_gettime on SunOS, as it does not work for threads.
[simgrid.git] / .appveyor.yml
index 366c1b2..401f8cd 100644 (file)
@@ -2,10 +2,13 @@
 #
 # Build logs: https://ci.appveyor.com/project/simgrid/simgrid
 
-# Documentation: https://www.appveyor.com/docs/
+# Documentation: https://www.appveyor.com/docs/
 #                https://www.appveyor.com/docs/installed-software/
 
-os: Visual Studio 2015
+image:
+  - Visual Studio 2015
+#  - Ubuntu
+
 version: "{build}"
 clone_depth: 1
 
@@ -14,58 +17,45 @@ init:
 - git config --global core.longpaths true
 - git config --global core.autocrlf input
 
+branches:
+  only:
+     - master
+     - appveyor
+
 environment:
   global:
     BOOST_ROOT: C:\Libraries\boost_1_60_0
-    TESH_ARGS: C:/projects/simgrid/bin/tesh --setenv srcdir=C:/projects/simgrid/examples/java --setenv classpath=C:/projects/simgrid/examples/java;C:/projects/simgrid/teshsuite/java;C:/projects/simgrid/simgrid.jar --cd C:/projects/simgrid/examples/java
 
 install:
 # Strawberry perl is the one to work with gcc; AppVeyor provides ActiveState perl, which is the one to work with visual.
-- choco install --limit-output strawberryperl --version 5.20.1.1
-- SET PATH=C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH%
+# This package is so outdated and broken that we cannot use it anymore. So we build without perl
+# - choco install --limit-output strawberryperl --version 5.20.1.1
+# - SET PATH=C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;%PATH%
 # Lua 
 #- choco install lua53
 # We need python v3
-- SET PATH=C:\Python35-x64;%PATH% # We need python v3
-# Appveyor does not provide a 64bits mingw-w64, only a 32 bits
-- choco install --limit-output mingw
-- SET PATH=C:\tools\mingw64\bin;%PATH% # Our mingw must be placed before Perl in the path
+- cmd: SET PATH=C:\Python37-x64;%PATH% # We need python v3
+# Use the mingw-w64 provided by Appveyor (must be placed before Perl in the path)
+- cmd: SET PATH=C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin\;%PATH%
 # Work around a bug on appveyor where the default sh is not the one I expect
 - rename "C:\Program Files\Git\usr\bin\sh.exe" "sh-ignored.exe"
+# We need pybind11. SimGrid will pick it automatically if the subdir is here
+- cmd: git clone --depth=1 https://github.com/pybind/pybind11.git
 
 build_script:
-- cmake -G "MinGW Makefiles" -Denable_lua=OFF -Denable_java=ON -Denable_smpi=OFF -Denable_mallocators=OFF -Denable_lto=OFF .
-- C:\tools\mingw64\bin\mingw32-make.exe VERBOSE=1
-- ctest --output-on-failure
-
-##test_script:
-## find  examples/java -name '*tesh'|sed 's|^|- perl %TESH_ARGS% C:/projects/simgrid/|' |sort
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/app/bittorrent/app_bittorrent.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/app/centralizedmutex/app_centralizedmutex.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/app/masterworker/app_masterworker.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/app/pingpong/app_pingpong.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/async/dsend/async_dsend.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/cloud/masterworker/cloud_masterworker.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/cloud/migration/cloud_migration.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/dht/chord/dht_chord.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/dht/kademlia/dht_kademlia.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/energy/consumption/energy_consumption.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/energy/vm/energy_vm.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/io/file/io_file.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/io/storage/io_storage.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/process/kill/process_kill.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/process/migration/process_migration.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/process/startkilltime/process_startkilltime.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/process/suspend/process_suspend.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/task/priority/task_priority.tesh
-#- perl %TESH_ARGS% C:/projects/simgrid/examples/java/trace/pingpong/trace_pingpong.tesh
+- cmake -G "MinGW Makefiles" -Denable_lua=OFF -Denable_documentation=OFF -Denable_java=ON -Denable_smpi=OFF -Denable_mallocators=OFF -Denable_lto=OFF .
+- mingw32-make.exe VERBOSE=1 java-all python-bindings # Only the Java and Python parts
+- ctest --output-on-failure -R java
+# Don't test python, as pybind11 seems too complex for mingw for now (mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1)
+# The observed failure is around the ForcefulKill exception, that seems badly caught somehow.
+# - ctest --output-on-failure -R python
 
 artifacts:
 - path: simgrid.jar
   name: jarfile
 
-# notifications:
-# - irc: "irc.debian.org#simgrid" # Not implemented by AppVeyor yet :(
-
-
-
+# IRC notifications, even if https://github.com/appveyor/ci/issues/88 is not closed yet
+on_failure:
+  - "python tools/appveyor-irc-notify.py simgrid [{project_name}:{branch}] {short_commit}: \"{message}\" ({author}) {color_red}Failed,Details: {build_url},Commit: {commit_url}"
+#on_success:
+#  - "python tools/appveyor-irc-notify.py simgrid [{project_name}:{branch}] {short_commit}: \"{message}\" ({author}) {color_green}Succeeded,Details: {build_url},Commit: {commit_url}"