feat: matrix-parallelized multi-language CI/CD architecture with dynamic versioning - #376
Merged
Merged
Conversation
✅ Deploy Preview for stupendous-kringle-a86e81 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
AR21SM
marked this pull request as draft
August 19, 2025 15:43
Contributor
|
This can't be merged until 2.0-translations and 1.0 translations have a |
OriolAbril
reviewed
Aug 19, 2025
AR21SM
marked this pull request as ready for review
August 24, 2025 07:03
OriolAbril
reviewed
Aug 26, 2025
aterrel
approved these changes
Aug 26, 2025
OriolAbril
approved these changes
Aug 26, 2025
OriolAbril
added a commit
that referenced
this pull request
Aug 26, 2025
* update/workflow with parallel language builds and versioning * update/build_website.sh file * Remove/Tag deployment * add/concurrency * fix:all remaining changes * fix:environmment variable in conf.py * feat: deploy all languages including hidden ones --------- Co-authored-by: Oriol Abril-Pla <oriol.abril.pla@gmail.com>
This was referenced Aug 29, 2025
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Architecture Overview
This pull request implements a comprehensive refactoring of the documentation deployment infrastructure, transforming a monolithic single-threaded build pipeline into a distributed, matrix-parallelized CI/CD architecture. The implementation leverages advanced GitHub Actions orchestration patterns to achieve horizontal scaling across multiple language variants with smart version handling and safe, atomic deployments.
Core Technical Implementations
1. Matrix-Based Parallel Execution Framework
Before: Simple single-job workflow
After: Complex multi-job matrix system
This change enables parallel builds across all languages instead of sequential builds.
2. Dynamic Language Detection
Implemented a JSON-driven service discovery mechanism with runtime parsing capabilities:
Now adding a new language only requires updating the JSON file - no workflow changes needed
3. Automatic Version Detection
Built a Git context-aware version detection system:
The system automatically detects if you're on a tag, translation branch, or development branch and sets the version accordingly.
4. Advanced Branch Pattern Matching
This setup triggers builds for all translation branches but excludes specific legacy versions using negative patterns.
5. Environment Variable Injection Architecture
DISCOVER/conf.py modernization:
Sphinx configuration now operates through environment variable injection, enabling runtime parametrization of build contexts.
6. Parameterized Build Orchestration
ci/build_website.sh enhancement:
The build script now accepts parameters and passes them to Sphinx through environment variables.
7. Automatic Redirect Generation
Generates redirect infrastructure with canonical URL directives for optimized SEO and user navigation patterns.
8. Structured Deployment Architecture
Each language gets deployed to its own directory: /version/language/ (like /dev/en/, /dev/es/, etc.)
9. Concurrency Management System
Prevents multiple deployments from running at the same time and cancels old ones when new commits come in.
10. Root Deployment
Ensures root files are deployed only when running from the main branch.
11. Directory Structure Schema
This system scales to handle dozens of languages without requiring workflow changes.