Skip to content

Generate enums in Github Actions #3787

Generate enums in Github Actions

Generate enums in Github Actions #3787

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:
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: Debug
run: |
echo "${{ steps.enums.outputs.count }}"
echo "${{ steps.enums.outputs.files }}"
# - name: Extract branch name
# id: extract_branch
# shell: bash -l {0}
# run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $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 "update calc type enums"
# git push origin ${{ steps.extract_branch.outputs.branch }}
#
# - 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