ci: use elc-linux-amd64 from El repo, fix EL_HOME to lang/ across all workflows

This commit is contained in:
2026-05-05 09:45:20 -05:00
parent 46f4be83fd
commit b5eecc94ff
3 changed files with 13 additions and 51 deletions
+6 -29
View File
@@ -34,36 +34,18 @@ jobs:
with:
fetch-depth: 2
- name: Set up El SDK (build linux elc from repo C source)
- name: Set up El SDK
env:
CHECKOUT_TOKEN: ${{ secrets.CHECKOUT_TOKEN }}
run: |
set -euo pipefail
# Install curl dev libs — needed to link elc.c.
# ci-base has gcc but not libcurl4-openssl-dev.
sudo apt-get update -qq
sudo apt-get install -y -qq libcurl4-openssl-dev libssl-dev
DEST="${{ github.workspace }}/../foundation-el"
# Clone El repo for source files, runtime, and JS runtime
git -c "http.extraheader=Authorization: token ${CHECKOUT_TOKEN}" clone \
--depth=1 \
"https://git.neuralplatform.ai/neuron-technologies/el.git" \
git clone --depth=1 \
"https://will:${CHECKOUT_TOKEN}@git.neuralplatform.ai/neuron-technologies/el.git" \
"$DEST"
# Compile elc.c (committed C source of the El compiler) for linux/amd64.
# The darwin arm64 binary at lang/dist/platform/elc can't run on linux.
# Note: -lcurl -lpthread must come AFTER source files on gcc/linux.
cc -std=c11 -O2 \
-I "$DEST/lang/el-compiler/runtime" \
-o "$DEST/lang/dist/platform/elc" \
"$DEST/lang/dist/platform/elc.c" \
"$DEST/lang/el-compiler/runtime/el_runtime.c" \
-lcurl -lpthread
chmod +x "$DEST/lang/dist/platform/elc"
# Use the pre-built linux/amd64 binary — no C compilation needed in CI.
chmod +x "$DEST/lang/dist/platform/elc-linux-amd64"
ln -sf "$DEST/lang/dist/platform/elc-linux-amd64" "$DEST/lang/dist/platform/elc"
echo "EL_HOME=$DEST/lang" >> "$GITHUB_ENV"
- name: Authenticate to GCP
@@ -84,9 +66,6 @@ jobs:
run: echo "tag=dev-${GITHUB_SHA:0:8}" >> "$GITHUB_OUTPUT"
- name: Touch HTML placeholder files
# El binary regenerates these at startup via fs_write. They must exist
# in the build context for Dockerfile COPY to succeed. touch is
# idempotent if the files already exist from a prior run.
run: touch src/index.html src/about.html src/terms.html src/enterprise-terms.html
- name: Build image (local only — no push)
@@ -104,8 +83,6 @@ jobs:
-e LANDING_ROOT=/srv/landing \
"$IMAGE"
# entrypoint.sh sleeps 4s for soul-demo to load before starting neuron-web.
# Poll up to 45s total.
for i in $(seq 1 15); do
STATUS=$(curl -sSo /dev/null -w "%{http_code}" --max-time 5 http://localhost:8080/ || echo "000")
echo "Attempt $i/15: HTTP $STATUS"