Skip to content

CI: Add GitHub workflows, including testing, linting, release drafting, and documentation generation #25

CI: Add GitHub workflows, including testing, linting, release drafting, and documentation generation

CI: Add GitHub workflows, including testing, linting, release drafting, and documentation generation #25

Workflow file for this run

name: Linters
on:
push:
branches:
- main
pull_request: {}
env:
AIRBYTE_ANALYTICS_ID: ${{ vars.AIRBYTE_ANALYTICS_ID }}
jobs:
ruff-lint-check:
name: Ruff Lint Check
runs-on: ubuntu-latest
steps:
# Common steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Poetry
uses: Gr1N/setup-poetry@v9
with:
poetry-version: "1.7.1"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'poetry'
- name: Install dependencies
run: poetry install --all-extras
# Job-specifc step(s):
- name: Run lint check
run: poetry run ruff check .
ruff-format-check:
name: Ruff Format Check
runs-on: ubuntu-latest
steps:
# Common steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Poetry
uses: Gr1N/setup-poetry@v9
with:
poetry-version: "1.7.1"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'poetry'
- name: Install dependencies
run: poetry install --all-extras
# Job-specifc step(s):
- name: Check code format
run: poetry run ruff format --check .
mypy-check:
name: MyPy Check
runs-on: ubuntu-latest
steps:
# Common steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Poetry
uses: Gr1N/setup-poetry@v9
with:
poetry-version: "1.7.1"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: 'poetry'
- name: Install dependencies
run: poetry install --all-extras
# Job-specifc step(s):
# For now, we run mypy only on modified files
- name: Get changed Python files
id: changed-py-files
uses: tj-actions/changed-files@v43
with:
files: "airbyte_cdk/**/*.py"
- name: Run mypy on changed files
if: steps.changed-py-files.outputs.any_changed == 'true'
run: mypy ${{ steps.changed-py-files.outputs.all_changed_files }} --config-file mypy.ini --install-types --non-interactive