Skip to content

Generate enums in Github Actions #3790

Generate enums in Github Actions

Generate enums in Github Actions #3790

Workflow file for this run

name: testing
on:
workflow_dispatch: # Allow running on-demand
push:
branches:
- main
pull_request:
branches:
- main
jobs:
test:
name: ${{ matrix.package }} (${{ matrix.os }}/py${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: ["ubuntu-latest"] # TODO openbabel for windows and mac
package: ["emmet-core", "emmet-builders", "emmet-api"]
python-version: ["3.10", "3.11"]
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
fetch-depth: 0
- name: Set up Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
channels: anaconda, conda-forge
- name: Install all conda requirements
shell: bash -l {0}
run: conda install openbabel openff-toolkit>=0.14.0 openff-interchange>=0.3.22 sqlite -y
- name: Install Python dependencies
shell: bash -l {0}
run: |
python${{ matrix.python-version }} -m pip install --upgrade pip pip-tools pre-commit
python${{ matrix.python-version }} -m pip install --user `grep numpy ${{ matrix.package }}/requirements/${{ matrix.os }}_py${{ matrix.python-version }}_extras.txt`
python${{ matrix.python-version }} -m pip install --user -r ${{ matrix.package }}/requirements/${{ matrix.os }}_py${{ matrix.python-version }}_extras.txt
env:
CC: gcc-10
CXX: g++-10
- name: generate Enums
shell: bash -l {0}
if: matrix.package == 'emmet-core'
continue-on-error: true
run: |
python${{ matrix.python-version }} emmet-core/emmet/core/qchem/calc_types/generate.py
python${{ matrix.python-version }} emmet-core/emmet/core/vasp/calc_types/generate.py
pre-commit run --all-files
- name: Check Enum outputs
id: enums
shell: bash -l {0}
if: matrix.package == 'emmet-core'
run: |
echo "count=$(git diff-index HEAD emmet-core/emmet/core/*/calc_types/enums.py | wc -l | xargs)" >> $GITHUB_OUTPUT
echo "files=$(git ls-files --exclude-standard --others emmet-core/emmet/core/*/calc_types/enums.py | wc -l | xargs)" >> $GITHUB_OUTPUT
- name: commit & push enums changes
if: matrix.package == 'emmet-core'
shell: bash -l {0}
run: |
git config user.name github-actions
git config user.email [email protected]
git add emmet-core/emmet/core/*/calc_types/enums.py
git commit --allow-empty -m "[automated commit] update calc type enums"
git push
- name: Install editable emmet-core if needed
shell: bash -l {0}
if: matrix.package != 'emmet-core'
run: python${{ matrix.python-version }} -m pip install --user --no-deps ./emmet-core
- name: Install ${{ matrix.package }}
shell: bash -l {0}
run: python${{ matrix.python-version }} -m pip install --user --no-deps -e ./${{ matrix.package }}
- name: Lint with mypy
shell: bash -l {0}
run: python${{ matrix.python-version }} -m mypy --namespace-package ${{ matrix.package }}/emmet
- name: Test with pytest
if: always() # run tests even if linting failed
shell: bash -l {0}
run: python${{ matrix.python-version }} -m pytest --cov=emmet --cov-report=xml ${{ matrix.package }}/tests
- uses: codecov/[email protected]
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml