+++ /dev/null
-name: Jar build
-
-on:
- workflow_dispatch:
- schedule:
- # * is a special character in YAML so you have to quote this string
- - cron: '0 18 * * 0'
-jobs:
- build:
- runs-on: ${{ matrix.config.os }}-latest
- strategy:
- matrix:
- config:
- - { name: "Ubuntu gcc", os: ubuntu, cc: "gcc", cxx: "g++", generator: "Unix Makefiles", cmake_extra_options: "-DLTO_EXTRA_FLAG=auto" }
- - { name: "MacOS clang", os: macos, cc: "clang", cxx: "clang++", generator: "Unix Makefiles", cmake_extra_options: "-DLTO_EXTRA_FLAG=auto" }
- steps:
- - uses: actions/checkout@v2
- # install dependencies
- - name: Init options
- run: |
- echo "CC=${{ matrix.config.cc }}" >> $GITHUB_ENV
- echo "CXX=${{ matrix.config.cxx }}" >> GITHUB_ENV
- - name: Install boost and eigen on ubuntu
- if: matrix.config.os == 'ubuntu'
- run: sudo apt-get update && sudo apt-get install -yq libboost-dev libeigen3-dev
- - name: Install boost and eigen on macos
- if: matrix.config.os == 'macos'
- run: brew install boost eigen
- - name: Build and test jar with Cmake
- run: |
- mkdir build
- cd build
- cmake -Denable_documentation=OFF -Denable_java=ON -Denable_msg=ON -Denable_lib_in_jar=ON -Dminimal-bindings=ON -Denable_compile_optimizations=ON -Denable_smpi=OFF ${{ matrix.config.cmake_extra_options }} -G "${{ matrix.config.generator }}" ..
- make -j2 simgrid-java_jar java-all
- ctest -R java --output-on-failure
- - name: Upload jar
- uses: actions/upload-artifact@v2
- with:
- name: jar-${{ matrix.config.os }}
- path: build/simgrid.jar
- - name: Create the failure Message
- if: ${{ failure() }}
- run: |
- echo "{\"attachments\": [{\"color\": \"#FF0000\", \"text\":\"Failure when building JAR file on ${{ matrix.config.name }}! See ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \"}]}" > mattermost.json
- - uses: mattermost/action-mattermost-notify@master
- if: ${{ failure() }}
- env:
- MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
- MATTERMOST_CHANNEL: ${{ secrets.MATTERMOST_CHANNEL}}
- create_jar:
- needs: build
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Download all jars from ubuntu
- uses: actions/download-artifact@v2
- - name: Build final jar
- run: |
- patch=$(grep -r set\(SIMGRID_VERSION_PATCH ./CMakeLists.txt | sed 's/.*"\([[:digit:]]\+\)".*/\1/g')
- major=$(grep -r set\(SIMGRID_VERSION_MAJOR ./CMakeLists.txt | sed 's/.*"\([[:digit:]]\+\)".*/\1/g')
- minor=$(grep -r set\(SIMGRID_VERSION_MINOR ./CMakeLists.txt | sed 's/.*"\([[:digit:]]\+\)".*/\1/g')
- if [ $patch -ne 0 ]; then
- version="$major.$minor.$patch"
- else
- version="$major.$minor"
- fi
- mkdir content
- cd content
- for j in ubuntu macos ; do unzip -n ../jar-$j/simgrid.jar ; done
- strip NATIVE/*/*/*.so
- x86_64-linux-gnu-strip NATIVE/*/*/lib*dll
- zip -r ../simgrid-${version}.jar *
- - name: Upload jar
- uses: actions/upload-artifact@v2
- with:
- name: jar-final
- path: simgrid-*.jar
- - name: cleanup artifacts
- uses: geekyeggo/delete-artifact@v1
- with:
- name: |
- jar-ubuntu
- jar-macos
- - name: Create the failure Message
- if: ${{ failure() }}
- run: |
- echo "{\"attachments\": [{\"color\": \"#FF0000\", \"text\":\"Failure when assembling JAR file ! 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\":\"JAR file built successfully ! You can get it on: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \"}]}" > mattermost.json
- - uses: mattermost/action-mattermost-notify@master
- env:
- MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
- MATTERMOST_CHANNEL: ${{ secrets.MATTERMOST_CHANNEL}}