Skip to content

chore: add CI, publish workflow, and issue/PR templates - #11

Merged
divyanshub024 merged 1 commit into
mainfrom
dv/github-workflows-templates-b8dec0
Aug 17, 2026
Merged

chore: add CI, publish workflow, and issue/PR templates#11
divyanshub024 merged 1 commit into
mainfrom
dv/github-workflows-templates-b8dec0

Conversation

@divyanshub024

@divyanshub024 divyanshub024 commented Aug 17, 2026

Copy link
Copy Markdown
Member

Summary

Adds the repo's .github/: CI, a pub.dev publish workflow, three issue forms, and the PR template this description follows.

CI (ci.yml) — pushes to main, PRs, and manual dispatch, with in-flight runs cancelled per ref:

  • Packageflutter pub get, dart format --set-exit-if-changed ., flutter analyze lib, a guarded test step, flutter pub publish --dry-run.
  • apps (matrix: example, playground) — pub get + analyze inside each app's own directory.
  • Docs site — Flutter + Node 24, npm ci, npm run build:site.

Publish (publish.yml) — fires on a v* tag and calls dart-lang/setup-dart/.github/workflows/publish.yml@v1, which installs Flutter itself, so it publishes a Flutter package fine. Auth is OIDC; no token lives in the repo.

Templates — bug report (Dart repro block, component dropdown, version, platforms, screenshots, flutter doctor -v), feature/component request (opens with the no-third-party-deps and nothing-model-facing constraints, so proposals arrive inside them), documentation, plus a config.yml linking docs, playground, roadmap, and API reference. The PR template leads with a before/after screenshot table and a checklist covering the two hard constraints, the playground stage demo, lib/flow_ui.dart exports, and the CHANGELOG.

Notes for the reviewer

  • Analysis is per package on purpose. flutter analyze from the repo root walks into example/ and playground/, which resolve their own dependencies — it reports 834 issues today. So each app is analysed in its own directory and the package job scopes itself to lib/.
  • The test step is a find guard. It prints "No tests yet — skipping" while test/ is absent, and starts running the day the first test lands, without another edit.
  • The docs job runs the real deploy build. build:site compiles the playground to wasm into public/playground and then builds Astro, so a broken playground fails CI instead of the site.
  • One action needed from a maintainer before the publish workflow does anything: enable automated publishing on pub.dev (flow_ui → Admin → Automated publishing) for StacDev/flow_ui with tag pattern v{{version}}. Until then the workflow is inert.
  • Issue forms only apply bug / enhancement / documentation — the repo has just the nine GitHub default labels. Discussions is disabled, so blank issues stay enabled as the path for questions.
  • Deliberately not here: a docs deploy workflow (the _headers file points at a host building from the repo, and a second deploy path would fight it) and a README CI badge — both easy follow-ups if wanted.

How this was verified

Every command CI runs was run locally on Flutter 3.47.0 stable / Node 24:

  • dart format --output=none --set-exit-if-changed . — clean
  • flutter analyze lib, plus flutter analyze in example/ and playground/ — no issues in any of the three
  • flutter pub publish --dry-run — 0 warnings
  • npm run build:site in docs/ — exit 0 (wasm playground build + 17 pages)
  • Workflow and issue-form YAML parse, with unique field ids; .github/ does not enter the publish archive, so .pubignore needed no change

CI itself runs on this PR, so the workflows get their first real exercise here.

Checklist

  • flutter analyze lib and flutter analyze in example/ and playground/ are clean
  • dart format . applied
  • No new entries under dependencies: in pubspec.yaml
  • Nothing model-facing
  • Exercised in the playground — n/a, no component change
  • New public API exported and documented — n/a, no Dart changed
  • CHANGELOG.md updated — n/a, nothing user-facing in the published package

Note

Low Risk
Infrastructure-only YAML and markdown; no application code, auth logic, or data paths change—publish workflow is inert until pub.dev automated publishing is enabled.

Overview
Introduces a full .github/ setup for contributor workflow and release automation.

CI (ci.yml) runs on main, PRs, and manual dispatch with per-ref concurrency cancellation. The Package job formats the repo, analyzes only lib/, runs tests only when *_test.dart files exist, and does flutter pub publish --dry-run. apps matrix-analyzes example and playground in their own directories. Docs site installs Flutter + Node 24 and runs npm run build:site (playground wasm + Astro) so site breaks fail CI.

Publish (publish.yml) triggers on semver v* tags and delegates to Dart’s reusable publish workflow with OIDC (id-token: write)—no stored pub token.

Templates: structured issue forms for bugs (repro, component, version, platforms, flutter doctor), features (package constraints up front), and docs; config.yml contact links plus blank issues; PR template with screenshot table and maintainer checklist (analyze scope, no third-party deps, playground, exports, CHANGELOG).

Reviewed by Cursor Bugbot for commit 1371d83. Bugbot is set up for automated code reviews on this repo. Configure here.

Analysis runs per package: from the repo root the analyzer also walks into
example/ and playground/, which resolve their own dependencies, so each is
analysed in its own directory and the package job scopes itself to lib/.

The docs job runs `npm run build:site` — the same playground-to-wasm plus
Astro build the deploy runs — so a broken playground fails CI rather than
the site.

Publishing is OIDC on a v* tag; it stays inert until automated publishing
is enabled for this repo on pub.dev.
@divyanshub024
divyanshub024 merged commit d86b741 into main Aug 17, 2026
5 checks passed
@divyanshub024
divyanshub024 deleted the dv/github-workflows-templates-b8dec0 branch August 17, 2026 18:52
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