-
Notifications
You must be signed in to change notification settings - Fork 468
[WIP]🔨 Change deployment from serial to parallel to improve efficiency. #738
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
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 refactors the GitHub Actions workflow to improve deployment efficiency by changing from serial to parallel build execution. The workflow consolidates three separate build jobs into a single parallelized job using a matrix strategy.
- Consolidates three separate build jobs (
build-main,build-data-process,build-web) into onebuild-imagesjob with matrix strategy - Implements conditional logic for data-process specific model caching operations
- Updates deployment job dependency to reference the single build job
.github/workflows/docker-deploy.yml
Outdated
| else | ||
| docker build --build-arg MIRROR=https://registry.npmmirror.com -t nexent/nexent-web -f make/web/Dockerfile . |
Copilot
AI
Aug 5, 2025
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.
The else clause assumes any target other than 'main' or 'data-process' is 'web'. This could lead to unexpected behavior if the matrix is extended with additional targets. Consider explicitly checking for 'web' target: elif [ "${{ matrix.target }}" = "web" ]; then
| else | |
| docker build --build-arg MIRROR=https://registry.npmmirror.com -t nexent/nexent-web -f make/web/Dockerfile . | |
| elif [ "${{ matrix.target }}" = "web" ]; then | |
| docker build --build-arg MIRROR=https://registry.npmmirror.com -t nexent/nexent-web -f make/web/Dockerfile . | |
| else | |
| echo "Unknown target: ${{ matrix.target }}" >&2 | |
| exit 1 |
.github/workflows/docker-deploy.yml
Outdated
| - name: Clone model if not cached | ||
| if: steps.check-model.outputs.cache-hit == 'false' | ||
| if: matrix.target == 'data-process' && steps.check-model.outputs.cache-hit == 'false' |
Copilot
AI
Aug 5, 2025
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.
The condition references steps.check-model.outputs.cache-hit but the check-model step only runs when matrix.target == 'data-process'. For other matrix targets, this step doesn't exist and the condition will fail. Consider restructuring the conditions or using a default value.
| if: matrix.target == 'data-process' && steps.check-model.outputs.cache-hit == 'false' | |
| if: ${{ matrix.target == 'data-process' && steps.check-model.outputs.cache-hit == 'false' }} |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
🔨 Change deployment from serial to parallel to improve efficiency.