Skip to content

ci: use setup-fortran, use major version tags for actions #345

ci: use setup-fortran, use major version tags for actions

ci: use setup-fortran, use major version tags for actions #345

Workflow file for this run

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:
include:
# test latest gcc and python
- {os: ubuntu-latest, gcc: 13, python: "3.11"}
- {os: windows-latest, gcc: 12, python: "3.11"}
- {os: macos-latest, gcc: 13, python: "3.11"}
# test latest gcc and previous python
- {os: ubuntu-latest, gcc: 13, python: "3.11"}
- {os: ubuntu-latest, gcc: 13, python: "3.10"}
- {os: ubuntu-latest, gcc: 13, python: 3.9}
- {os: ubuntu-latest, gcc: 13, python: 3.8}
# test latest python and previous gcc
- {os: ubuntu-latest, gcc: 12, python: "3.11"}
- {os: ubuntu-latest, gcc: 11, python: "3.11"}
defaults:
run:
shell: bash
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Graphviz on Linux
if: runner.os == 'Linux'
uses: ts-graphviz/setup-graphviz@v1
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}
- name: Install python packages
run: |
python -m pip install --upgrade pip
pip install ".[test]"
- name: Setup GNU Fortran
uses: awvwgk/setup-fortran@v1
with:
compiler: gcc
version: ${{ matrix.gcc }}
- name: Download examples for pytest runs
run: .github/common/download-examples.sh
- name: Run pytest
working-directory: ./autotest
run: |
markers="base"
if [[ ${{ matrix.gcc }} == 13 ]]; then
markers="base or regression"
fi
pytest -v --dist=loadfile -n=auto --durations=0 --basetemp=pytest_temp --cov=pymake --cov-report=xml --cov-append -m "$markers"
- name: Print coverage report before upload
working-directory: ./autotest
run: coverage report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: ./autotest/coverage.xml