1name: CI
2
3on:
4  # allows us to run workflows manually
5  workflow_dispatch:
6
7  pull_request:
8    branches:
9      - develop
10      - master
11  push:
12    branches:
13      - develop
14      - master
15
16env:
17  MPI_DIR: /usr
18  HDF5_ROOT: /usr
19  OMP_NUM_THREADS: 2
20  COVERALLS_PARALLEL: true
21  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22
23
24jobs:
25  main:
26    runs-on: ubuntu-20.04
27    strategy:
28      matrix:
29        python-version: [3.8]
30        mpi: [n, y]
31        omp: [n, y]
32        dagmc: [n]
33        libmesh: [n]
34        event: [n]
35        vectfit: [n]
36
37        include:
38          - python-version: 3.6
39            omp: n
40            mpi: n
41          - python-version: 3.7
42            omp: n
43            mpi: n
44          - dagmc: y
45            python-version: 3.8
46            mpi: y
47            omp: y
48          - libmesh: y
49            python-version: 3.8
50            mpi: y
51            omp: y
52          - libmesh: y
53            python-version: 3.8
54            mpi: n
55            omp: y
56          - event: y
57            python-version: 3.8
58            omp: y
59            mpi: n
60          - vectfit: y
61            python-version: 3.8
62            omp: n
63            mpi: y
64    name: 'Python ${{ matrix.python-version }} (omp=${{ matrix.omp }},
65      mpi=${{ matrix.mpi }}, dagmc=${{ matrix.dagmc }},
66      libmesh=${{ matrix.libmesh }}, event=${{ matrix.event }}
67      vectfit=${{ matrix.vectfit }})'
68
69    env:
70      MPI: ${{ matrix.mpi }}
71      PHDF5: ${{ matrix.mpi }}
72      OMP: ${{ matrix.omp }}
73      DAGMC: ${{ matrix.dagmc }}
74      EVENT: ${{ matrix.event }}
75      VECTFIT: ${{ matrix.vectfit }}
76      LIBMESH: ${{ matrix.libmesh }}
77
78    steps:
79      - uses: actions/checkout@v2
80
81      -
82        name: Set up Python ${{ matrix.python-version }}
83        uses: actions/setup-python@v2
84        with:
85          python-version: ${{ matrix.python-version }}
86      -
87        name: Environment Variables
88        run: |
89          echo "DAGMC_ROOT=$HOME/DAGMC"
90          echo "OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml" >> $GITHUB_ENV
91          echo "OPENMC_ENDF_DATA=$HOME/endf-b-vii.1" >> $GITHUB_ENV
92
93      -
94        name: Apt dependencies
95        shell: bash
96        run: |
97          sudo apt -y update
98          sudo apt install -y libmpich-dev \
99                              libnetcdf-dev \
100                              libpnetcdf-dev \
101                              libhdf5-serial-dev \
102                              libhdf5-mpich-dev \
103                              libeigen3-dev
104          sudo update-alternatives --set mpi /usr/bin/mpicc.mpich
105          sudo update-alternatives --set mpirun /usr/bin/mpirun.mpich
106          sudo update-alternatives --set mpi-x86_64-linux-gnu /usr/include/x86_64-linux-gnu/mpich
107
108      -
109        name: install
110        shell: bash
111        run: |
112          echo "$HOME/NJOY2016/build" >> $GITHUB_PATH
113          $GITHUB_WORKSPACE/tools/ci/gha-install.sh
114      -
115        name: before
116        shell: bash
117        run: $GITHUB_WORKSPACE/tools/ci/gha-before-script.sh
118      -
119        name: test
120        shell: bash
121        run: $GITHUB_WORKSPACE/tools/ci/gha-script.sh
122
123      -
124        name: after_success
125        shell: bash
126        run: |
127          cpp-coveralls -i src -i include --exclude-pattern "/usr/*" --dump cpp_cov.json
128          coveralls --merge=cpp_cov.json --service=github
129
130  finish:
131    needs: main
132    runs-on: ubuntu-latest
133    steps:
134    - name: Coveralls Finished
135      uses: coverallsapp/github-action@master
136      with:
137        github-token: ${{ secrets.github_token }}
138        parallel-finished: true
139