Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
21 changes: 21 additions & 0 deletions .devcell.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# .devcell.toml — project-level DevCell overrides (merged on top of ~/.config/devcell/devcell.toml)

# [cell]
# image_tag = "latest-go"
# gui = true
# timezone = "Europe/Prague"

[op]
# 1Password items to resolve and inject as env vars.
# Requires `op` CLI on the host.
items = [
"prod-nmd-trips",
"prod-nmd-finances"
]

# [env]
# Extra environment variables forwarded into the container.
# MY_VAR = "value"

# [[volumes]]
# mount = "~/work/secrets:/run/secrets:ro"
12 changes: 0 additions & 12 deletions .env-example

This file was deleted.

96 changes: 96 additions & 0 deletions .github/workflows/build.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,102 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release edit "${{ env.RELEASE_VERSION }}" --draft=false --latest=false

e2e-install:
name: E2E Install (${{ matrix.arch }})
needs: [cell-build, docker-manifest]
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-latest
arch: amd64
- runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
timeout-minutes: 30
steps:
- name: Download cell binary
run: |
TARBALL="cell-linux-${{ matrix.arch }}.tar.gz"
URL="https://github.com/DimmKirr/devcell/releases/download/v0.0.0/${TARBALL}"
echo "Downloading: ${URL}"
curl -fsSL -o "${TARBALL}" "${URL}"
tar xzf "${TARBALL}"
chmod +x cell
sudo mv cell /usr/local/bin/cell

- name: Verify cell binary
run: |
cell --help
echo "--- cell binary OK ---"

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

- name: Run cell claude --version (full pipeline)
run: |
# Simulate a new user in a fresh project dir
mkdir -p /tmp/e2e-project && cd /tmp/e2e-project

# --plain-text: disable spinners for CI
# Flow: scaffold devcell.toml → pull base image → build user image → start container → print claude version
OUTPUT=$(cell --plain-text claude --version 2>&1) || true
echo "$OUTPUT"

# Assert cell version string is present
if echo "$OUTPUT" | grep -qE "cell\s+v?[0-9]+\.[0-9]+\.[0-9]+"; then
echo "--- PASS: cell version found ---"
else
echo "--- FAIL: cell version string not found in output ---"
exit 1
fi

# Assert the image was built (user image should exist now)
if echo "$OUTPUT" | grep -qiE "(building|built|image)"; then
echo "--- PASS: image build occurred ---"
else
echo "--- WARN: no build output detected (image may have been cached) ---"
fi

brew-install:
name: Brew Install (${{ matrix.arch }})
needs: [cell-build]
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-latest
arch: amd64
- runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
timeout-minutes: 15
steps:
- name: Install Homebrew
run: |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" < /dev/null
echo "/home/linuxbrew/.linuxbrew/bin" >> $GITHUB_PATH

- name: Brew install devcell
run: |
brew tap DimmKirr/tap
brew install devcell

- name: Verify version
run: |
INSTALLED=$(cell --version)
echo "Installed: ${INSTALLED}"
if echo "${INSTALLED}" | grep -qE "^cell version [0-9]+\.[0-9]+\.[0-9]+"; then
echo "--- PASS: cell version OK ---"
else
echo "--- FAIL: unexpected version output ---"
exit 1
fi

deploy-site:
name: Deploy Site
needs: secrets
Expand Down
60 changes: 58 additions & 2 deletions .github/workflows/build.release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ jobs:
run: |
R=${{ env.REGISTRY }}/${{ env.IMAGE_NAME_LC }}
V=${{ env.VERSION }}
for suffix in "" "-base"; do
for suffix in "" "-base" "-ultimate"; do
docker buildx imagetools create \
-t "${R}:${V}${suffix}" \
"${R}:${V}-amd64${suffix}" \
Expand All @@ -100,7 +100,7 @@ jobs:
run: |
R=${{ env.REGISTRY }}/${{ env.IMAGE_NAME_LC }}
V=${{ env.VERSION }}
for tag in "${V}" "${V}-base"; do
for tag in "${V}" "${V}-base" "${V}-ultimate"; do
echo "=== ${tag} ==="
docker buildx imagetools inspect "${R}:${tag}"
done
Expand Down Expand Up @@ -139,3 +139,59 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release edit "${{ env.RELEASE_VERSION }}" --draft=false --latest=false

e2e-install:
name: E2E Install (${{ matrix.arch }})
needs: [cell-release, docker-manifest]
strategy:
fail-fast: false
matrix:
include:
- runner: ubuntu-latest
arch: amd64
- runner: ubuntu-24.04-arm
arch: arm64
runs-on: ${{ matrix.runner }}
timeout-minutes: 30
steps:
- name: Set version
run: echo "VERSION=${GITHUB_REF_NAME}" >> $GITHUB_ENV

- name: Download cell binary
run: |
TARBALL="cell-linux-${{ matrix.arch }}.tar.gz"
URL="https://github.com/DimmKirr/devcell/releases/download/${VERSION}/${TARBALL}"
echo "Downloading: ${URL}"
curl -fsSL -o "${TARBALL}" "${URL}"
tar xzf "${TARBALL}"
chmod +x cell
sudo mv cell /usr/local/bin/cell

- name: Verify cell binary
run: |
cell --help
echo "--- cell binary OK ---"

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

- name: Run cell claude --version (full pipeline)
run: |
# Simulate a new user in a fresh project dir
mkdir -p /tmp/e2e-project && cd /tmp/e2e-project

# Flow: scaffold devcell.toml → pull base image → build user image → start container → print claude version
OUTPUT=$(cell --plain-text claude --version 2>&1) || true
echo "$OUTPUT"

# Assert cell version string is present
if echo "$OUTPUT" | grep -qE "cell\s+v?[0-9]+\.[0-9]+\.[0-9]+"; then
echo "--- PASS: cell version found ---"
else
echo "--- FAIL: cell version string not found in output ---"
exit 1
fi
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
.worktrees
nixhome/user.nix
.venv
.env
.env.devcell
*.egg-info
python-tools
.vagrant
Expand All @@ -17,3 +17,5 @@ web/.astro
web/src/content/cell/
bin/
.playwright-mcp
test/testdata/**/nixhome
test/results
Loading
Loading