Skip to content

[FSTORE-1446] Merge GitHub Actions #20

[FSTORE-1446] Merge GitHub Actions

[FSTORE-1446] Merge GitHub Actions #20

Workflow file for this run

name: python
on: pull_request
env:
APP_API_KEY: ${{ secrets.APP_API_KEY }}
ENABLE_HOPSWORKS_USAGE: "false"
jobs:
lint_stylecheck:
name: Lint and Stylecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Get all changed files
id: get-changed-files
uses: tj-actions/changed-files@v44
with:
files_yaml: |
src:
- 'python/**/*.py'
- '!python/tests/**/*.py'
test:
- 'python/tests/**/*.py'
- name: install deps
run: pip install ruff==0.4.2
- name: ruff on python files
if: steps.get-changed-files.outputs.src_any_changed == 'true'
env:
SRC_ALL_CHANGED_FILES:
${{ steps.get-changed-files.outputs.src_all_changed_files }}
run: ruff check --output-format=github $SRC_ALL_CHANGED_FILES
- name: ruff on test files
if: steps.get-changed-files.outputs.test_any_changed == 'true'
env:
TEST_ALL_CHANGED_FILES:
${{ steps.get-changed-files.outputs.test_all_changed_files }}
run: ruff check --output-format=github $TEST_ALL_CHANGED_FILES
- name: ruff format --check $ALL_CHANGED_FILES
env:
ALL_CHANGED_FILES:
${{ steps.get-changed-files.outputs.all_changed_files }}
run: ruff format $ALL_CHANGED_FILES
unit_tests:
name: Unit Tests
needs: lint_stylecheck
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
steps:
- name: Set Timezone
run: sudo timedatectl set-timezone UTC
- uses: actions/checkout@v4
- name: Copy README
run: cp README.md python/
- uses: actions/setup-python@v5
name: Setup Python
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "python/setup.py"
- run: pip install -e python[python,dev]
- name: Display Python version
run: python --version
- name: Run Pytest suite
run: pytest python/tests
unit_tests_no_opt:
name: Unit Tests (No Optional Dependencies)
needs: lint_stylecheck
runs-on: ubuntu-latest
steps:
- name: Set Timezone
run: sudo timedatectl set-timezone UTC
- uses: actions/checkout@v4
- name: Copy README
run: cp README.md python/
- uses: actions/setup-python@v5
name: Setup Python
with:
python-version: "3.10"
cache: "pip"
cache-dependency-path: "python/setup.py"
- run: pip install -e python[python,dev-no-opt]
- name: Run Pytest suite
run: pytest python/tests
unit_tests_pandas:
name: Unit Tests (Pandas 1.x)
needs: lint_stylecheck
runs-on: ubuntu-latest
steps:
- name: Set Timezone
run: sudo timedatectl set-timezone UTC
- uses: actions/checkout@v4
- name: Copy README
run: cp README.md python/
- uses: actions/setup-python@v4
name: Setup Python
with:
python-version: "3.10"
cache: "pip"
cache-dependency-path: "python/setup.py"
- run: pip install -e python[python,dev-pandas1]
- name: Display Python version
run: python --version
- name: Run Pytest suite
run: pytest python/tests
unit_tests_local_tz:
name: Unit Tests (Local TZ)
needs: lint_stylecheck
runs-on: ubuntu-latest
steps:
- name: Set Timezone
run: sudo timedatectl set-timezone Europe/Amsterdam
- uses: actions/checkout@v4
- name: Copy README
run: cp README.md python/
- uses: actions/setup-python@v5
name: Setup Python
with:
python-version: "3.10"
cache: "pip"
cache-dependency-path: "python/setup.py"
- run: pip install -e 'python[python,dev]'
- name: Display Python version
run: python --version
- name: Run Pytest suite
run: pytest python/tests
unit_tests_typechecked:
name: Typechecked Unit Tests (Ubuntu)
needs: lint_stylecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Copy README
run: cp README.md python/
- uses: actions/setup-python@v4
name: Setup Python
with:
python-version: "3.10"
cache: "pip"
cache-dependency-path: "python/setup.py"
- run: pip install -e python[python,dev,docs]
- name: Run Pytest suite
env:
HOPSWORKS_RUN_WITH_TYPECHECK: "true"
run: pytest python/tests
continue-on-error: true
unit_tests_windows:
name: Unit Tests (Windows)
needs: lint_stylecheck
runs-on: windows-latest
steps:
- name: Set Timezone
run: tzutil /s "UTC"
- uses: actions/checkout@v4
- name: Copy README
run: cp README.md python/
- uses: actions/setup-python@v5
name: Setup Python
with:
python-version: "3.10"
cache: "pip"
cache-dependency-path: "python/setup.py"
- run: pip install -e python[python,dev]
- name: Display Python version
run: python --version
- name: Run Pytest suite
run: pytest python/tests
unit_tests_windows_local_tz:
name: Unit Tests (Windows) (Local TZ)
needs: lint_stylecheck
runs-on: windows-latest
steps:
- name: Set Timezone
run: tzutil /s "W. Europe Standard Time"
- uses: actions/checkout@v4
- name: Copy README
run: cp README.md python/
- uses: actions/setup-python@v5
name: Setup Python
with:
python-version: "3.10"
cache: "pip"
cache-dependency-path: "python/setup.py"
- run: pip install -e python[python,dev]
- name: Display Python version
run: python --version
- name: Display pip freeze
run: pip freeze
- name: Run Pytest suite
run: pytest python/tests