committed by
GitHub
7 changed files with 100 additions and 31 deletions
@ -0,0 +1,49 @@ |
|||||
|
name: Generate Client |
||||
|
|
||||
|
on: |
||||
|
pull_request: |
||||
|
types: |
||||
|
- opened |
||||
|
- synchronize |
||||
|
|
||||
|
jobs: |
||||
|
generate-client: |
||||
|
permissions: |
||||
|
contents: write |
||||
|
runs-on: ubuntu-latest |
||||
|
steps: |
||||
|
- uses: actions/checkout@v4 |
||||
|
with: |
||||
|
ref: ${{ github.head_ref }} |
||||
|
token: ${{ secrets.FULL_STACK_FASTAPI_TEMPLATE_REPO_TOKEN }} |
||||
|
- uses: actions/setup-node@v4 |
||||
|
with: |
||||
|
node-version: lts/* |
||||
|
- uses: actions/setup-python@v5 |
||||
|
with: |
||||
|
python-version: '3.10' |
||||
|
- name: Install dependencies |
||||
|
run: npm ci |
||||
|
working-directory: frontend |
||||
|
- run: pip install ./backend |
||||
|
- run: bash scripts/generate-client.sh |
||||
|
- name: Commit changes |
||||
|
run: | |
||||
|
git config --local user.email "github-actions@github.com" |
||||
|
git config --local user.name "github-actions" |
||||
|
git add frontend/src/client |
||||
|
git diff --staged --quiet || git commit -m "✨ Autogenerate frontend client" |
||||
|
git push |
||||
|
|
||||
|
# https://github.com/marketplace/actions/alls-green#why |
||||
|
generate-client-alls-green: # This job does nothing and is only used for the branch protection |
||||
|
if: always() |
||||
|
needs: |
||||
|
- generate-client |
||||
|
runs-on: ubuntu-latest |
||||
|
steps: |
||||
|
- name: Decide whether the needed jobs succeeded or failed |
||||
|
uses: re-actors/alls-green@release/v1 |
||||
|
with: |
||||
|
jobs: ${{ toJSON(needs) }} |
||||
|
|
@ -0,0 +1,8 @@ |
|||||
|
#! /usr/bin/env bash |
||||
|
|
||||
|
PYTHONPATH=backend python -c "import app.main; import json; print(json.dumps(app.main.app.openapi()))" > openapi.json |
||||
|
node frontend/modify-openapi-operationids.js |
||||
|
mv openapi.json frontend/ |
||||
|
cd frontend |
||||
|
npm run generate-client |
||||
|
npx biome format --write ./src/client |
Loading…
Reference in new issue