Skip to content

pymake gcc build

pymake gcc build #540

Workflow file for this run

name: pymake gcc build
on:
schedule:
- cron: '0 7 * * *' # run at 7 AM UTC every day
push:
paths-ignore:
- 'README.md'
- 'docs/*.md'
pull_request:
branches:
- master
- develop
paths-ignore:
- 'README.md'
- 'docs/*.md'
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.12"}
- {os: windows-latest, gcc: 13, python: "3.12"}
- {os: macos-latest, gcc: 13, python: "3.12"}
# 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.12"}
- {os: ubuntu-latest, gcc: 11, python: "3.12"}
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@v2
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install python packages
run: |
python -m pip install --upgrade pip
pip install ".[test]"
- name: Setup GNU Fortran
uses: fortran-lang/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@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
file: ./autotest/coverage.xml