Skip to content

feat: publish portable mission runtime and sync boundary (#15) #68

feat: publish portable mission runtime and sync boundary (#15)

feat: publish portable mission runtime and sync boundary (#15) #68

Workflow file for this run

name: Check
on:
pull_request:
push:
branches:
- master
tags:
- "v*"
permissions:
contents: read
jobs:
check:
# compatibility-blocking:start
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
node: 22
canonical: false
- os: ubuntu-latest
node: 24
canonical: true
- os: macos-latest
node: 24
canonical: false
# compatibility-blocking:end
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
- name: Setup Node
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
with:
node-version: ${{ matrix.node }}
- name: Record runner evidence
run: |
uname -a || true
node --version
npm --version
node -e 'const p=require("./opencode/package.json"); console.log(JSON.stringify({arch:process.arch,platform:process.platform,plugin:p.dependencies["@opencode-ai/plugin"],opentuiCore:p.dependencies["@opentui/core"],opentuiSolid:p.dependencies["@opentui/solid"]}))'
- name: Validate release tag
if: matrix.canonical && startsWith(github.ref, 'refs/tags/')
run: node scripts/version.mjs --check-tag "$GITHUB_REF_NAME"
- name: Contract check
run: npm run contract-check
- name: Unit and script tests
run: npm run unit-and-script-tests
- name: Install OpenCode tool dependencies
working-directory: opencode
run: npm ci --ignore-scripts
- name: Audit OpenCode tool dependencies
if: matrix.canonical
run: npm run dependency-audit
- name: Verify dependency signatures
if: matrix.canonical
run: npm run dependency-signature-audit
- name: Typecheck TUI token plugin
run: npm run typecheck
- name: Installation smoke
run: npm run installation-smoke
- name: Smoke npm package
if: matrix.canonical
run: npm run package-smoke
# opencode-boundaries:start
opencode-compatibility:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- mode: core
opencode: "1.14.41"
- mode: core
opencode: "1.18.4"
- mode: default
opencode: "1.18.4"
steps:
- name: Checkout
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
- name: Setup Node
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
with:
node-version: 24
- name: Smoke OpenCode boundary
run: bash scripts/opencode-compat-smoke.sh "${{ matrix.mode }}" "${{ matrix.opencode }}"
# opencode-boundaries:end