Skip to content

Commit

Permalink
create unified lint CI
Browse files Browse the repository at this point in the history
  • Loading branch information
Pwuts committed May 25, 2024
1 parent 0d627fe commit d2c9723
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 42 deletions.
42 changes: 0 additions & 42 deletions .github/workflows/autogpt-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,48 +24,6 @@ defaults:
working-directory: autogpt

jobs:
lint:
runs-on: ubuntu-latest
env:
min-python-version: "3.10"

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.min-python-version }}

- id: get_date
name: Get date
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT

- name: Set up Python dependency cache
uses: actions/cache@v4
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles('autogpt/pyproject.toml') }}-${{ steps.get_date.outputs.date }}

- name: Install Python dependencies
run: |
curl -sSL https://install.python-poetry.org | python3 -
poetry install
- name: Lint with flake8
run: poetry run flake8

- name: Check black formatting
run: poetry run black . --check
if: success() || failure()

- name: Check isort formatting
run: poetry run isort . --check
if: success() || failure()

test:
permissions:
contents: read
Expand Down
121 changes: 121 additions & 0 deletions .github/workflows/lint-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: Lint CI

on:
push:
branches: [ master, development, ci-test* ]
paths:
- '.github/workflows/lint-ci.yml'
- 'autogpt/**'
- 'forge/**'
- 'benchmark/**'
- '**.py'
- '!autogpt/tests/vcr_cassettes'
pull_request:
branches: [ master, development, release-* ]
paths:
- '.github/workflows/lint-ci.yml'
- 'autogpt/**'
- 'forge/**'
- 'benchmark/**'
- '**.py'
- '!autogpt/tests/vcr_cassettes'

concurrency:
group: ${{ format('lint-ci-{0}', github.head_ref && format('{0}-{1}', github.event_name, github.event.pull_request.number) || github.sha) }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull_request') }}

defaults:
run:
shell: bash

jobs:
job-matrix-from-diff:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- id: changes-in
name: Determine affected subprojects
uses: dorny/paths-filter@v3
with:
filters: |
autogpt:
- autogpt/autogpt/**
- autogpt/tests/**
- autogpt/poetry.lock
forge:
- forge/forge/**
- forge/tests/**
- forge/poetry.lock
benchmark:
- benchmark/agbenchmark/**
- benchmark/tests/**
- benchmark/poetry.lock
- id: make-matrix
run: |
echo '${{ toJson(steps.changes-in.outputs) }}'
matrix=$(
echo '${{ toJson(steps.changes-in.outputs) }}' \
| jq 'with_entries(select(.value == "true")) | keys'
)
echo "matrix=$matrix" >> $GITHUB_OUTPUT
lint-py:
needs: job-matrix-from-diff
runs-on: ubuntu-latest
env:
min-python-version: "3.10"

strategy:
matrix:
sub-package: ${{ fromJson(needs.job-matrix-from-diff.outputs.matrix) }}

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python ${{ env.min-python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.min-python-version }}

- name: Set up Python dependency cache
uses: actions/cache@v4
with:
path: ~/.cache/pypoetry
key: ${{ runner.os }}-poetry-${{ hashFiles(format('{0}/poetry.lock', matrix.package)) }}

- name: Install Poetry
run: curl -sSL https://install.python-poetry.org | python3 -

# Install dependencies

- name: Install Python dependencies
run: poetry -C ${{ matrix.sub-package }} install

# Lint

- name: Lint (isort)
run: poetry run isort --check .
working-directory: ${{ matrix.sub-package }}

- name: Lint (Black)
if: success() || failure()
run: poetry run black --check .
working-directory: ${{ matrix.sub-package }}

- name: Lint (Flake8)
if: success() || failure()
run: poetry run flake8 .
working-directory: ${{ matrix.sub-package }}

# Typecheck

- name: Typecheck
if: success() || failure()
run: poetry run pyright
working-directory: ${{ matrix.sub-package }}

0 comments on commit d2c9723

Please sign in to comment.