Skip to content

Merge pull request #976 from sanger/y24-244-bump-checkout #1400

Merge pull request #976 from sanger/y24-244-bump-checkout

Merge pull request #976 from sanger/y24-244-bump-checkout #1400

Workflow file for this run

name: CI
on:
push:
branches:
- develop
- master
pull_request:
branches:
- develop
- master
jobs:
black:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- uses: actions/cache@v1
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
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- uses: actions/cache@v1
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
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- uses: actions/cache@v1
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
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: 3.8
- uses: actions/cache@v1
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: Start MongoDB
uses: supercharge/[email protected]
with:
mongodb-version: 4.2
mongodb-replica-set: heron_rs
- name: Create SQL Server testing database
run: |
python setup_sqlserver_test_db.py
- name: Setup the test MLWH and Events databases
run: |
python setup_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 }}