Files
zeekay 6bbca15a5d Publish the Office and Outlook add-ins as sites
hanzo.yml declares two sites, office and outlook, built from their dist/
on every push to main and served at office.hanzo.ai and outlook.hanzo.ai
from the Sites plane. Each build stamps its own host into manifest.xml,
so the published manifest is the one to sideload or submit. The office
README records why the Copilot declarative agent is not a single
manifest here and the steps that make it one.
2026-09-30 14:56:24 -07:00

33 lines
1.4 KiB
YAML

# CI for hanzoai/extension. The hanzoai/ci reusable, called by
# .github/workflows/cicd.yml, runs this list on pushes to main, tags and pull
# requests; it is the one gate. publish.yml runs the same `make check` before
# it ships.
#
# No `images:`: nothing here is a container. The packages publish to npm and the
# browser stores from publish.yml; the Office add-ins publish as sites (below).
#
# The reusable runs a gate on the runner itself, with Node 22 and the pnpm that
# packageManager pins, and installs uv because packages/jupyter has a
# pyproject.toml; jupyter's build runs through uvx.
test:
- name: check
run: |
set -e
pnpm install --frozen-lockfile
make check
# The Office add-ins, published to the Sites plane on every push to main:
# office.hanzo.ai serves the Word/Excel/PowerPoint task pane and outlook.hanzo.ai
# the Outlook one, from s3://hanzo-sites/hanzo/<slug>, routed by universe
# charts/app/values/hanzo/static-sites.yaml. Each build stamps its own host into
# its manifest.xml (packages/<name>/src/build.js), and each host serves the
# auth-callback.html registered on the hanzo-office IAM client. `on` is read
# from the first entry and gates the list.
sites:
- slug: office
dir: packages/office/dist
on: [main]
- slug: outlook
dir: packages/outlook/dist
site-build: corepack enable && pnpm install --frozen-lockfile && pnpm --filter @hanzo/office-addin --filter @hanzo/outlook-addin build