Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
New GH action for BatSim CI
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 13 Sep 2021 09:27:54 +0000 (11:27 +0200)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Mon, 13 Sep 2021 09:27:54 +0000 (11:27 +0200)
.github/workflows/ci-batsim.yml [new file with mode: 0644]
tools/jenkins/ci-batsim.sh [new file with mode: 0755]

diff --git a/.github/workflows/ci-batsim.yml b/.github/workflows/ci-batsim.yml
new file mode 100644 (file)
index 0000000..f850fa1
--- /dev/null
@@ -0,0 +1,34 @@
+name: CI BatSim
+
+on:
+  workflow_dispatch:
+  schedule:
+    - cron: '43 18 * * 0'
+
+jobs:
+  build:
+
+    runs-on: ubuntu-latest
+    container: simgrid/unstable
+
+    steps:
+      - uses: actions/checkout@v2
+      - name: Build and test BatSim
+        run: |
+          set -e
+          ./tools/jenkins/ci-batsim.sh
+
+      - name: Create the failure Message
+        if: ${{ failure() }}
+        run: |
+          echo "{\"attachments\": [{\"color\": \"#FF0000\", \"text\":\"@millian: BatSim failed to build on simgrid/unstable docker image! See ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \"}]}" > mattermost.json
+      - name: Create the success Message
+        if: ${{ success() }}
+        run: |
+          echo "{\"attachments\": [{\"color\": \"#00FF00\", \"text\":\"BatSim successfully built on simgrid/unstable docker image. ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \"}]}" > mattermost.json
+      - uses: mattermost/action-mattermost-notify@master
+        if: ${{ always() }}
+        env:
+          MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
+          MATTERMOST_CHANNEL: ${{ secrets.MATTERMOST_CHANNEL}}
+
diff --git a/tools/jenkins/ci-batsim.sh b/tools/jenkins/ci-batsim.sh
new file mode 100755 (executable)
index 0000000..7f532c5
--- /dev/null
@@ -0,0 +1,51 @@
+#! /bin/sh
+
+# Test this script locally as follows (rerun `docker pull simgrid/unstable` to get a fresh version).
+# cd <simgrid/tools/jenkins
+# docker run -it --rm --volume `pwd`:/source simgrid/unstable /source/ci-batsim.sh
+
+set -ex
+
+echo "XXXXXXXXXXXXXXXX Install APT dependencies"
+
+export SUDO=""
+$SUDO apt-get update
+$SUDO apt-get -y install gcc g++ git
+
+# Dependencies of BatSim
+# OK  simgrid-3.28
+# SRC intervalset-1.2.0
+# PKG rapidjson-1.1.0
+# ??  redox
+# PKG hiredis-1.0.0
+# PKG zeromq-4.3.4
+# PKG docopt.cpp-0.6.3
+# PKG pugixml-1.11.1
+# PKG gtest-1.10.0-dev
+$SUDO apt-get -y install meson pkg-config libpugixml-dev libgtest-dev rapidjson-dev python3-hiredis libzmq3-dev libdocopt-dev libboost-all-dev
+
+echo "XXXXXXXXXXXXXXXX Install intervalset"
+git clone https://framagit.org/batsim/intervalset.git
+cd intervalset 
+meson build --prefix=/usr
+cd build && ninja install
+cd ../..
+
+echo "XXXXXXXXXXXXXXXX Install redox"
+$SUDO apt-get -y install libhiredis-dev libev-dev cmake #for redox
+git clone --depth=1 --branch=install-pkg-config-file https://github.com/mpoquet/redox.git
+cd redox 
+cmake -DCMAKE_INSTALL_PREFIX=/usr -Dstatic_lib=OFF . && make install
+cp redox.pc /usr/lib/pkgconfig/
+cd ..
+
+echo "XXXXXXXXXXXXXXXX Install and test batsim"
+# install BatSim from their upstream git into the batsim.git directory
+git clone --depth 1 https://gitlab.inria.fr/batsim/batsim
+cd batsim
+meson build -Ddo_unit_tests=true
+ninja -C build
+meson test -C build
+
+echo "XXXXXXXXXXXXXXXX cat /batsim/build/meson-logs/testlog.txt"
+cat build/meson-logs/testlog.txt