Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
39d03c27d6f1f77b0ee8021488a2fa7802b34255
[simgrid.git] / .github / workflows / git.yml
1 name: Git builds
2
3 # This workflow uses actions that are not certified by GitHub.
4 # They are provided by a third-party and are governed by
5 # separate terms of service, privacy policy, and support
6 # documentation.
7
8 # Only trigger manually
9 on: workflow_dispatch
10
11 jobs:
12   simgrid-regular-ubuntu:
13     runs-on: ${{ matrix.config.os }}-latest
14     strategy:
15         matrix:
16           config:
17           - { name: "Ubuntu gcc", os: ubuntu, cc: "gcc", cxx: "g++", generator: "Unix Makefiles", cmake_extra_options: "-DLTO_EXTRA_FLAG=auto" }
18           - { name: "MacOS clang", os: macos, cc: "clang", cxx: "clang++", generator: "Unix Makefiles", cmake_extra_options: "-DLTO_EXTRA_FLAG=auto" }
19     permissions:
20       contents: read
21       packages: write
22
23     steps:
24       - name: Checkout repository
25         uses: actions/checkout@v3
26       - name: Init options
27         run: |
28           echo "CC=${{ matrix.config.cc }}"   >> $GITHUB_ENV
29           echo "CXX=${{ matrix.config.cxx }}" >> GITHUB_ENV
30       - name: prepare for ubuntu
31         if: matrix.config.os == 'ubuntu'
32         run: |
33           sudo apt-get update && sudo apt-get install ninja-build libboost-dev libboost-context-dev pybind11-dev
34       - name: prepare for macos
35         if: matrix.config.os == 'macos'
36         run: brew install boost eigen pybind11 ninja
37       - name: build
38         run: |
39           mkdir build ; cd build
40           cmake -GNinja -Denable_debug=ON -Denable_documentation=OFF -Denable_coverage=OFF \
41                 -Denable_compile_optimizations=ON -Denable_compile_warnings=ON \
42                 -Denable_model-checking=OFF -Denable_smpi_MBI_testsuite=OFF \
43                 -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=ON \
44                 -DCMAKE_DISABLE_SOURCE_CHANGES=ON  -DLTO_EXTRA_FLAG="auto" ..
45           ninja tests
46           ctest --output-on-failure -j$(nproc)
47       - name: Create the failure Message
48         if: ${{ failure() }}
49         run: |
50           ver=$(grep set.SIMGRID_VERSION_MINOR CMakeLists.txt|sed 's/[^"]*"//'|sed 's/".*$//') echo "{\"attachments\": [{\"color\": \"#FF0000\", \"text\":\"Failure when building simgrid on ${{ matrix.config.name }}! See ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \"}]}" > mattermost.json
51       - name: Create the success Message
52         if: ${{ success() }}
53         run: |
54           ver=$(grep set.SIMGRID_VERSION_MINOR CMakeLists.txt|sed 's/[^"]*"//'|sed 's/".*$//') echo "{\"attachments\": [{\"color\": \"#00FF00\", \"text\":\"SimGrid built successfully on ${{ matrix.config.name }}! ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \"}]}" > mattermost.json
55       - uses: komarnitskyi/action-mattermost-notification@v0.1.2-beta
56         if: ${{ always() }}
57         env:
58           webhook: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
59           channel: ${{ secrets.MATTERMOST_CHANNEL}}
60           json: mattermost.json
61
62   simgrid-modelcheck-ubuntu:
63
64     runs-on: ubuntu-latest
65     permissions:
66       contents: read
67       packages: write
68
69     steps:
70       - name: Checkout repository
71         uses: actions/checkout@v3
72
73       - name: build
74         run: |
75           sudo apt-get update && sudo apt-get install ninja-build libboost-dev libboost-context-dev pybind11-dev
76           sudo apt-get install libunwind-dev libdw-dev libelf-dev libevent-dev
77           mkdir build ; cd build
78           cmake -GNinja -Denable_debug=ON -Denable_documentation=OFF -Denable_coverage=OFF \
79                 -Denable_compile_optimizations=ON -Denable_compile_warnings=ON \
80                 -Denable_model-checking=ON -Denable_smpi_MBI_testsuite=OFF \
81                 -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=OFF \
82                 -Denable_ns3=OFF \
83                 -DCMAKE_DISABLE_SOURCE_CHANGES=ON  -DLTO_EXTRA_FLAG="auto" ..
84           ninja tests
85           ctest --output-on-failure -j$(nproc)
86       - name: Create the failure Message
87         if: ${{ failure() }}
88         run: |
89           ver=$(grep set.SIMGRID_VERSION_MINOR CMakeLists.txt|sed 's/[^"]*"//'|sed 's/".*$//') echo "{\"attachments\": [{\"color\": \"#FF0000\", \"text\":\"Failure when building simgrid Modelchecker on ubuntu-stable! See ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \"}]}" > mattermost.json
90       - name: Create the success Message
91         if: ${{ success() }}
92         run: |
93           ver=$(grep set.SIMGRID_VERSION_MINOR CMakeLists.txt|sed 's/[^"]*"//'|sed 's/".*$//') echo "{\"attachments\": [{\"color\": \"#00FF00\", \"text\":\"Simgrid Modelchecker built successfully on ubuntu-stable! ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \"}]}" > mattermost.json
94       - uses: komarnitskyi/action-mattermost-notification@v0.1.2-beta
95         if: ${{ always() }}
96         env:
97           webhook: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
98           channel: ${{ secrets.MATTERMOST_CHANNEL}}
99           json: mattermost.json