Skip to content
Merged
Changes from 1 commit
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
60 changes: 57 additions & 3 deletions .github/workflows/build_prod_template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@ name: Build Prod Template
on:
workflow_dispatch:
inputs:
target_environment:
description: Target environment
required: true
type: choice
default: foxtrot
options:
- foxtrot
- staging
- juliett
Comment thread
cursor[bot] marked this conversation as resolved.
skip_cache:
description: Skip build cache
required: false
Expand Down Expand Up @@ -33,18 +42,63 @@ jobs:

- uses: actions/setup-python@v6
with:
python-version: '${{ env.TOOL_VERSION_PYTHON }}'
python-version: '${{ env.TOOL_VERSION_PYTHON }}'

- name: Install development dependencies
working-directory: ./template
run: pip install -r requirements-dev.txt

- name: Resolve target environment
env:
TARGET_ENVIRONMENT: ${{ inputs.target_environment }}
FOXTROT_API_KEY: ${{ secrets.E2B_PROD_API_KEY }}
STAGING_API_KEY: ${{ secrets.E2B_STAGING_API_KEY }}
JULIETT_API_KEY: ${{ secrets.E2B_JULIETT_API_KEY }}
run: |
set -eu

case "$TARGET_ENVIRONMENT" in
foxtrot)
E2B_DOMAIN="e2b.dev"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep foxtrot domain configurable via repository variable

This hardcodes the foxtrot target to e2b.dev, which changes behavior from the previous workflow that read vars.E2B_DOMAIN and can now diverge from the main release pipeline (which still uses vars.E2B_DOMAIN in .github/workflows/release.yml line 268). In repositories where E2B_DOMAIN is intentionally overridden (for example, a non-default/proxied production endpoint), manual foxtrot builds will publish against the wrong domain.

Useful? React with 👍 / 👎.

E2B_API_KEY="$FOXTROT_API_KEY"
;;
staging)
E2B_DOMAIN="e2b-staging.dev"
E2B_API_KEY="$STAGING_API_KEY"
;;
juliett)
E2B_DOMAIN="e2b-juliett.dev"
E2B_API_KEY="$JULIETT_API_KEY"
;;
*)
echo "Unknown target environment: $TARGET_ENVIRONMENT" >&2
exit 1
;;
esac

if [ -z "$E2B_API_KEY" ]; then
echo "Missing API key secret for target environment: $TARGET_ENVIRONMENT" >&2
exit 1
fi
Comment thread
cursor[bot] marked this conversation as resolved.

echo "::add-mask::$E2B_API_KEY"

{
echo "E2B_DOMAIN=$E2B_DOMAIN"
echo "E2B_API_KEY=$E2B_API_KEY"
} >> "$GITHUB_ENV"

{
echo "### Build target"
echo
echo "Target: $TARGET_ENVIRONMENT"
echo "Domain: $E2B_DOMAIN"
} >> "$GITHUB_STEP_SUMMARY"

- name: Build E2B template
id: build-template
working-directory: ./template
run: |
python build_prod.py
env:
E2B_API_KEY: ${{ secrets.E2B_PROD_API_KEY }}
E2B_DOMAIN: ${{ vars.E2B_DOMAIN }}
SKIP_CACHE: ${{ inputs.skip_cache }}
Loading