Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ad5993d
feat: add Chromium and jq to ralphex-fe Dockerfile for Playwright sup…
gatezh Feb 25, 2026
f021ce7
feat: verify ralphex-fe image build (static analysis, Docker unavaila…
gatezh Feb 25, 2026
90efa85
docs(ralphex-fe): document Chromium/Playwright and jq in README
gatezh Feb 25, 2026
c0a21e6
feat: verify ralphex-fe Playwright support acceptance criteria
gatezh Feb 25, 2026
11ba5e4
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 25, 2026
7e514ce
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 25, 2026
b182969
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 25, 2026
a63dda4
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 25, 2026
ddc50c1
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 25, 2026
06a1dbc
feat: mark Task 1 complete (branch was already at master HEAD when im…
gatezh Feb 26, 2026
baa816c
feat: mark Task 2 complete (Dockerfile already has Playwright support)
gatezh Feb 26, 2026
86a1288
feat: simplify build-ralphex-fe.yml image tags to use only ralphex ve…
gatezh Feb 26, 2026
fde64d0
feat: simplify update-and-build-ralphex-fe.yml image tags to use only…
gatezh Feb 26, 2026
f07d7a5
feat: update README for simplified tags and Playwright documentation
gatezh Feb 26, 2026
e29892c
feat: verify all changes for Playwright support in ralphex-fe
gatezh Feb 26, 2026
c8b8ecb
feat: verify documentation - main README and AGENTS.md conventions co…
gatezh Feb 26, 2026
7f2ab9f
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 26, 2026
3bfd707
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 26, 2026
fde15b7
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 26, 2026
063a3e4
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 26, 2026
4f308ff
fix: address code review findings for ralphex-fe Playwright support
gatezh Feb 26, 2026
7d3101e
fix: resolve merge conflict in update-and-build-ralphex-fe workflow
gatezh Mar 4, 2026
1f60f85
docs: remove Playwright usage guide from READMEs
gatezh Mar 4, 2026
5353c9b
Restore previous version tag format
gatezh Mar 4, 2026
7443098
fix(ci): use full path for ralphex binary in verification step
gatezh Mar 4, 2026
c49ca99
Optimize CI
gatezh Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 19 additions & 77 deletions .github/workflows/build-devcontainer-bun.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,15 @@ on:
- 'devcontainer-bun/.devcontainer/Dockerfile'
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: devcontainer-bun
concurrency:
group: build-devcontainer-bun-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-push:
prepare:
runs-on: ubuntu-latest

permissions:
contents: read
packages: write

outputs:
version-tag: ${{ steps.versions.outputs.version-tag }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -28,72 +25,17 @@ jobs:
id: versions
run: |
DOCKERFILE="devcontainer-bun/.devcontainer/Dockerfile"

BUN_VERSION=$(grep '^ARG BUN_VERSION=' "$DOCKERFILE" | cut -d'=' -f2)

echo "bun=$BUN_VERSION" >> "$GITHUB_OUTPUT"

echo "Extracted versions:"
echo " Bun: $BUN_VERSION"

- name: Generate image tags
id: tags
run: |
NAMESPACE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
BASE_IMAGE="${{ env.REGISTRY }}/${NAMESPACE}/${{ env.IMAGE_NAME }}"

BUN_VERSION="${{ steps.versions.outputs.bun }}"

VERSION_TAG="bun${BUN_VERSION}-alpine"

TAGS="${BASE_IMAGE}:latest,${BASE_IMAGE}:${VERSION_TAG}"

{
echo "namespace=$NAMESPACE"
echo "tags=$TAGS"
} >> "$GITHUB_OUTPUT"
echo "Generated tags:"
echo "$TAGS" | tr ',' '\n'

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ steps.tags.outputs.namespace }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: devcontainer-bun/.devcontainer
file: devcontainer-bun/.devcontainer/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.tags.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Verify image
run: |
TAGS="${{ steps.tags.outputs.tags }}"
FIRST_TAG=$(echo "$TAGS" | cut -d',' -f1)

echo "Verifying multiplatform image: $FIRST_TAG"
docker pull --platform linux/amd64 "$FIRST_TAG"
docker pull --platform linux/arm64 "$FIRST_TAG"

echo "Multiplatform image successfully built and pushed!"
echo "Tags: $TAGS"
echo "version-tag=bun${BUN_VERSION}-alpine" >> "$GITHUB_OUTPUT"
echo "Bun: $BUN_VERSION"

build:
needs: prepare
uses: ./.github/workflows/reusable-docker-build.yml
with:
image-name: devcontainer-bun
context: devcontainer-bun/.devcontainer
dockerfile: devcontainer-bun/.devcontainer/Dockerfile
version-tag: ${{ needs.prepare.outputs.version-tag }}
verify-command: 'bun --version'
secrets: inherit
96 changes: 19 additions & 77 deletions .github/workflows/build-devcontainer-claude-bun.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,15 @@ on:
- 'devcontainer-claude-bun/.devcontainer/init-firewall.sh'
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: devcontainer-claude-bun
concurrency:
group: build-devcontainer-claude-bun-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-push:
prepare:
runs-on: ubuntu-latest

permissions:
contents: read
packages: write

outputs:
version-tag: ${{ steps.versions.outputs.version-tag }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -29,72 +26,17 @@ jobs:
id: versions
run: |
DOCKERFILE="devcontainer-claude-bun/.devcontainer/Dockerfile"

BUN_VERSION=$(grep '^ARG BUN_VERSION=' "$DOCKERFILE" | cut -d'=' -f2)

echo "bun=$BUN_VERSION" >> "$GITHUB_OUTPUT"

echo "Extracted versions:"
echo " Bun: $BUN_VERSION"

- name: Generate image tags
id: tags
run: |
NAMESPACE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
BASE_IMAGE="${{ env.REGISTRY }}/${NAMESPACE}/${{ env.IMAGE_NAME }}"

BUN_VERSION="${{ steps.versions.outputs.bun }}"

VERSION_TAG="bun${BUN_VERSION}-slim"

TAGS="${BASE_IMAGE}:latest,${BASE_IMAGE}:${VERSION_TAG}"

{
echo "namespace=$NAMESPACE"
echo "tags=$TAGS"
} >> "$GITHUB_OUTPUT"
echo "Generated tags:"
echo "$TAGS" | tr ',' '\n'

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ steps.tags.outputs.namespace }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: devcontainer-claude-bun/.devcontainer
file: devcontainer-claude-bun/.devcontainer/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.tags.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Verify image
run: |
TAGS="${{ steps.tags.outputs.tags }}"
FIRST_TAG=$(echo "$TAGS" | cut -d',' -f1)

echo "Verifying multiplatform image: $FIRST_TAG"
docker pull --platform linux/amd64 "$FIRST_TAG"
docker pull --platform linux/arm64 "$FIRST_TAG"

echo "Multiplatform image successfully built and pushed!"
echo "Tags: $TAGS"
echo "version-tag=bun${BUN_VERSION}-slim" >> "$GITHUB_OUTPUT"
echo "Bun: $BUN_VERSION"

build:
needs: prepare
uses: ./.github/workflows/reusable-docker-build.yml
with:
image-name: devcontainer-claude-bun
context: devcontainer-claude-bun/.devcontainer
dockerfile: devcontainer-claude-bun/.devcontainer/Dockerfile
version-tag: ${{ needs.prepare.outputs.version-tag }}
verify-command: 'bun --version'
secrets: inherit
104 changes: 19 additions & 85 deletions .github/workflows/build-devcontainer-hugo-bun-node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,15 @@ on:
- 'devcontainer-hugo-bun-node/.devcontainer/Dockerfile'
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: devcontainer-hugo-bun-node
concurrency:
group: build-devcontainer-hugo-bun-node-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-push:
prepare:
runs-on: ubuntu-latest

permissions:
contents: read
packages: write

outputs:
version-tag: ${{ steps.versions.outputs.version-tag }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -28,82 +25,19 @@ jobs:
id: versions
run: |
DOCKERFILE="devcontainer-hugo-bun-node/.devcontainer/Dockerfile"

HUGO_VERSION=$(grep '^ARG HUGO_VERSION=' "$DOCKERFILE" | cut -d'=' -f2)
BUN_VERSION=$(grep '^ARG BUN_VERSION=' "$DOCKERFILE" | cut -d'=' -f2)
NODE_VERSION=$(grep '^ARG NODE_VERSION=' "$DOCKERFILE" | cut -d'=' -f2)

{
echo "hugo=$HUGO_VERSION"
echo "bun=$BUN_VERSION"
echo "node=$NODE_VERSION"
} >> "$GITHUB_OUTPUT"

echo "Extracted versions:"
echo " Hugo: $HUGO_VERSION"
echo " Bun: $BUN_VERSION"
echo " Node: $NODE_VERSION"

- name: Generate image tags
id: tags
run: |
NAMESPACE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
BASE_IMAGE="${{ env.REGISTRY }}/${NAMESPACE}/${{ env.IMAGE_NAME }}"

HUGO_VERSION="${{ steps.versions.outputs.hugo }}"
BUN_VERSION="${{ steps.versions.outputs.bun }}"
NODE_VERSION="${{ steps.versions.outputs.node }}"

VERSION_TAG="hugo${HUGO_VERSION}-bun${BUN_VERSION}-node${NODE_VERSION}-alpine"

TAGS="${BASE_IMAGE}:latest,${BASE_IMAGE}:${VERSION_TAG}"

{
echo "namespace=$NAMESPACE"
echo "tags=$TAGS"
} >> "$GITHUB_OUTPUT"
echo "Generated tags:"
echo "$TAGS" | tr ',' '\n'

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ steps.tags.outputs.namespace }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: devcontainer-hugo-bun-node/.devcontainer
file: devcontainer-hugo-bun-node/.devcontainer/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.tags.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Verify image
run: |
TAGS="${{ steps.tags.outputs.tags }}"
FIRST_TAG=$(echo "$TAGS" | cut -d',' -f1)

echo "Verifying multiplatform image: $FIRST_TAG"
docker pull --platform linux/amd64 "$FIRST_TAG"
docker pull --platform linux/arm64 "$FIRST_TAG"

echo "✅ Multiplatform image successfully built and pushed!"
echo "Tags: $TAGS"
echo "version-tag=hugo${HUGO_VERSION}-bun${BUN_VERSION}-node${NODE_VERSION}-alpine" >> "$GITHUB_OUTPUT"
echo "Hugo: $HUGO_VERSION, Bun: $BUN_VERSION, Node: $NODE_VERSION"

build:
needs: prepare
uses: ./.github/workflows/reusable-docker-build.yml
with:
image-name: devcontainer-hugo-bun-node
context: devcontainer-hugo-bun-node/.devcontainer
dockerfile: devcontainer-hugo-bun-node/.devcontainer/Dockerfile
version-tag: ${{ needs.prepare.outputs.version-tag }}
verify-command: 'bun --version && hugo version && node --version'
secrets: inherit
Loading