- Notifications
You must be signed in to change notification settings - Fork 75
ci: improve workflow robustness and performance #197
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
Conversation
- Add concurrency controls to prevent duplicate workflow runs - Implement job timeouts (10min quality, 30min test, 45min release) - Replace hardcoded pnpm setup with Corepack for automatic version management - Add pnpm store caching to speed up dependency installation - Add matrix testing for Node.js 18, 20, and 22 - Add build verification steps before tests and releases - Improve changeset validation with better error handling - Fix biome format check with --unsafe flag for CI environment - Add minimal permissions to release workflow for security - Enhance dry run mode to show actual version changes - Ensure only one release can run at a time
|
| To view this pull requests documentation preview, visit the following URL: docs.page/invertase/tanstack-query-firebase~197 Documentation is deployed and generated using docs.page. |
- Add explanatory comments for the --unsafe flag in format checks - Fix script error handling by moving set -e to the beginning - Use timestamp-based unique branch names for dry-run to prevent conflicts
- Add explanatory comments for the --unsafe flag in format checks - Fix script error handling by moving set -e to the beginning - Use GITHUB_RUN_ID for unique branch names to prevent conflicts - Make build verification dynamic to discover packages automatically - Fix git diff references in dry run by saving original HEAD
- Replace hardcoded package paths with dynamic discovery in build verification - Fix shell compatibility by avoiding command substitution in variable expansion - Use 1135430206 instead of 1753700397 for better portability - Save original HEAD reference before dry-run changes for accurate diffs - Fix spacing in error messages for better readability
b8b7250 to e682f0f Compare 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.
Pull Request Overview
This PR enhances GitHub Actions workflow robustness, performance, and security by implementing concurrency controls, timeouts, and improved dependency management. The changes focus on preventing duplicate workflow runs, optimizing build performance, and adding comprehensive validation steps.
- Add concurrency controls and timeouts to prevent resource conflicts and runaway jobs
- Replace hardcoded pnpm setup with Corepack and implement pnpm store caching for faster builds
- Add Node.js matrix testing, build verification, and enhanced changeset validation with better error handling
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| .github/workflows/tests.yaml | Adds concurrency controls, timeouts, Corepack setup, pnpm caching, Node.js matrix testing, and build verification steps |
| .github/workflows/release.yml | Implements release concurrency controls, minimal permissions, enhanced changeset validation, and improved dry-run mode with actual version changes |
- Make build verification consistent between workflows by using dynamic package discovery - Add git user configuration for dry-run to prevent changeset version errors - Remove hardcoded package paths in release.yml to match tests.yaml approach - Remove Node.js 18 from test matrix due to Firebase CLI v14 incompatibility
e682f0f to cc2bec9 Compare
Add concurrency controls to prevent duplicate workflow runs
Implement job timeouts (10min quality, 30min test, 45min release)
Replace hardcoded pnpm setup with Corepack for automatic version management
Add pnpm store caching to speed up dependency installation
Add matrix testing for Node.js 20, and 22
Add build verification steps before tests and releases
Improve changeset validation with better error handling
Fix biome format check with --unsafe flag for CI environment
Add minimal permissions to release workflow for security
Enhance dry run mode to show actual version changes
Ensure only one release can run at a time