Skip to content
Snippets Groups Projects
ba-linux.yml 3.28 KiB
## ************************************************************************** ##
##
##  BornAgain: simulate and fit scattering at grazing incidence
##
##! @file      .github/workflows/ba-linux.yml
##! @brief     GitHub runner configuration for building BornAgain under Linux
##!
##! @homepage  http://www.bornagainproject.org
##! @license   GNU General Public License v3 or higher (see COPYING)
##! @copyright Forschungszentrum Jülich GmbH 2020
##! @authors   Scientific Computing Group at MLZ (see CITATION, AUTHORS)
##
## ************************************************************************** ##

##! Build scripts for GitHub Actions were introduced with BornAgain-1.17.
##! This script incorporates code by
##! - Andrew Nelson (https://github.com/reflectivity/analysis)
##! - Cristian Adam (https://cristianadam.eu/20200113/speeding-up-c-plus-plus-github-actions-using-ccache/)

name: Linux

on:
  push:
    branches: [ master, develop]
    paths-ignore:
      - 'Doc/**'
  pull_request:
    branches: [ master, develop ]
    paths-ignore:
      - 'Doc/**'

jobs:
  build:
    runs-on: ubuntu-20.04
    strategy:
      max-parallel: 3
      matrix:
        python-version: [3.8]

    steps:
    - uses: actions/checkout@v2
      with:
        submodules: true

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v1
      with:
        python-version: ${{ matrix.python-version }}

    - name: setup apt dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y build-essential\
          gfortran cmake ccache \
          libgsl-dev libboost-all-dev libfftw3-dev libtiff5-dev libcerf-dev libeigen3-dev \
          qt5-default libqt5designercomponents5 qttools5-dev libqt5svg5-dev
    - name: Install Python packages
      run: |
        python -m pip install --upgrade pip
        python -m pip install wheel setuptools
        python -m pip install numpy matplotlib

    - name: Prepare ccache timestamp
      id: ccache_cache_timestamp
      shell: cmake -P {0}
      run: |
        string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
        message("::set-output name=timestamp::${current_date}")

    - name: ccache cache files for BornAgain