Skip to content

Update Python version to 3.13 in Dockerfile and Pipfile #1446

Update Python version to 3.13 in Dockerfile and Pipfile

Update Python version to 3.13 in Dockerfile and Pipfile #1446

Workflow file for this run

name: CI
on:
push:
branches:
- develop
- master
pull_request:
branches:
- develop
- master
jobs:
setup:
runs-on: ubuntu-latest
outputs:
python_version: ${{ steps.read_python_version.outputs.python_version }}
steps:
- uses: actions/checkout@v4
- name: Read Python version
id: read_python_version
run: echo "::set-output name=python_version::$(cat .python-version)"
black:
runs-on: ubuntu-latest
needs: setup
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ needs.setup.outputs.python_version }}
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/Pipfile') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install pipenv
run: |
pip install pipenv
- name: Install dependencies
run: |
pipenv sync --dev --system
- name: Check format with black
run: |
# stop the build if there are black formatting errors
python -m black --check .
flake8:
runs-on: ubuntu-latest
needs: setup
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ needs.setup.outputs.python_version }}
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/Pipfile') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install pipenv
run: |
pip install pipenv
- name: Install dependencies
run: |
pipenv sync --dev --system
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8
mypy:
runs-on: ubuntu-latest
needs: setup
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ needs.setup.outputs.python_version }}
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/Pipfile') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install pipenv
run: |
pip install pipenv
- name: Install dependencies
run: |
pipenv sync --dev --system
- name: Run mypy
run: |
python -m mypy .
test:
runs-on: ubuntu-latest
needs: setup
services:
mysql:
image: mysql:8.0
ports:
- 3306:3306
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: unified_warehouse_test
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- 1433:1433
env:
ACCEPT_EULA: Y
SA_PASSWORD: MyS3cr3tPassw0rd
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ needs.setup.outputs.python_version }}
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/Pipfile') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies for building Python wheels (Ubuntu)
run: |
sudo apt-get update
sudo apt-get install -y build-essential python3-dev libffi-dev libssl-dev libpq-dev unixodbc-dev
- name: Install pipenv
run: |
pip install pipenv
- name: Install dependencies
run: |
pipenv sync --dev --system
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.7.0
with:
mongodb-version: 4.2
mongodb-replica-set: heron_rs
- name: Setup the test MLWH and Events databases
run: |
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
sudo apt-get install -y unixodbc-dev
python setup_test_db.py
- name: Create SQL Server testing database
run: |
python setup_sqlserver_test_db.py
- name: Test with pytest
run: |
python -m pytest -x
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}