Skip to content

Canary — plugin vs opencode latest #62

Canary — plugin vs opencode latest

Canary — plugin vs opencode latest #62

Workflow file for this run

name: Canary — plugin vs opencode latest
on:
schedule:
# Twice daily; opencode ships stable releases every day or two.
- cron: "23 3 * * *"
- cron: "23 15 * * *"
workflow_dispatch:
jobs:
contract:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@v7
with:
repository: inkbox-ai/inkbox
ref: 73f18a2b8c0e9dc6887c5663e6e904d54869927e
path: .ci/inkbox
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- name: Install dependencies from the unpublished SDK source
run: |
bash "$GITHUB_WORKSPACE/tests/ci/npm_with_retry.sh" ci --prefix .ci/inkbox/sdk/typescript
npm run build --prefix .ci/inkbox/sdk/typescript
bash "$GITHUB_WORKSPACE/tests/ci/npm_with_retry.sh" install --no-save --package-lock=false \
./.ci/inkbox/sdk/typescript \
@opencode-ai/sdk@latest @opencode-ai/plugin@latest
- run: npm run lint
- run: npm run typecheck
- run: npm test
- run: npm run build
loader-smoke:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/checkout@v7
with:
repository: inkbox-ai/inkbox
ref: 73f18a2b8c0e9dc6887c5663e6e904d54869927e
path: .ci/inkbox
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
- name: Install dependencies from the unpublished SDK source
run: |
bash "$GITHUB_WORKSPACE/tests/ci/npm_with_retry.sh" ci --prefix .ci/inkbox/sdk/typescript
npm run build --prefix .ci/inkbox/sdk/typescript
bash "$GITHUB_WORKSPACE/tests/ci/npm_with_retry.sh" install --no-save --package-lock=false \
./.ci/inkbox/sdk/typescript \
@opencode-ai/sdk@1.17.18 @opencode-ai/plugin@1.17.18
- run: bash "$GITHUB_WORKSPACE/tests/ci/npm_with_retry.sh" install -g opencode-ai@latest
- run: bash scripts/smoke-loader.sh
notify:
needs: [contract, loader-smoke]
if: >
always() && github.event_name == 'schedule' &&
(needs.contract.result != 'success' || needs.loader-smoke.result != 'success')
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- name: Notify Google Chat on scheduled failure
env:
WEBHOOK_URL: ${{ secrets.GOOGLE_CHAT_WEBHOOK_URL }}
run: |
[ -n "$WEBHOOK_URL" ] || { echo "GOOGLE_CHAT_WEBHOOK_URL is missing"; exit 1; }
curl --fail-with-body --retry 3 --retry-all-errors --max-time 20 \
-sS -X POST -H 'Content-Type: application/json' \
-d "{\"text\": \"🚨 opencode-plugin canary FAILED: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}\"}" \
"$WEBHOOK_URL"