Ribbon config initial #2013
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 'Ubuntu' | |
| on: | |
| pull_request: | |
| paths: ['**.cpp', '**.h', '**.R', '**.cmake', '**.txt', '**.in', '**.yml'] | |
| workflow_dispatch: | |
| jobs: | |
| # to run locally install https://github.com/nektos/act and run `act --reuse -j build-jasp --env DISPLAY=$DISPLAY ` | |
| # docker commit 484f3a622a13 my-jasp-image:latest | |
| # run desktop with | |
| # xhost +local:docker | |
| # docker exec -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --entrypoint bash my-jasp-image:latest | |
| # ./jasp-build/Desktop/JASP | |
| build-jasp: | |
| runs-on: ubuntu-latest | |
| env: | |
| GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
| JASP_R_VERSION: '4.5.3' | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: r-lib/actions/setup-r@v2 | |
| with: | |
| r-version: ${{ env.JASP_R_VERSION }} | |
| - name: Get Installed R Version | |
| run: echo "R_VERSION=$(R --version | head -n 1 | awk '{print $3}')" >> $GITHUB_ENV | |
| - name: Install Qt6 | |
| uses: jurplel/install-qt-action@v3 | |
| with: | |
| version: 6.10.* | |
| aqtversion: '==3.1.*' | |
| host: 'linux' | |
| target: 'desktop' | |
| arch: 'linux_gcc_64' | |
| cache: 'true' | |
| modules: 'qtpositioning qtwebchannel qtwebengine qtwebsockets qtwebview debug_info qt5compat qtshadertools qtwaylandcompositor' | |
| tools: 'tools_qtcreator,qt.tools.qtcreator tools_cmake tools_ninja' | |
| # act can not use ../ (the default) as dir, so be explicit | |
| dir: '${{ github.workspace }}/qtinstall' | |
| - name: Install dependencies of build system | |
| run: | | |
| # act -j build-jasp was stuck on typing y to continue | |
| sudo apt install -y libboost-dev libjsoncpp25 libjsoncpp-dev libarchive13 libarchive-dev | |
| sudo apt install -y libxcb-xkb-dev libxcb-xkb1 libxcb-xinerama0 libxkbcommon-dev libxkbcommon-x11-dev autoconf zlib1g zlib1g-dev cmake | |
| sudo apt install -y gfortran build-essential flex libssl-dev libgl1-mesa-dev libsqlite3-dev | |
| sudo apt install -y libharfbuzz-dev libfribidi-dev libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev #required by some r packgaes | |
| sudo apt install -y libglpk-dev libcurl4-openssl-dev libmpfr-dev libfontconfig1-dev libcairo2-dev netcdf-bin #required by some r packages | |
| sudo apt install -y jags | |
| sudo apt install -y libminizip-dev # required by freexl | |
| sudo apt install -y librdata-dev | |
| # to solve qt missing so files. | |
| sudo apt install -y libnss3-dev libnspr4-dev | |
| sudo apt install -y libxcomposite-dev libxdamage-dev libxrandr-dev libxtst-dev libxi-dev | |
| sudo apt install -y libasound2-dev libxkbfile-dev | |
| sudo apt install -y libsodium-dev | |
| git clone https://github.com/jasp-stats/freexl.git | |
| cd freexl && ./configure && make && sudo make install | |
| env: | |
| DEBIAN_FRONTEND: noninteractive | |
| - name: Install boost | |
| uses: MarkusJx/install-boost@v2 | |
| id: install-boost | |
| with: | |
| # REQUIRED: Specify the required boost version | |
| # A list of supported versions can be found here: | |
| # https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json | |
| boost_version: 1.83.0 | |
| platform_version: 22.04 | |
| - name: Install Readstat | |
| run: | | |
| wget https://github.com/WizardMac/ReadStat/releases/download/v1.1.9/readstat-1.1.9.tar.gz | |
| tar -xzf readstat-*.tar.gz && cd readstat-*/ | |
| ./configure | |
| make CFLAGS='-Wno-error=use-after-free' CXXFLAGS='-Wno-error=use-after-free' | |
| sudo make install | |
| - name: Configure JASP desktop | |
| run: | | |
| git submodule update --init | |
| cmake -S . -B jasp-build -DJASP_TEST_BUILD=ON | |
| env: | |
| BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }} | |
| Boost_INCLUDE_DIR: "${{steps.install-boost.outputs.BOOST_ROOT}}/include" | |
| Boost_LIBRARY_DIRS: "${{steps.install-boost.outputs.BOOST_ROOT}}/lib" | |
| R_HOME: "/opt/R/${{ env.R_VERSION }}/lib/R" | |
| - name: Build JASP desktop | |
| run: | | |
| # speed up build with -j | |
| cmake --build jasp-build --target all -j6 |