Enhance CI/CD pipeline with unified workflow and semantic versioning#11
Merged
Merged
Conversation
Major refactoring to improve code organization and maintainability: Structure improvements: - Split monolithic script into 26 focused functions - Organized into logical sections with clear headers - Added comprehensive documentation and comments - Moved all configuration to the top as readonly arrays Code quality improvements: - Created reusable functions to eliminate duplication - Consistent error handling with logging functions - Better separation of concerns - Clear main() function showing high-level flow - Proper use of local variables and return codes Maintained functionality: - All existing features preserved - Bug fixes retained (array-based 1Password domain handling) - Docker DNS preservation intact - All domain resolutions and firewall rules unchanged This refactoring makes the script easier to understand, test, debug, and extend while maintaining 100% feature parity.
- Remove root .devcontainer directory (not needed for template repository) - Move image sources from docker-image/ to image-sources/ directory structure - Restructure to follow Dev Container template spec with self-contained templates in src/ - Update GitHub Actions workflow to build from image-sources/ - Update documentation to reflect new architecture - Remove interactive create-limited-git-setup.sh script for cleaner automation This restructuring separates concerns properly: templates are self-contained in src/ and use pre-built images, while image sources are maintained separately for CI/CD pipeline consumption.
- Replace separate build-image.yml and publish-templates.yml with unified build-and-publish.yml - Implement Dev Container spec-compliant semantic versioning for templates and images - Add PR build support with pr-<number> tags for testing changes before merge - Support multi-template builds with matrix strategy for scalability - Add comprehensive VERSIONING.md documentation for release process - Bump template version to 1.0.1 following semantic versioning standards The unified workflow streamlines CI/CD operations while maintaining proper versioning and enabling thorough testing of changes through PR builds.
- Fix GitHub Actions output format for multi-line JSON - Fix devcontainer CLI namespace argument (use --namespace instead of --registry-namespace)
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.
Summary
This PR significantly improves our CI/CD pipeline by implementing a unified workflow system with proper semantic versioning support and enhanced testing capabilities.
Key Improvements
• Unified Workflow: Consolidated separate
build-image.ymlandpublish-templates.ymlinto a singlebuild-and-publish.ymlworkflow that handles both Docker images and OCI templates efficiently• Semantic Versioning Compliance: Implemented proper semantic versioning following the Dev Container specification, ensuring consistent version management across templates and images
• PR Testing Support: Added
pr-<number>tag generation for pull requests, enabling thorough testing of changes before they reach the main branch• Multi-Template Architecture: Built-in support for multiple templates using matrix builds, preparing the repository for future template additions
• Comprehensive Documentation: Added
VERSIONING.mdwith clear guidelines for version management and release processesTechnical Changes
build-image.yml,publish-templates.yml)build-and-publish.ymlwith matrix build support1.0.0to1.0.1following semantic versioningBenefits
Test Plan
This enhancement positions our CI/CD pipeline for better maintainability, testing, and compliance with Dev Container standards.