Skip to main content

Live provider smoke

Nightly (and workflow_dispatch) run of the shared adapter contract suite against real Google, Microsoft, and Apple test accounts. It never runs on pull requests. Workflow: .github/workflows/live-provider-smoke.yml.

The job uses GitHub Environment provider-smoke. It does not read staging or production deploy secrets. A provider whose secrets are absent is skipped, so the job is green before Microsoft and Apple exist.

Events are created only on a calendar named compass-smoke. Every created event's description carries the GitHub run id. A teardown step deletes leftovers older than one day. Failure posts to the Discord errors webhook with the provider name.

Create the Environment

GitHub → Settings → Environments → New environment → provider-smoke. Do not grant it access to staging or production secrets.

Copy the staging Google (and later Microsoft) OAuth client into this Environment as well: the smoke process calls the provider APIs directly.

Secrets and variables to paste

Environment secrets:

NameValue
SMOKE_GOOGLE_REFRESH_TOKENRefresh token for the Google test account that owns compass-smoke
SMOKE_MICROSOFT_REFRESH_TOKENRefresh token for the Microsoft test account (after M-12)
SMOKE_APPLE_EMAILiCloud email for the Apple test account (after A-11)
SMOKE_APPLE_APP_PASSWORDiCloud app-specific password (after A-11)
GOOGLE_CLIENT_SECRETSame Google OAuth client secret as staging
MICROSOFT_CLIENT_SECRETSame Entra client secret as staging (after M-12)
DISCORD_ERRORS_WEBHOOK_URLDiscord errors webhook (duplicate of the repo secret so this Environment does not read repo secrets)

Environment variables:

NameValue
GOOGLE_CLIENT_IDSame Google OAuth client id as staging
MICROSOFT_CLIENT_IDSame Entra client id as staging (after M-12)

Test calendar

On each connected account, create a calendar named exactly compass-smoke and leave it writable. The suite refuses to run if that calendar is missing and never writes to any other calendar.

Dispatch

gh workflow run live-provider-smoke.yml

With only Google secrets present, the run passes and reports Microsoft and Apple as skipped. Once M-12 and A-11 land, all three providers report in one run.