From 1e15af022eb6d13a549206b03ddc1ef504b0f2ff Mon Sep 17 00:00:00 2001 From: Dan Childers Date: Thu, 14 May 2026 16:05:38 -0400 Subject: [PATCH 1/2] Move src directory copy during Dockerfile build The forge cli entry point is missing when the api starts. Moving the copy before pip install creates the entrypoint. Signed-off-by: Dan Childers --- Dockerfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index d405503b..06a1bf78 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,8 +10,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ git \ && rm -rf /var/lib/apt/lists/* -# Install Python dependencies +# Install Python dependencies and copy application code COPY pyproject.toml ./ +COPY src/ ./src/ RUN pip install --no-cache-dir build && \ pip wheel --no-cache-dir --wheel-dir /wheels -e . @@ -30,9 +31,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ COPY --from=builder /wheels /wheels RUN pip install --no-cache-dir /wheels/* && rm -rf /wheels -# Copy application code -COPY src/ ./src/ - # Switch to non-root user USER forge From e298cfa4d614edf293eae60d8b7cf514058b0743 Mon Sep 17 00:00:00 2001 From: eshulman2 Date: Thu, 16 Jul 2026 17:23:51 +0300 Subject: [PATCH 2/2] ci: verify production container build --- .github/workflows/ci.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 328accd9..0dda6698 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,3 +57,25 @@ jobs: JIRA_USER_EMAIL: dummy@example.com GITHUB_TOKEN: dummy run: uv run pytest tests/unit/ -q + + container-build: + name: Container Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Build production image + run: docker build --tag forge-ci:${{ github.sha }} . + + - name: Verify application imports + run: >- + docker run --rm + --env JIRA_BASE_URL=https://example.atlassian.net + --env JIRA_API_TOKEN=dummy + --env JIRA_USER_EMAIL=dummy@example.com + --env GITHUB_TOKEN=dummy + forge-ci:${{ github.sha }} + python -c "import forge; from forge.main import app; assert app is not None" + + - name: Verify Forge CLI entry point + run: docker run --rm forge-ci:${{ github.sha }} forge --help