Skip to content

Commit

Permalink
feat: project documentation
Browse files Browse the repository at this point in the history
Added swagger ui for github pages; added github actions with periodic task to update openapi specs
  • Loading branch information
cakeinsauce committed Feb 7, 2023
1 parent d7f2d54 commit 9e3d27d
Show file tree
Hide file tree
Showing 51 changed files with 21,873 additions and 1,386 deletions.
365 changes: 365 additions & 0 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,365 @@
name: Documentation build and push
on:
push:
branches:
- main
jobs:
annotation:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/annotation.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./annotation
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --no-root
poetry add --editable ../lib/filter_lib
poetry add --editable ../lib/tenants
- name: Generate documentation
working-directory: ./annotation
run: poetry run python app/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
assets:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/assets.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./assets
run: |
python -m pip install --upgrade pip
sudo apt-get update && sudo apt-get -y install poppler-utils
pip install -r requirements.txt
pip install -e ../lib/filter_lib
pip install -e ../lib/tenants
- name: Generate documentation
working-directory: ./assets
run: python src/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
convert:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/convert.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./convert
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --no-root
poetry add --editable ../lib/tenants
- name: Generate documentation
working-directory: ./convert
run: poetry run python src/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/jobs.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./jobs
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e ../lib/filter_lib
pip install -e ../lib/tenants
- name: Generate documentation
working-directory: ./jobs
run: python jobs/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
models:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/models.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./models
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --no-root
poetry add --editable ../lib/filter_lib
poetry add --editable ../lib/tenants
- name: Generate documentation
working-directory: ./models
run: poetry run python src/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
pipelines:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/pipelines.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./pipelines
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e ../lib/filter_lib
pip install -e ../lib/tenants
- name: Generate documentation
working-directory: ./pipelines
run: python src/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
processing:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/processing.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./processing
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --no-root
poetry add --editable ../lib/tenants
- name: Generate documentation
working-directory: ./processing
run: poetry run python src/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
scheduler:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/scheduler.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./scheduler
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e ../lib/tenants
- name: Generate documentation
working-directory: ./scheduler
run: python scheduler/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
search:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/search.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./search
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --no-root
poetry add --editable ../lib/filter_lib
poetry add --editable ../lib/tenants
- name: Generate documentation
working-directory: ./search
run: poetry run python search/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
taxonomy:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/taxonomy.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./taxonomy
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --no-root
poetry add --editable ../lib/filter_lib
poetry add --editable ../lib/tenants
- name: Generate documentation
working-directory: ./taxonomy
run: poetry run python app/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
users:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [ "3.8.15" ]
env:
SPEC_PATH: ./docs/openapi/users.json
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install dependencies
working-directory: ./users
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -e ../lib/tenants
- name: Generate documentation
working-directory: ./users
run: python src/cli.py openapi .$SPEC_PATH
env:
PYTHONPATH: .
- name: Save documentation
uses: actions/upload-artifact@v3
with:
path: ${{ env.SPEC_PATH }}
commit-specs:
runs-on: ubuntu-latest
needs: [annotation, assets, convert, jobs, models, pipelines, processing, scheduler, search, taxonomy, users]
env:
DOCS_PATH: ./docs/openapi
steps:
- uses: actions/checkout@v3
- name: Download generated specs
id: download
uses: actions/download-artifact@v3
with:
path: /tmp
- name: Extract downloaded specs
run: mv ${{ steps.download.outputs.download-path }}/artifact/*.json ${{ env.DOCS_PATH }}
- name: Push documentation
working-directory: ${{ env.DOCS_PATH }}
run: |
git add .
if git diff --quiet HEAD ./; then
echo No changes in documentation, exiting
exit 0
fi
echo # TODO: Do nothing right now, replace with push to S3 later
# git -c user.name='github-actions[bot]' -c user.email='github-actions[bot]@users.noreply.github.com' \
# commit --message "docs: update openapi specs"
# git push origin HEAD
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import sqlalchemy_utils

from alembic import op
from app import database

# revision identifiers, used by Alembic.
revision = "66cd6054c2d0"
Expand All @@ -19,6 +20,7 @@

def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
database.install_ltree_extension()
op.add_column(
"categories",
sa.Column(
Expand Down
Loading

0 comments on commit 9e3d27d

Please sign in to comment.