refactor(ci/tests): use awvwgk/setup-fortran, use pytest tempdirs #229
Workflow file for this run
This file contains 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: pymake gcc build | |
on: | |
schedule: | |
- cron: '0 7 * * *' # run at 7 AM UTC every day | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: | |
- master | |
jobs: | |
pymakeCI-os-gcc: | |
name: pymake CI gcc on different OSs | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Setup Graphviz on Linux | |
if: runner.os == 'Linux' | |
uses: ts-graphviz/setup-graphviz@v1 | |
- name: Setup Python | |
uses: actions/setup-python@v4.3.0 | |
with: | |
python-version: "3.10" | |
- name: Install python packages | |
run: | | |
python -m pip install --upgrade pip | |
pip install ".[test]" | |
- name: Setup GNU Fortran | |
uses: awvwgk/setup-fortran@main | |
with: | |
compiler: gcc | |
version: 11 | |
- name: Download examples for pytest runs | |
run: | | |
.github/common/download-examples.sh | |
- name: Run pytest | |
working-directory: ./autotest | |
run: | | |
pytest -v --dist=loadfile -n=auto -m="base or regression" --durations=0 --cov=pymake --cov-report=xml --basetemp=${{ runner.temp }} | |
- name: Print coverage report before upload | |
working-directory: ./autotest | |
run: | | |
coverage report | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3.1.1 | |
with: | |
file: ./autotest/coverage.xml | |
pymakeCI-gcc-prev: | |
name: pymake CI GCC 9 and 8 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
gcc-version: [ 9, 8 ] | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Setup Graphviz | |
uses: ts-graphviz/setup-graphviz@v1 | |
- name: Set up Python | |
uses: actions/setup-python@v4.3.0 | |
with: | |
python-version: "3.10" | |
- name: Install python packages | |
run: | | |
python -m pip install --upgrade pip | |
pip install ".[test]" | |
- name: Setup symbolic link to gfortran on Linux | |
run: | | |
sudo ln -fs /usr/bin/gfortran-${{ matrix.gcc-version }} /usr/local/bin/gfortran | |
sudo ln -fs /usr/bin/gcc-${{ matrix.gcc-version }} /usr/local/bin/gcc | |
sudo ln -fs /usr/bin/g++-${{ matrix.gcc-version }} /usr/local/bin/g++ | |
- name: Print GNU compiler versions | |
run: | | |
gfortran --version | |
gcc --version | |
g++ --version | |
- name: Download examples for pytest runs | |
run: | | |
.github/common/download-examples.sh | |
- name: Run pytest | |
working-directory: ./autotest | |
run: | | |
pytest -v --dist=loadfile -n=auto -m="base" --durations=0 --cov=pymake --cov-report=xml | |
- name: Print coverage report before upload | |
working-directory: ./autotest | |
run: | | |
coverage report | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3.1.1 | |
with: | |
file: ./autotest/coverage.xml | |
pymakeCI-python-prev: | |
name: pymake CI with previous python versions | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ 3.9, 3.8 ] | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4.3.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install python packages | |
run: | | |
python -m pip install --upgrade pip | |
pip install ".[test]" | |
- name: Install GNU Fortran | |
uses: modflowpy/install-gfortran-action@v1 | |
- name: Download examples for pytest runs | |
run: | | |
.github/common/download-examples.sh | |
- name: Run pytest | |
working-directory: ./autotest | |
run: | | |
pytest -v --dist=loadfile -n=auto -m="base" --durations=0 |