mirror of
https://github.com/apache/superset.git
synced 2026-04-09 11:25:23 +00:00
174
.github/workflows/superset-python.yml
vendored
Normal file
174
.github/workflows/superset-python.yml
vendored
Normal file
@@ -0,0 +1,174 @@
|
||||
name: Python
|
||||
|
||||
on:
|
||||
# only build on direct push to `master` branch
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths:
|
||||
- ./**/*.py
|
||||
- superset/**
|
||||
- tests/**
|
||||
- requirements*.txt
|
||||
# but also build on pull requests to any branch
|
||||
# (the so-called feature branch)
|
||||
pull_request:
|
||||
paths:
|
||||
- ./**/*.py
|
||||
- superset/**
|
||||
- tests/**
|
||||
- setup.py
|
||||
- requirements*.txt
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6]
|
||||
env:
|
||||
PYTHON_LINT_TARGET: setup.py superset tests
|
||||
CI: github-actions
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
uses: apache-superset/cached-dependencies@ddf7d7f
|
||||
- name: black
|
||||
run: black --check $(echo $PYTHON_LINT_TARGET)
|
||||
- name: mypy
|
||||
run: mypy $(echo $PYTHON_LINT_TARGET)
|
||||
- name: isort
|
||||
run: isort --check-only --recursive $(echo $PYTHON_LINT_TARGET)
|
||||
- name: pylint
|
||||
# `-j 0` run Pylint in parallel
|
||||
run: pylint -j 0 superset
|
||||
|
||||
test-postgres:
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
# run unit tests in multiple version just for fun
|
||||
# (3.8 is not supported yet, some dependencies need an update)
|
||||
python-version: [3.6, 3.7]
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.superset_test_config
|
||||
REDIS_PORT: 16379
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10-alpine
|
||||
env:
|
||||
POSTGRES_USER: superset
|
||||
POSTGRES_PASSWORD: superset
|
||||
ports:
|
||||
# Use custom ports for services to avoid accidentally connecting to
|
||||
# GitHub action runner's default installations
|
||||
- 15432:5432
|
||||
redis:
|
||||
image: redis:5-alpine
|
||||
ports:
|
||||
- 16379:6379
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
uses: apache-superset/cached-dependencies@ddf7d7f
|
||||
with:
|
||||
run: |
|
||||
pip-install
|
||||
setup-postgres
|
||||
- name: Python unit tests (PostgreSQL)
|
||||
env:
|
||||
SUPERSET__SQLALCHEMY_DATABASE_URI:
|
||||
postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
run: |
|
||||
bash <(curl -s https://codecov.io/bash) -cF unittest,python,postgres
|
||||
|
||||
test-mysql:
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6]
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.superset_test_config
|
||||
REDIS_PORT: 16379
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
ports:
|
||||
- 13306:3306
|
||||
redis:
|
||||
image: redis:5-alpine
|
||||
options: --entrypoint redis-server
|
||||
ports:
|
||||
- 16379:6379
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
uses: apache-superset/cached-dependencies@ddf7d7f
|
||||
with:
|
||||
run: |
|
||||
pip-install
|
||||
setup-mysql
|
||||
- name: Python unit tests (MySQL)
|
||||
env:
|
||||
SUPERSET__SQLALCHEMY_DATABASE_URI: |
|
||||
mysql+mysqldb://superset:superset@127.0.0.1:13306/superset?charset=utf8mb4&binary_prefix=true
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
run: |
|
||||
bash <(curl -s https://codecov.io/bash) -cF unittest,python,mysql
|
||||
|
||||
test-sqlite:
|
||||
runs-on: ubuntu-18.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6]
|
||||
env:
|
||||
PYTHONPATH: ${{ github.workspace }}
|
||||
SUPERSET_CONFIG: tests.superset_test_config
|
||||
REDIS_PORT: 16379
|
||||
services:
|
||||
redis:
|
||||
image: redis:5-alpine
|
||||
ports:
|
||||
- 16379:6379
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
uses: apache-superset/cached-dependencies@ddf7d7f
|
||||
with:
|
||||
run: |
|
||||
pip-install
|
||||
mkdir ${{ github.workspace }}/.temp
|
||||
- name: Python unit tests (SQLite)
|
||||
env:
|
||||
SUPERSET__SQLALCHEMY_DATABASE_URI: |
|
||||
sqlite:///${{ github.workspace }}/.temp/unittest.db
|
||||
run: |
|
||||
./scripts/python_tests.sh
|
||||
- name: Upload code coverage
|
||||
run: |
|
||||
bash <(curl -s https://codecov.io/bash) -cF unittest,python,sqlite
|
||||
Reference in New Issue
Block a user