Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What type of PR is this? (check all applicable)
Have you discussed this change with the InvokeAI team?
Have you updated all relevant documentation?
Description
Restructures workflows to not get catch-22'd.
There are now 6 code-related workflows:
frontend-checks
(several frontend code quality checks)frontend-tests
(vitest
)python-checks
(ruff
)python-tests
(pytest
)build-installer
(builds the installer)release
(all checks, build, and publish - pauses before publishing)The checks and test are run on each PR and push to
main
. When triggered this way, they each check for changed files before running.All workflows may be dispatched manually. When triggered this way, they do not check for changed files - they just run.
The build workflow is only dispatched manually, or as a part of the bigger release workflow. You can run it manually to get an installer to try out.
The release workflow runs all the checks, tests and builds, then pauses for manually approval before releasing to PyPI.
Also adds python 3.11 to the test matrix. We support both 3.10 and 3.11 so we should really run tests on both.
QA Instructions, Screenshots, Recordings
Not really possible to test this unless you merge it into a fork. I've tested various scenarios on my fork.
My last attempt in #5839 ran the workflows fine, but due to the structure and relationship between them, couldn't be set up as required status checks. In this PR, the structure is revised to avoid this issue. Additionally, I've set the status checks up on my fork and confirmed that they trigger correctly.
Merge Plan
This PR can be merged when approved.
Are there any post deployment tasks we need to perform?
❗❗❗
Once this is merged, the required statuses must be updated in the repo settings:
❗❗❗