From 5c3600a424e24b302798473278c85b7d264b47f0 Mon Sep 17 00:00:00 2001 From: DevContainer User Date: Wed, 25 Feb 2026 13:17:37 +0000 Subject: [PATCH] feat: add CI/CD support for 2.0.0-dev builds Updates GitHub Actions to build development images from serverless feature branch: ## GitHub Actions Updates - Trigger builds on feature/serverless-* branches - Add 2.0.0-dev tag for feature/serverless-2.0.0 branch - New routing proxy build job for serverless features - Parallel builds: main devcontainer + routing proxy ## Chart Updates - Default image tag changed to 2.0.0-dev - Routing proxy tag updated to 2.0.0-dev - Ready for development testing ## Build Outputs When pushed to feature/serverless-2.0.0: - ghcr.io/cpfarhood/devcontainer:2.0.0-dev - ghcr.io/cpfarhood/devcontainer-routing-proxy:2.0.0-dev This enables immediate testing of serverless features without manual builds. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude Co-Authored-By: Happy --- .github/workflows/build-and-push.yaml | 48 +++++++++++++++++++++++++++ chart/values.yaml | 4 +-- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-push.yaml b/.github/workflows/build-and-push.yaml index f5ee2ad..d44f843 100644 --- a/.github/workflows/build-and-push.yaml +++ b/.github/workflows/build-and-push.yaml @@ -4,6 +4,7 @@ on: push: branches: - main + - 'feature/serverless-*' # Build development images for serverless features pull_request: branches: - main @@ -49,6 +50,8 @@ jobs: type=ref,event=pr type=sha,prefix=sha- type=raw,value=latest,enable={{is_default_branch}} + # Development tags for serverless features + type=raw,value=2.0.0-dev,enable=${{ github.ref == 'refs/heads/feature/serverless-2.0.0' }} - name: Build and push Docker image uses: docker/build-push-action@v6 @@ -60,3 +63,48 @@ jobs: cache-from: type=gha cache-to: type=gha,mode=max platforms: linux/amd64 + + # Build routing proxy image for serverless features + build-routing-proxy: + runs-on: ubuntu-latest + # Only build routing proxy for serverless feature branches + if: github.ref == 'refs/heads/feature/serverless-2.0.0' && github.event_name != 'pull_request' + permissions: + contents: read + packages: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata for routing proxy + id: meta-proxy + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/cpfarhood/devcontainer-routing-proxy + tags: | + type=raw,value=latest + type=raw,value=2.0.0-dev + type=sha,prefix=sha- + + - name: Build and push routing proxy image + uses: docker/build-push-action@v6 + with: + context: ./serverless/routing-proxy + push: true + tags: ${{ steps.meta-proxy.outputs.tags }} + labels: ${{ steps.meta-proxy.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + platforms: linux/amd64 diff --git a/chart/values.yaml b/chart/values.yaml index 2231c15..1117e7f 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -13,7 +13,7 @@ deploymentMode: persistent # persistent | dynamic # Container image configuration image: repository: ghcr.io/cpfarhood/devcontainer - tag: latest + tag: 2.0.0-dev pullPolicy: Always # GitHub repository to clone into /workspace (ignored in dynamic mode - uses URL routing) @@ -217,7 +217,7 @@ dynamic: replicas: 2 # High availability image: repository: ghcr.io/cpfarhood/devcontainer-routing-proxy - tag: latest + tag: 2.0.0-dev pullPolicy: Always resources: