Skip to content

Build and release the app package in CI - #2

Merged
oryanomer1 merged 1 commit into
mainfrom
ci/release-app-package
Oct 11, 2026
Merged

oryanomer1 merged 1 commit into
mainfrom
ci/release-app-package

Conversation

@oryanomer1

Copy link
Copy Markdown
Collaborator

Admins who add Eon to Microsoft 365 Copilot by uploading the app package need a stable place to download it, and the docs (eon-io/docs#807) link to it. Today the package only exists when someone builds it locally.

This adds .github/workflows/app-package.yml:

  • Every pull request and push to main: runs build_package.py --check, builds the production package (https://mcp.eon.io/mcp with the production OAuth registration), and attaches eon-m365-copilot-<version>.zip and eon-m365-copilot.zip to the run as an artifact.
  • Pull requests that change appPackage/ must bump version in appPackage/manifest.json. Otherwise the change would never be released, and Microsoft 365 treats an upload with an existing version as the same app.
  • Each new version that reaches main is published as GitHub release v<version> with both zips, so https://github.com/eon-io/m365-copilot-eon-plugin/releases/latest/download/eon-m365-copilot.zip always serves the newest package. When the release for that version already exists, the job skips publishing (the run artifact still has the zip).

The README links the download and describes the CI.

Notes:

  • The OAuth registration ID sits in the workflow env. It isn't a secret: every released package carries it in manifest.json and ai-plugin.json.
  • Actions are GitHub-owned and SHA-pinned (checkout v7.0.1, upload-artifact v7.0.2, download-artifact v8.0.2). The release step uses the preinstalled gh CLI. Only the release job gets contents: write.
  • Merging this publishes v1.0.0 (the current manifest version) as the first release.

Testing:

  • actionlint v1.7.12: clean.
  • Ran the workflow's build steps locally: --check passes, and the built zip's contents are identical to the production 1.0.0 package used for Partner Center.

🤖 Generated with Claude Code

Every pull request and push to main validates appPackage and builds the
production package as a run artifact. Each new manifest version that
reaches main is published as a GitHub release with a versioned zip for
Partner Center and eon-m365-copilot.zip, so the docs can link to
releases/latest/download/eon-m365-copilot.zip. Pull requests that change
appPackage must bump the version.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@oryanomer1
oryanomer1 merged commit 380e55d into main Oct 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant