Integration tests for from-static/actions. Runs the static workflow against a set of known-good fixtures on a daily schedule to detect compatibility breakage from changes to actions, generators, or the broader package ecosystem.
The canary workflow calls from-static/actions/.github/workflows/static.yml once per fixture, with deploy_to_github_pages: false. A successful run means the full build pipeline — checkout, static.json parsing, generator resolution, npm ci, and npm run build — completed without error.
Failures automatically open an issue in this repository via the notify workflow.
Each fixture is a minimal static.json that exercises a specific generator. They live under fixtures/ and are passed to the static workflow via the static_json_path input.
| Fixture | Generator |
|---|---|
fixtures/globus/static-search-portal/ |
@globus/static-search-portal |
fixtures/globus/static-data-portal/ |
@globus/static-data-portal |
The canary runs daily at 06:00 UTC. It can also be triggered manually via workflow_dispatch, which accepts an optional actions_ref input to test against a specific ref of from-static/actions (e.g. a branch or SHA under review).
gh workflow run canary.yml -f actions_ref=my-branch
To run the canary as part of a release or PR validation in from-static/actions, dispatch it via repository_dispatch:
- name: Trigger Canary
uses: actions/github-script@v8
with:
github-token: ${{ secrets.CANARY_DISPATCH_TOKEN }}
script: |
await github.rest.repos.createDispatchEvent({
owner: 'from-static',
repo: 'integration-tests',
event_type: 'actions-updated',
client_payload: { version: 'main' }
});The CANARY_DISPATCH_TOKEN secret must be a token with repo scope on from-static/integration-tests, stored in from-static/actions' repository secrets.
- Create a directory under
fixtures/named after the generator (e.g.fixtures/org/generator). - Add a
static.jsonthat targets the generator with a minimal but valid configuration. - Add the fixture to
.github/workflows/canary.yml.
Fixture configs should use stable, publicly accessible resources (e.g. a Globus search index that will remain available) so that failures indicate toolchain breakage, not fixture rot.