Skip to content

config 1

config 1 #534

Workflow file for this run

name: Linting and tests
on:
push:
branches:
- master
- development
pull_request:
branches:
- master
- development
jobs:
isort:
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up pdm
uses: pdm-project/setup-pdm@v4
with:
python-version: "3.11"
cache: true
- name: Install dependencies
run: pdm install -G lint --no-default
- name: Run isort
run: pdm run pre-commit run isort --all-files
ruff:
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up pdm
uses: pdm-project/setup-pdm@v4
with:
python-version: "3.11"
cache: true
- name: Install dependencies
run: pdm install -G lint --no-default
- name: Run ruff
run: pdm run pre-commit run ruff --all-files
pre-commit-hooks:
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up pdm
uses: pdm-project/setup-pdm@v4
with:
python-version: "3.11"
cache: true
- name: Install dependencies
run: pdm install -G lint --no-default
- name: Run pre-commit hooks
run: |
pdm run pre-commit run check-added-large-files --all-files
pdm run pre-commit run check-merge-conflict --all-files
pdm run pre-commit run check-toml --all-files
pdm run pre-commit run check-yaml --all-files
pdm run pre-commit run end-of-file-fixer --all-files
pdm run pre-commit run mixed-line-ending --all-files
pdm run pre-commit run name-tests-test --all-files
pdm run pre-commit run trailing-whitespace --all-files
mypy:
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up pdm
uses: pdm-project/setup-pdm@v4
with:
python-version: "3.11"
cache: true
- name: Install dependencies
run: pdm install -G lint --no-default
- name: Run mypy
run: pdm run pre-commit run mypy --all-files
code-quality-codeql:
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up Python environment
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Code quality analysis with CodeQL
uses: github/codeql-action/init@v3
with:
languages: python
unit-tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.10", "3.11", "3.12"]
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up pdm
uses: pdm-project/setup-pdm@v4
with:
python-version: ${{ matrix.python-version }}
cache: true
- name: Install dependencies
run: |
pdm install -G full -G test
pip install cmdstanpy==0.9.5 # Fixes https://github.com/facebook/prophet/issues/2354
- name: Run tests w/ coverage
run: pdm run pytest -n=auto --cov=atom --cov-report=xml tests/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11' }}
with:
files: ./coverage.xml
examples-tests:
runs-on: ubuntu-latest
steps:
- name: Free disk space
run: |
echo "=============================================="
echo "Freeing up disk space on CI system"
echo "=============================================="
echo "Listing 100 largest packages"
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 100
df -h
echo "Removing large packages..."
sudo apt-get remove -y '^dotnet-.*'
sudo apt-get remove -y '^llvm-.*'
sudo apt-get remove -y azure-cli google-cloud-cli google-chrome-stable firefox mono-devel
sudo apt-get autoremove -y
sudo apt-get clean
df -h
echo "Removing large directories"
# Deleting ~15GB
rm -rf /usr/share/dotnet/
df -h
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up pdm
uses: pdm-project/setup-pdm@v4
with:
python-version: "3.11"
cache: true
- name: Install dependencies
run: pdm install -G full -G test
- name: Run example notebooks
run: |
pdm run pytest \
-n=auto \
--nbmake \
--nbmake-timeout=600 \
--ignore=./examples/webapp/ \
--ignore=./examples/accelerating_cuml.ipynb \
--ignore=./examples/ray_backend.ipynb \
./examples/
documentation:
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up pdm
uses: pdm-project/setup-pdm@v4
with:
python-version: "3.11"
cache: true
- name: Install dependencies
run: pdm install -G doc --no-default
- name: Build documentation
run: pdm run mkdocs build --strict --site-dir /home/runner/work/ATOM/ATOM/docs_sources/
documentation2:
runs-on: ubuntu-latest
steps:
- name: Check out source repository
uses: actions/checkout@v4
- name: Set up pdm
uses: pdm-project/setup-pdm@v4
with:
python-version: "3.11"
cache: true
- name: Install dependencies
run: pdm install -G doc --no-default
- name: Build documentation
run: mkdocs build --strict