Codespace configuration #688
Workflow file for this run
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: Continuous Integration (CI) | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
merge_group: | |
jobs: | |
python-test: | |
name: Format / Unit Tests / Python ${{ matrix.python-version }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# Tests currently fail for 3.8 and 3.9. | |
python-version: ['3.10', '3.11'] | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./python/mlcroissant | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install library | |
run: pip install .[dev] | |
- name: PyTest | |
run: make pytest | |
- name: PyLint | |
run: make pylint | |
# Pyflakes can see unused imports | |
- name: PyFlakes | |
run: make pyflakes | |
- name: Docstrings are defined | |
run: make flake8 | |
python-format: | |
name: Python format | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.11' | |
- uses: psf/black@stable | |
with: | |
options: --line-length 88 --preview --experimental-string-processing | |
src: './python/mlcroissant' | |
- uses: isort/isort-action@master | |
with: | |
sort-paths: './python/mlcroissant' | |
pytype-test: | |
name: PyType | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./python/mlcroissant | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Install dependencies except mlcroissant itself | |
run: > | |
pip install absl-py \ | |
datasets \ | |
etils[epath] \ | |
GitPython \ | |
jsonpath_rw \ | |
networkx \ | |
pandas \ | |
pyarrow \ | |
pytest \ | |
pytype \ | |
rdflib \ | |
requests \ | |
tqdm | |
- name: PyType | |
run: make pytype | |
validation-test: | |
name: Validation / JSON-LD Tests / Python 3.11 | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./python/mlcroissant | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install library | |
run: pip install .[git] | |
- name: Validate JSON-LD files | |
run: | | |
JSON_FILES=$(find ../../datasets/ -type f -name "*.json" ! -path '*/data/*') | |
for file in ${JSON_FILES} | |
do | |
echo "Validating ${file}..." | |
python scripts/validate.py --file ${file} | |
done | |
generation-test: | |
name: Generation / JSON-LD Tests / Python 3.11 | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./python/mlcroissant | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install library | |
run: pip install . | |
- name: Generate JSON-LD files - Titanic | |
run: python scripts/load.py --file ../../datasets/titanic/metadata.json --record_set passengers | |
- name: Generate JSON-LD files - PASS | |
run: pip install .[image] && python scripts/load.py --file ../../datasets/pass-mini/metadata.json --record_set images |