Skip to content

Commit

Permalink
feat: Improve GitHub action (#192)
Browse files Browse the repository at this point in the history
* Update lint-and-format.yml

* feat: Update lint-and-format.yml

* feat: Parallelize lint-and-format.yml

* fix: Update lint-and-format.yml

* fix: Disable npm run lint in lint-and-format.yml

* fix: Update lint-and-format.yml

* fix: Update lint-and-format.yml

* fix: Update lint-and-format.yml

* fix(.github): Fix github action

Signed-off-by: Diwank Singh Tomer <[email protected]>

* fix(.github): Fix github action

Signed-off-by: Diwank Singh Tomer <[email protected]>

* fix(.github): Fix github action

Signed-off-by: Diwank Singh Tomer <[email protected]>

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
  • Loading branch information
creatorrr authored Apr 16, 2024
1 parent 6e61fd9 commit 147ff11
Show file tree
Hide file tree
Showing 8 changed files with 1,000 additions and 932 deletions.
104 changes: 96 additions & 8 deletions .github/workflows/lint-and-format.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,107 @@
name: Lint and format APIs and SDKs
run-name: ${{ github.actor }} is linting and formatting the code

on: [push, pull_request]

jobs:
Lint-And-Format-APIs-And-SDKs:
Lint-And-Format:
runs-on: ubuntu-latest

strategy:
matrix:
directory: [agents-api, model-serving, sdks/python]

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: "3.10"

- name: Install and configure Poetry
uses: snok/install-poetry@v1
- name: Lint and format Agents API
run: cd agents-api && poetry install && poetry run poe check
- name: Lint and format Models API
run: cd model-serving && poetry install && poetry run poe check
- name: Lint and format Python SDK
run: cd sdks/python && poetry install && poetry run poe check

- name: Configure Poetry to use .venv
run: |
cd ${{ matrix.directory }}
poetry config virtualenvs.in-project true
- name: Cache Poetry virtualenv
uses: actions/cache@v3
with:
path: ${{ matrix.directory }}/.venv
key: ${{ runner.os }}-poetry-${{ matrix.directory }}-${{ hashFiles(format('{0}/poetry.lock', matrix.directory)) }}
restore-keys: |
${{ runner.os }}-poetry-${{ matrix.directory }}-
- name: Cache pytype
uses: actions/cache@v3
with:
path: ${{ matrix.directory }}/.pytype
key: ${{ runner.os }}-pytype-${{ matrix.directory }}-${{ hashFiles(format('{0}/**/*.py', matrix.directory)) }}
restore-keys: |
${{ runner.os }}-pytype-${{ matrix.directory }}-
- name: Install dependencies
run: |
cd ${{ matrix.directory }}
poetry install
- name: Lint and format
run: |
cd ${{ matrix.directory }}
poetry run poe format
poetry run poe lint
- name: Typecheck
run: |
cd ${{ matrix.directory }}
poetry run poe typecheck
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "refactor: Lint ${{ matrix.directory }} (CI)"
branch: ${{ github.head_ref }}

Lint-And-Format-TS-SDK:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: "20.x"

- name: Cache npm dependencies
uses: actions/cache@v3
with:
path: sdks/ts/node_modules
key: ${{ runner.os }}-npm-${{ hashFiles('sdks/ts/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- name: Install npm dependencies
run: |
cd sdks/ts
npm ci
- name: Lint and format TypeScript SDK
run: |
cd sdks/ts
npm run format
- name: Build TypeScript SDK
run: |
cd sdks/ts
# npm run build
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "refactor: Lint sdks/ts (CI)"
branch: ${{ github.head_ref }}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
220 changes: 110 additions & 110 deletions agents-api/poetry.lock

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions agents-api/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ ruff = "^0.1.9"
datamodel-code-generator = "^0.25.3"
cozo-migrate = "^0.2.0"
poethepoet = "^0.24.4"
pytype = "^2024.1.5"
pytype = ">=2024.4.11"
julep = "^0.2.4"

[build-system]
Expand All @@ -40,12 +40,12 @@ build-backend = "poetry.core.masonry.api"

[tool.poe.tasks]
format = "black ."
lint = "ruff **/*.py --fix --unsafe-fixes"
typecheck = "pytype agents_api"
lint = "ruff agents_api/**/*.py migrations/**/*.py tests/**/*.py --fix --unsafe-fixes"
typecheck = "pytype -j auto -k agents_api"
check = [
"format",
"lint",
"typecheck",
]
test = "ward"
codegen = "datamodel-codegen --input ../openapi.yaml --input-file-type openapi --output agents_api/autogen/openapi_model.py --use-operation-id-as-name --use-double-quotes --use-schema-description --target-python-version 3.10 --reuse-model --collapse-root-models --use-field-description --field-include-all-keys --use-unique-items-as-set --use-subclass-enum --use-union-operator --use-one-literal-as-default --use-annotated --enum-field-as-literal one --output-model-type pydantic_v2.BaseModel"
codegen = "datamodel-codegen --input ../openapi.yaml --input-file-type openapi --output agents_api/autogen/openapi_model.py --use-operation-id-as-name --use-double-quotes --use-schema-description --target-python-version 3.10 --reuse-model --collapse-root-models --use-field-description --field-include-all-keys --use-unique-items-as-set --use-subclass-enum --use-union-operator --use-one-literal-as-default --use-annotated --enum-field-as-literal one --output-model-type pydantic_v2.BaseModel"
Loading

0 comments on commit 147ff11

Please sign in to comment.