From 2854b89e357a97511efbf7780d2eeec80a49a0a6 Mon Sep 17 00:00:00 2001 From: Will Anderson Date: Tue, 5 May 2026 11:33:04 -0500 Subject: [PATCH] ci: restore El SDK v1.2.1 release download (repo clone uses incompatible elc) --- .gitea/workflows/deploy.yaml | 12 ++++++++---- .gitea/workflows/dev.yaml | 25 ++++++++++++++++--------- .gitea/workflows/stage.yaml | 17 ++++++++++++++--- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 63c5788..596f183 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -80,7 +80,8 @@ jobs: git clone --depth 1 \ "https://will:${CHECKOUT_TOKEN}@git.neuralplatform.ai/neuron-technologies/el.git" \ "$DEST" - echo "EL_HOME=$DEST/lang" >> "$GITHUB_ENV" + ls -la "$DEST" | head -5 + echo "EL_HOME=$DEST" >> "$GITHUB_ENV" - name: Authenticate to GCP id: auth @@ -103,12 +104,15 @@ jobs: - name: Configure docker auth for Artifact Registry run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet - - name: Get elc (pre-built linux/amd64 from El repo) + - name: Get elc (pre-built linux/amd64 from El SDK release) if: steps.changetype.outputs.asset_only != 'true' run: | set -euo pipefail - chmod +x "$EL_HOME/dist/platform/elc-linux-amd64" - ln -sf "$EL_HOME/dist/platform/elc-linux-amd64" "$EL_HOME/dist/platform/elc" + curl -fL -o "$EL_HOME/dist/platform/elc" \ + https://git.neuralplatform.ai/neuron-technologies/el/releases/download/v1.2.1/elc-linux-amd64 + chmod +x "$EL_HOME/dist/platform/elc" + file "$EL_HOME/dist/platform/elc" + ls -la "$EL_HOME/dist/platform/elc" - name: Compute image tag id: tag diff --git a/.gitea/workflows/dev.yaml b/.gitea/workflows/dev.yaml index 9bb5d96..672de70 100644 --- a/.gitea/workflows/dev.yaml +++ b/.gitea/workflows/dev.yaml @@ -34,19 +34,20 @@ jobs: with: fetch-depth: 2 - - name: Set up El SDK + - name: Set up El SDK from release env: CHECKOUT_TOKEN: ${{ secrets.CHECKOUT_TOKEN }} run: | set -euo pipefail - DEST="${{ github.workspace }}/../foundation-el" - git clone --depth=1 \ - "https://will:${CHECKOUT_TOKEN}@git.neuralplatform.ai/neuron-technologies/el.git" \ - "$DEST" - # 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" + EL_HOME="${{ github.workspace }}/../foundation-el" + mkdir -p "$EL_HOME/dist/platform" "$EL_HOME/el-compiler/runtime" + BASE_URL="https://git.neuralplatform.ai/neuron-technologies/el/releases/download/v1.2.1" + curl -fL -H "Authorization: token ${CHECKOUT_TOKEN}" -o "$EL_HOME/dist/platform/elc" "$BASE_URL/elc-linux-amd64" + curl -fL -H "Authorization: token ${CHECKOUT_TOKEN}" -o "$EL_HOME/el-compiler/runtime/el_runtime.c" "$BASE_URL/el_runtime.c" + curl -fL -H "Authorization: token ${CHECKOUT_TOKEN}" -o "$EL_HOME/el-compiler/runtime/el_runtime.h" "$BASE_URL/el_runtime.h" + curl -fL -H "Authorization: token ${CHECKOUT_TOKEN}" -o "$EL_HOME/el-compiler/runtime/el_runtime.js" "$BASE_URL/el_runtime.js" + chmod +x "$EL_HOME/dist/platform/elc" + echo "EL_HOME=$EL_HOME" >> "$GITHUB_ENV" - name: Authenticate to GCP uses: google-github-actions/auth@v2 @@ -66,6 +67,9 @@ 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) @@ -83,6 +87,8 @@ 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" @@ -99,3 +105,4 @@ jobs: docker stop dev-smoke && docker rm dev-smoke || true echo "Dev smoke test FAILED" exit 1 + diff --git a/.gitea/workflows/stage.yaml b/.gitea/workflows/stage.yaml index 4976bbd..46246b6 100644 --- a/.gitea/workflows/stage.yaml +++ b/.gitea/workflows/stage.yaml @@ -78,7 +78,7 @@ jobs: git clone --depth 1 \ "https://will:${CHECKOUT_TOKEN}@git.neuralplatform.ai/neuron-technologies/el.git" \ "$DEST" - echo "EL_HOME=$DEST/lang" >> "$GITHUB_ENV" + echo "EL_HOME=$DEST" >> "$GITHUB_ENV" - name: Authenticate to GCP uses: google-github-actions/auth@v2 @@ -97,8 +97,19 @@ jobs: if: steps.changetype.outputs.asset_only != 'true' run: | set -euo pipefail - chmod +x "$EL_HOME/dist/platform/elc-linux-amd64" - ln -sf "$EL_HOME/dist/platform/elc-linux-amd64" "$EL_HOME/dist/platform/elc" + # Copy the El C-compiler binary from the cloned El repo into the expected path. + # The JS-capable elc for client-side compilation is committed in bin/elc-linux-amd64 + # and used automatically by build-stage.sh on linux/amd64. + ELC_SRC="$EL_HOME/dist/platform/elc-linux-amd64" + if [ -f "$ELC_SRC" ]; then + cp "$ELC_SRC" "$EL_HOME/dist/platform/elc" + chmod +x "$EL_HOME/dist/platform/elc" + else + # Fallback: download v1.2.1 C-compiler if the repo binary is absent + curl -fL -o "$EL_HOME/dist/platform/elc" \ + https://git.neuralplatform.ai/neuron-technologies/el/releases/download/v1.2.1/elc-linux-amd64 + chmod +x "$EL_HOME/dist/platform/elc" + fi - name: Compute image tag id: tag