-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(ci): add typegen check workflow
- Loading branch information
1 parent
1038f7b
commit 22730be
Showing
1 changed file
with
85 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# Runs typegen schema quality checks. | ||
# Frontend types should match the server. | ||
# | ||
# Checks for changes to files before running the checks. | ||
# If always_run is true, always runs the checks. | ||
|
||
name: 'typegen checks' | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'main' | ||
pull_request: | ||
types: | ||
- 'ready_for_review' | ||
- 'opened' | ||
- 'synchronize' | ||
merge_group: | ||
workflow_dispatch: | ||
inputs: | ||
always_run: | ||
description: 'Always run the checks' | ||
required: true | ||
type: boolean | ||
default: true | ||
workflow_call: | ||
inputs: | ||
always_run: | ||
description: 'Always run the checks' | ||
required: true | ||
type: boolean | ||
default: true | ||
|
||
jobs: | ||
typegen-checks: | ||
runs-on: ubuntu-22.04 | ||
timeout-minutes: 15 # expected run time: <5 min | ||
steps: | ||
- name: checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: check for changed files | ||
if: ${{ inputs.always_run != true }} | ||
id: changed-files | ||
uses: tj-actions/changed-files@v42 | ||
with: | ||
files_yaml: | | ||
src: | ||
- 'pyproject.toml' | ||
- 'invokeai/**' | ||
- name: setup python | ||
if: ${{ steps.changed-files.outputs.src_any_changed == 'true' || inputs.always_run == true }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
cache: pip | ||
cache-dependency-path: pyproject.toml | ||
|
||
- name: install python dependencies | ||
if: ${{ steps.changed-files.outputs.src_any_changed == 'true' || inputs.always_run == true }} | ||
run: pip3 install --use-pep517 --editable="." | ||
|
||
- name: install frontend dependencies | ||
if: ${{ steps.changed-files.outputs.src_any_changed == 'true' || inputs.always_run == true }} | ||
uses: ./.github/actions/install-frontend-deps | ||
|
||
- name: copy schema | ||
if: ${{ steps.changed-files.outputs.src_any_changed == 'true' || inputs.always_run == true }} | ||
run: cp invokeai/frontend/web/src/services/api/schema.ts invokeai/frontend/web/src/services/api/schema_orig.ts | ||
shell: bash | ||
|
||
- name: generate schema | ||
if: ${{ steps.changed-files.outputs.src_any_changed == 'true' || inputs.always_run == true }} | ||
run: make frontend-typegen | ||
shell: bash | ||
|
||
- name: compare files | ||
if: ${{ steps.changed-files.outputs.src_any_changed == 'true' || inputs.always_run == true }} | ||
run: | | ||
if ! diff invokeai/frontend/web/src/services/api/schema.ts invokeai/frontend/web/src/services/api/schema_orig.ts; then | ||
echo "Files are different!"; | ||
exit 1; | ||
fi | ||
shell: bash |