Skip to content

3.1.15

3.1.15 #63

name: Release placeholder gate
# Phase 8 added a placeholder pattern (`__SET_BEFORE_RELEASE__`) to the
# blox-ai plugin's download_model.sh — DOWNLOAD_URL and MODEL_SHA256 must
# be populated by a follow-up commit (sibling functionland/blox-ai PR
# delivers the actual quantized Qwen 2.5-3B-Instruct .rkllm file +
# computes its SHA-256). Without that follow-up, a release tag would
# leave devices in a "service enabled, model never downloads" state.
#
# This workflow fails fast on any pre-release / release event if the
# placeholder is still present anywhere under the plugin dir. Mark this
# as a required check on the release/main branch.
#
# Codex post-review Phase 8 HIGH; Gemini post-review Phase 8 MEDIUM.
on:
release:
types: [published, prereleased]
push:
branches:
- main
- release/*
pull_request:
branches:
- main
- release/*
workflow_dispatch:
jobs:
check_release_placeholders:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Refuse to release while __SET_BEFORE_RELEASE__ is unresolved
run: |
# Match the literal placeholder-assignment pattern (`="__SET_BEFORE_RELEASE__"`)
# NOT bare mentions of the string. The guard code in install.sh /
# download_model.sh / start.sh references the literal as a
# comparison target (`*"__SET_BEFORE_RELEASE__"*` and similar),
# and CHANGELOG.md mentions it historically. Those are fine.
# What's NOT fine is `DOWNLOAD_URL="__SET_BEFORE_RELEASE__"` —
# an unfilled value being shipped to devices.
if grep -rn '="__SET_BEFORE_RELEASE__"' docker/fxsupport/linux/plugins/blox-ai/ 2>/dev/null; then
echo "::error::Phase 8 placeholder VALUE still present in blox-ai plugin."
echo "::error::download_model.sh requires DOWNLOAD_URL and MODEL_SHA256"
echo "::error::to be populated by the sibling functionland/blox-ai PR"
echo "::error::(which produces the actual quantized model + SHA)."
echo "::error::Without this, devices that install the plugin will end"
echo "::error::up in a 'service enabled, model never downloads' state."
exit 1
fi
echo "No placeholder-value assignments found in blox-ai plugin. Release gate passes."