-
Notifications
You must be signed in to change notification settings - Fork 584
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vastly overhaul the CI workflow for build checks #852
Conversation
This workflow compiles TFQ and runs test cases to verify things work after file changes are made by a PR or other event. It is a complete rewrite of the previous TFQ build & test checks CI workflow, and incorporates many new features and efficiency gains: - Serious use of caching of the Python installation and environment, as well as the Bazel environment, so that repeated runs don't have to reinstall everything every time. - File-aware execution: the workflow tests whether source files and build configuration files have been modified in a given event, and stops early if the event didn't affect such files. - Compatibility with GitHub [merge queues](https://github.blog/news-insights/product-news/github-merge-queue-is-generally-available/). - Concurrency detection: if a new event such as a push to a PR branch comes in while a workflow is already executing, that workflow is cancelled and a new one restarted. (The existing workflow keeps the existing one running and starts a second one, which is almost never useful.) - Addition of a manual run interface, allowing the workflow to be invoked manually from the GitHub GUI with different values for program versions – useful for debugging, testing, exploring behaviors with different versions of linters, etc.
In reference to a previous PR proposing to filter test execution to exclude tests tagged as "eternal", here is some timing information.
These are shorter because they're hitting timeouts and getting cut short. Conclusions:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This workflow compiles TFQ and runs test cases to verify things work after file changes are made by a PR or other event. It is a complete rewrite of the previous TFQ build & test checks CI workflow, and incorporates many new features and efficiency gains:
Serious use of caching of the Python installation and environment, as well as the Bazel environment, so that repeated runs don't have to reinstall everything every time.
File-aware execution: the workflow tests whether source files and build configuration files have been modified in a given event, and stops early if the event didn't affect such files.
Compatibility with GitHub merge queues.
Concurrency detection: if a new event such as a push to a PR branch comes in while a workflow is already executing, that workflow is cancelled and a new one restarted. (The existing workflow keeps the existing one running and starts a second one, which is almost never useful.)
Addition of a manual run interface, allowing the workflow to be invoked manually from the GitHub GUI with different values for program versions – useful for debugging, testing, exploring behaviors with different versions of linters, etc.