Skip to content

Pyproject toml

Pyproject toml #1045

Workflow file for this run

name: run-tests
on:
push:
branches:
- '**master**'
- '**_run_ci**'
- '**release**'
pull_request:
types: [opened, reopened, labeled, synchronize]
workflow_dispatch:
jobs:
test:
if: |
github.event_name != 'pull_request' ||
(github.event.action == 'labeled' && github.event.label.name == 'run_ci') ||
(github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no_ci'))
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-13]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: '3.10'
channels: conda-forge,defaults
channel-priority: true
- name: Install llvm on MacOS
if: startsWith(matrix.os, 'macos')
env:
# Homebrew location is different on Intel Mac
LLVM_DIR: ${{ (matrix.os == 'macos-13') && '/usr/local/opt/llvm' || '/opt/homebrew/opt/llvm' }}
run: |
brew install llvm
echo CC="${LLVM_DIR}/bin/clang" >> $GITHUB_ENV
echo LDFLAGS="-L${LLVM_DIR}/lib $LDFLAGS" >> $GITHUB_ENV
echo CPPFLAGS="-I${LLVM_DIR}/include $CPPFLAGS" >> $GITHUB_ENV
- name: Setup MSVC env on Windows
if: startsWith(matrix.os, 'windows')
env:
MSVC_BIN: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.41.34120\bin\HostX64\x64'
shell: bash
run: |
echo "CC=${MSVC_BIN}\cl.exe" >> $GITHUB_ENV
echo "CC_LD=${MSVC_BIN}\link.exe" >> $GITHUB_ENV
- name: Update pip and install dependencies
shell: bash -l {0}
run: |
python -m pip install --upgrade pip
python -m pip install -r tests_and_analysis/ci_requirements.txt
- name: Run tests, skip Python 3.11 unless workflow dispatch
if: github.event_name != 'workflow_dispatch'
env:
TOX_SKIP_ENV: '.*?(py311).*?'
shell: bash -l {0}
run: python -m tox
- name: Run tests, workflow dispatch so test all Python versions
if: github.event_name == 'workflow_dispatch'
shell: bash -l {0}
run: python -m tox
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: Unit test results ${{ matrix.os }}
path: tests_and_analysis/test/reports/junit_report*.xml
- name: Publish Codacy coverage
uses: codacy/codacy-coverage-reporter-action@v1
if: startsWith(matrix.os, 'ubuntu')
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: tests_and_analysis/test/reports/coverage*.xml
- uses: codecov/codecov-action@v3
if: startsWith(matrix.os, 'ubuntu')
with:
files: tests_and_analysis/test/reports/coverage*.xml
test-docs:
runs-on: ubuntu-latest
if: success() || failure()
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: '3.10'
channels: conda-forge,defaults
channel-priority: true
- name: Update pip and install dependencies
shell: bash -l {0}
run: |
python -m pip install --upgrade pip
python -m pip install -r tests_and_analysis/ci_requirements.txt
python -m pip install -r doc/requirements.txt
python -m pip install .[matplotlib,phonopy_reader,brille]
- name: Run Sphinx doctests
working-directory: ./doc
shell: bash -l {0}
run: sphinx-build -c source -b doctest source .
- name: Upload docstest results
if: success() || failure()
uses: actions/upload-artifact@v4
with:
name: Doctest results
path: doc/output.txt
publish-test-results:
needs: test
runs-on: ubuntu-latest
if: success() || failure()
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: Publish test results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
junit_files: artifacts/**/junit_report*.xml