Skip to content

Commit

Permalink
👷 add CI
Browse files Browse the repository at this point in the history
  • Loading branch information
danielgafni committed Nov 7, 2023
1 parent b608c81 commit 06ba4bd
Show file tree
Hide file tree
Showing 8 changed files with 139 additions and 17 deletions.
122 changes: 122 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: CI

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

on:
workflow_dispatch:
push:
release:
types:
- created
# Sequence of patterns matched against refs/tags
tags:
- "v*" # Push events to matching v*, i.e. v1.0, v20.15.10

jobs:
test:
name: test py=${{ matrix.py }} ${{ matrix.os }}
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
matrix:
os:
- Ubuntu
# MacOs is commented out because: 1. For some reason it's very slow. 2. It never had OS-specific issues
# - MacOs
py:
- "3.12"
- "3.11"
- "3.10"
- "3.9"
- "3.8"
dagster_version:
- "1.4.0"
- "1.5.0"
steps:
- name: Setup python for test ${{ matrix.py }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.py }}
- uses: actions/checkout@v2
- name: Install and configure Poetry
uses: snok/install-poetry@v1
with:
version: 1.4.2
virtualenvs-create: false
virtualenvs-in-project: false
installer-parallel: true
- name: Install dependencies
run: poetry install --all-extras --sync
- name: Run tests
run: pytest -v .

lint:
name: lint py=${{ matrix.py }} ${{ matrix.os }}
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
matrix:
os:
- Ubuntu
py:
- "3.12"
- "3.11"
- "3.10"
- "3.9"
- "3.8"
steps:
- name: Setup python for test ${{ matrix.py }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.py }}
- uses: actions/checkout@v2
- name: Install and configure Poetry
uses: snok/install-poetry@v1
with:
version: 1.4.2
virtualenvs-create: false
virtualenvs-in-project: false
installer-parallel: true
- name: Install dependencies
run: poetry install --all-extras --sync
- name: Run pre-commit hooks
run: pre-commit run --all-files

qa_success:
name: QA Success
needs: [test, lint]
runs-on: ubuntu-latest
steps:
- name: Success
run: echo "QA Succeeded!"

publish:
needs: qa_success
if: contains(github.ref, 'refs/tags/')
name: Publish to PyPI
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.9
- uses: actions/checkout@v2
- name: Install and configure Poetry
uses: snok/install-poetry@v1
with:
version: 1.4.2
virtualenvs-create: false
virtualenvs-in-project: false
installer-parallel: true
- name: Install poetry-dynamic-versioning
run: poetry self add [email protected]
- name: Publish to PyPI
env:
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
run: |
poetry config pypi-token.pypi $PYPI_TOKEN
poetry publish --build
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ repos:
language: system
pass_filenames: false
# formatter
- id: black
name: black
entry: black .
- id: ruff-format
name: ruff format
entry: ruff format .
language: system
pass_filenames: false
# typecheck
Expand Down
2 changes: 1 addition & 1 deletion examples/dl_example.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from logging import basicConfig
from time import sleep
from typing import List

from pydantic import BaseModel

from freak import control
from logging import basicConfig


class Head(BaseModel):
Expand Down
2 changes: 1 addition & 1 deletion freak/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from freak.freak import control, Freak
from freak.__version__ import __version__
from freak.freak import Freak, control

__all__ = ["control", "Freak", "__version__"]
14 changes: 6 additions & 8 deletions freak/freak.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
from typing import TypeVar, Any, Optional, List
import operator
from logging import getLogger
from typing import Any, List, Optional, TypeVar

from fastapi import FastAPI, APIRouter
from fastapi import APIRouter, FastAPI, Query
from pydantic import BaseModel

from starlette.requests import Request
from starlette.responses import JSONResponse
from uvicorn import Config
from logging import getLogger
from starlette.requests import Request
from fastapi import Query
import operator

from freak.uvicorn_threaded import UvicornServer

Expand Down Expand Up @@ -112,7 +110,7 @@ def add_routes(self, app: FastAPI, state: T) -> FastAPI:

state_name = state.__repr_name__()

@router.post("/stop", description=f"Stop the Freak server", tags=["stop"])
@router.post("/stop", description="Stop the Freak server", tags=["stop"])
async def stop_server(): # pyright: ignore
self.stop()

Expand Down
1 change: 0 additions & 1 deletion freak/uvicorn_threaded.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

import uvicorn


# this code is taken from freqtrade


Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ uvicorn = "*"
pytest = "^7.2.2"
httpx = "^0.23.3"
black = "^23.1.0"
ruff = "^0.1.4"
pre-commit = "^3.2.1"
pyright = "^1.1.300"
ruff = "^0.1.4"

[build-system]
requires = ["poetry-core"]
Expand Down Expand Up @@ -55,6 +55,7 @@ exclude = '''
'''

[tool.ruff]
extend-select = ["I"]
target-version = "py38"
line-length = 120
src = [
Expand Down
6 changes: 4 additions & 2 deletions tests/test_freak.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from typing import List, Tuple
import json
from typing import List, Tuple

import pytest
from fastapi import FastAPI
from fastapi.testclient import TestClient
from pydantic import BaseModel

from freak import control
from fastapi.testclient import TestClient


class Head(BaseModel):
Expand Down

0 comments on commit 06ba4bd

Please sign in to comment.