Skip to content

Merge pull request #135 from JuDFTteam/dependabot/pip/develop/yapf-0.… #627

Merge pull request #135 from JuDFTteam/dependabot/pip/develop/yapf-0.…

Merge pull request #135 from JuDFTteam/dependabot/pip/develop/yapf-0.… #627

Workflow file for this run

name: continuous-integration
on: [push, pull_request]
jobs:
docs:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Cache python dependencies
id: cache-pip
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: pip-docs-${{ hashFiles('**/setup.json') }}
restore-keys: |
pip-docs-
- name: Install python dependencies
run: |
pip install -e .[docs]
- name: Install Latex compiler
run: |
sudo apt-get install -y latexmk dvipng texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
- name: Build documentation
env:
READTHEDOCS: 'True'
run: |
SPHINXOPTS='-nW' make -C docs html
pre-commit:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v3
- name: Cache python dependencies
id: cache-pip
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: pip-pre-commit-${{ hashFiles('**/setup.json') }}
restore-keys: |
pip-pre-commit-
- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: 3.8
- name: Install python dependencies
run: |
pip install .[pre-commit]
pip freeze
- name: Run pre-commit
run: |
pre-commit run --all-files || (git status --short; git diff ; exit 1)
# pylint in pre-commit only checks for errors, here we check for refactoring potential, warnings etc.
- name: Run pylint strict
continue-on-error: true
run: |
pylint aiida_kkr/
tests:
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10"]
aiida: [{version: 'aiida-core==2.3.0', name: '2.3.0'}]
masci-tools: [{version: 'git+https://github.com/JuDFTteam/masci-tools.git@develop', name: '-masci-develop'}]
allowed-to-fail: [false]
services:
postgres:
image: postgres:10
env:
POSTGRES_DB: test_${{ matrix.backend }}
POSTGRES_PASSWORD: ''
POSTGRES_HOST_AUTH_METHOD: trust
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
rabbitmq:
image: rabbitmq:latest
ports:
- 5672:5672
slurm:
image: xenonmiddleware/slurm:17
ports:
- 5001:22
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies
run: |
sudo apt update
sudo apt install postgresql graphviz
- name: Upgrade pip and setuptools
# It is crucial to update `setuptools` or the installation of `pymatgen` can break
run: |
pip install --upgrade pip setuptools wheel
pip --version
- name: Install aiida-kkr
run: |
pip install ${{ matrix.aiida.version }} ${{ matrix.masci-tools.version }}
pip install git+https://github.com/JuDFTteam/aiida-testing.git@4ddb0e48a8a720e8fca5f8d09576c5aff8c36dbf
pip install .[testing]
pip install reentry
reentry scan
pip freeze
- name: Migrate AiiDA workflow caches
if: matrix.aiida.name != '1.6.8'
run: |
cd ./tests/
python migrate_exports.py
- name: Fake JuKKR installation
run: |
cd tests/
# fake installations of the JuKKR codes
# and make sure kkr.x etc is found in the PATH (even necessary for the fakes)
mkdir -p jukkr
cd jukkr && export PATH="$PWD:$PATH"
touch kkr.x; touch voronoi.exe; touch kkrflex.exe
chmod +x kkr.x voronoi.exe kkrflex.exe
- name: Run pytest
if: ${{ ! matrix.allowed-to-fail }}
run: |
cd tests/
GITHUB_SUITE=True ./run_all.sh
ls
ls ../
- name: Run pytest allow failure
if: ${{ matrix.allowed-to-fail }}
run: |
cd tests/
GITHUB_SUITE=True ./run_all.sh || exit 0
- name: Archive test output artifacts
uses: actions/upload-artifact@v3
if: failure()
with:
name: test-results-AIIDA__${{ matrix.aiida.name }}__MASCI__${{ matrix.masci-tools.name }}
path: tests
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: ./tests/coverage.xml
fail_ci_if_error: true