Skip to content

Update pre-commit requirement from ~=3.7 to ~=3.8 #775

Update pre-commit requirement from ~=3.7 to ~=3.8

Update pre-commit requirement from ~=3.7 to ~=3.8 #775

Workflow file for this run

---
name: CI - Tests
on:
pull_request:
push:
branches:
- develop
- push-action/**
jobs:
pre-commit:
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -U setuptools
while IFS="" read -r line || [ -n "${line}" ]; do
if [[ "${line}" =~ ^pre-commit.*$ ]]; then
pre_commit="${line}"
fi
done < requirements_dev.txt
pip install ${pre_commit}
- name: Test with pre-commit
run: SKIP=codecov-validator pre-commit run --all-files --show-diff-on-failure
pytest:
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
python-version: ['3.9', '3.10', '3.11']
services:
mongo:
image: mongo:4
ports:
- 27017:27017
postgres:
image: postgres:12
env:
POSTGRES_DB: test_psql_dos
POSTGRES_PASSWORD: test
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
env:
AIIDA_TEST_BACKEND: core.psql_dos
AIIDA_TEST_PROFILE: test_psql_dos
AIIDA_PROFILE: test_psql_dos
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Set up Python ${{ matrix.python-version}}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version}}
- name: Install python dependencies
run: |
python -m pip install -U pip
pip install -U setuptools
pip install -e .[testing]
- name: Setup up environment for AiiDA
run: .github/aiida/setup_aiida.sh
- name: Test with pytest (AiiDA)
run: pytest -v --cov=./aiida_optimade/ --cov-report=xml --durations=20
- name: Test with pytest (Data Curation)
env:
PYTEST_OPTIMADE_CONFIG_FILE: ./tests/static/test_data_curation_config.json
run: pytest -v --cov=./aiida_optimade/ --cov-report=xml --cov-append --durations=20 tests/server/routers/test_structures.py::test_structures_endpoint_data
- name: Test with pytest (MongoDB)
env:
PYTEST_OPTIMADE_CONFIG_FILE: ./tests/static/test_mongo_config.json
OPTIMADE_MONGO_URI: mongodb://localhost:27017
OPTIMADE_DATABASE_BACKEND: mongodb
run: pytest -v --cov=./aiida_optimade/ --cov-report=xml:mongo_cov.xml --durations=20
- name: Upload coverage to Codecov
if: matrix.python-version == 3.9
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: aiida
file: ./coverage.xml
- name: Upload coverage to Codecov
if: matrix.python-version == 3.9
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: mongo
file: ./mongo_cov.xml
docker:
runs-on: ubuntu-latest
timeout-minutes: 14
strategy:
fail-fast: false
matrix:
database: [aiida, mongo]
services:
mongo:
image: mongo:4
ports:
- 27017:27017
postgres:
image: postgres:12
env:
POSTGRES_DB: test_psql_dos
POSTGRES_PASSWORD: test
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install -U setuptools
while IFS="" read -r line || [ -n "${line}" ]; do
if [[ "${line}" =~ ^aiida-core.*$ ]]; then
aiida_core="${line}"
fi
done < requirements.txt
pip install ${aiida_core}
pip install pymongo
- name: Setup up environment for AiiDA
env:
AIIDA_TEST_BACKEND: core.psql_dos
run: .github/aiida/setup_aiida.sh
- name: Load test data
run: |
if [ "${{ matrix.database }}" == "aiida" ]; then
verdi archive import --migration .github/aiida/optimade.aiida
else
.github/mongo/load_data.py
fi
- name: Build docker image
if: matrix.database == 'mongo'
run: docker-compose -f profiles/docker-compose.yml build --build-arg CONFIG_FILE=".github/mongo/ci_config.json"
- name: Start the Docker image
env:
AIIDA_OPTIMADE_LOG_LEVEL: DEBUG
run: |
export DOCKER_HOST_IP=$(ip route | grep docker0 | awk '{print $9}')
docker-compose -f profiles/docker-compose.yml up &
.github/utils/wait_for_it.sh localhost:3253 -t 360
sleep 15
- name: Test server with OPTIMADE Validator
uses: Materials-Consortia/optimade-validator-action@v2
with:
port: 3253
all versioned paths: yes
validate unversioned path: yes
validator version: latest
docker-mongo:
runs-on: ubuntu-latest
timeout-minutes: 14
services:
postgres:
image: postgres:12
env:
POSTGRES_DB: test_psql_dos
POSTGRES_PASSWORD: test
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install -U setuptools
while IFS="" read -r line || [ -n "${line}" ]; do
if [[ "${line}" =~ ^aiida-core.*$ ]]; then
aiida_core="${line}"
fi
done < requirements.txt
pip install ${aiida_core}
- name: Setup up environment for AiiDA
env:
AIIDA_TEST_BACKEND: core.psql_dos
run: .github/aiida/setup_aiida.sh
- name: Load test data (AiiDA)
run: verdi archive import --migration .github/aiida/optimade.aiida
- name: Build docker image
run: docker-compose -f profiles/docker-compose-mongo.yml build --build-arg CONFIG_FILE=".github/mongo/ci_config.json"
- name: Start the Docker image
env:
AIIDA_OPTIMADE_LOG_LEVEL: INFO
USE_MONGO: --mongo
run: |
export DOCKER_HOST_IP=$(ip route | grep docker0 | awk '{print $9}')
docker-compose -f profiles/docker-compose-mongo.yml up &
.github/utils/wait_for_it.sh localhost:3253 -t 360
# Long sleep, because the initialization is needed
sleep 150
- name: Test server with OPTIMADE Validator
uses: Materials-Consortia/optimade-validator-action@v2
with:
port: 3253
all versioned paths: yes
validate unversioned path: yes
validator version: latest
docker-mongo-filename:
runs-on: ubuntu-latest
timeout-minutes: 14
services:
postgres:
image: postgres:12
env:
POSTGRES_DB: test_psql_dos
POSTGRES_PASSWORD: test
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install -U setuptools
while IFS="" read -r line || [ -n "${line}" ]; do
if [[ "${line}" =~ ^aiida-core.*$ ]]; then
aiida_core="${line}"
fi
done < requirements.txt
pip install ${aiida_core}
- name: Setup up environment for AiiDA
env:
AIIDA_TEST_BACKEND: core.psql_dos
run: .github/aiida/setup_aiida.sh
- name: Build docker image
run: docker-compose -f profiles/docker-compose-mongo.yml build --build-arg CONFIG_FILE=".github/mongo/ci_config.json"
- name: Start the Docker image
env:
AIIDA_OPTIMADE_LOG_LEVEL: INFO
USE_MONGO: --mongo
MONGO_FILENAME: test_structures_mongo.json
run: |
export DOCKER_HOST_IP=$(ip route | grep docker0 | awk '{print $9}')
docker-compose -f profiles/docker-compose-mongo.yml up &
.github/utils/wait_for_it.sh localhost:3253 -t 360
# Longer sleep, because the initialization is needed
sleep 30
- name: Test server with OPTIMADE Validator
uses: Materials-Consortia/optimade-validator-action@v2
with:
port: 3253
all versioned paths: yes
validate unversioned path: yes
validator version: latest
build-package:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Check build and install source distribution
uses: CasperWA/check-sdist-action@v1