pip install doped #80
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: pip install doped | |
on: | |
workflow_dispatch: | |
workflow_run: | |
workflows: ["Release and publish"] | |
branches: [main] | |
types: | |
- completed # only test when new release has been deployed to PyPI | |
jobs: | |
build: | |
if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }} | |
# only run when tests have passed (or manually triggered) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-14 ] | |
python-version: [ '3.9', '3.10', '3.11' ] | |
exclude: | |
- os: macos-14 | |
python-version: '3.9' # Exclude Python 3.9 on macOS, not supported for macOS-14 tests | |
# macos-latest should be 14 according to link below, but currently doesn't? | |
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
sleep 360 # wait 10 minutes for PyPI to update with the new release | |
python -m pip install --upgrade pip | |
pip install doped[tests] # install only from PyPI | |
- name: Install spglib on macOS | |
if: matrix.os == 'macos-14' | |
run: | | |
pip install git+https://github.com/spglib/spglib --config-settings=cmake.define.SPGLIB_SHARED_LIBS=OFF # avoid spglib warnings | |
- name: Install spglib on ubuntu | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
conda install -c conda-forge spglib # avoid spglib warnings | |
- name: Test | |
run: | | |
pytest -vv -m "not mpl_image_compare" tests # all non-plotting tests | |
- name: Plotting Tests | |
if: always() # run even if non-plotting tests fail | |
id: plotting_tests # Add an ID to this step for reference | |
run: | | |
pytest --mpl -m "mpl_image_compare" tests # all plotting tests | |
- name: Generate GH Actions test plots | |
if: failure() && steps.plotting_tests.outcome == 'failure' # Run only if plotting tests fail | |
run: | | |
# Generate the test plots in case there were any failures: | |
pytest --mpl-generate-path=tests/remote_baseline -m "mpl_image_compare" tests | |
# Upload test plots | |
- name: Archive test plots | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: output-plots | |
path: tests/remote_baseline |