refactor(ci/tests): use awvwgk/setup-fortran, use pytest tempdirs #523
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 continuous integration | |
on: | |
schedule: | |
- cron: '0 7 * * *' # run at 7 AM UTC every day | |
push: | |
branches: | |
- master | |
- ci-diagnose | |
pull_request: | |
branches: | |
- master | |
jobs: | |
pymakeCI-os-intel: | |
name: pymake CI intel on different OSs | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-2019] | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Setup Intel Fortran Classic | |
uses: awvwgk/setup-fortran@main | |
with: | |
compiler: intel-classic | |
version: 2021.7.0 | |
- name: Set SETVARS_COMPLETED (temporary) | |
run: echo "SETVARS_COMPLETED=1" >> $GITHUB_ENV | |
- name: Set CXX (temporary) | |
if: runner.os == 'Windows' | |
run: echo "CXX=icl" >> $GITHUB_ENV | |
- name: Setup Graphviz | |
if: runner.os == 'Linux' | |
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: Download examples for pytest runs | |
run: | | |
.github/common/download-examples.sh | |
- name: test on Linux | |
if: runner.os == 'Linux' | |
working-directory: ./autotest | |
run: | | |
pytest -v -n=auto --dist=loadfile -m="base or regression" --durations=0 --cov=pymake --cov-report=xml | |
- name: test on MacOS | |
if: runner.os == 'macOS' | |
working-directory: ./autotest | |
run: | | |
pytest -v -n=auto --dist=loadfile -m="base" --durations=0 --cov=pymake --cov-report=xml | |
- name: test on Windows | |
if: runner.os == 'Windows' | |
working-directory: ./autotest | |
shell: cmd | |
run: | | |
pytest -v -m="base" --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 |