Skip to content

feat(dart): Add Dart devshell and CI workflow#33

Open
nikzen wants to merge 2 commits into
feat/dart-sdk-packagesfrom
feat/dart-devshell-ci
Open

feat(dart): Add Dart devshell and CI workflow#33
nikzen wants to merge 2 commits into
feat/dart-sdk-packagesfrom
feat/dart-devshell-ci

Conversation

@nikzen

@nikzen nikzen commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Stacked on #31 (Dart/Flutter SDK packages). Wires the pinned SDKs into a development shell and a generated CI workflow, integrating with main's existing github-actions-nix + filegen + prek infrastructure.

  • DevShell (nix/dart/devshell.nix): adds a dart devshell that ships the pinned SDK from ./sdk.nix, so local development and CI share identical toolchain binaries. Flutter is preferred where available (it bundles a full Dart SDK); aarch64-linux falls back to the standalone Dart SDK. Inherits the standard prek commands.
  • CI workflow (nix/dart/workflow.nix): generates dart-ci.yml whenever famedly.standards.dart.projects is non-empty. Each project gets a lint job (import sorting, dependency validation, dart_code_linter, translations cleaner, commented-out-code check) plus opt-in test and coverage (Codecov) jobs. The projects submodule is extended with the corresponding options; the attribute key is the project's relative path.
  • Action allowlist: pins actions/cache (v4.3.0) and codecov/codecov-action (v5.5.5).

Test plan

  • nixfmt-rfc-style --check and prek run --files pass for all changed files
  • Flake evaluates; dart devshell and SDK packages present
  • No dart-ci.yml is generated for this repo (no Dart projects configured)
  • End-to-end via a temporary consumer flake: generated dart-ci.yml verified (correct SHAs, triggers, permissions, lint/test/coverage jobs)
  • Multi-package case verified (per-project job names and working-directory)
  • Both commits evaluate independently (cleanly stackable)

Made with Cursor

nikzen and others added 2 commits June 24, 2026 14:59
Add a `dart` devshell that ships the pinned SDK from `./sdk.nix`, so local
development and CI share identical toolchain binaries. Flutter is preferred
where available (it bundles a full Dart SDK); aarch64-linux falls back to the
standalone Dart SDK. Inherits the standard `prek` commands like the other
language shells.

Co-authored-by: Cursor <cursoragent@cursor.com>
Generate a `dart-ci` GitHub Actions workflow whenever
`famedly.standards.dart.projects` is non-empty, translating the experimental
Dart CI into main's `github-actions-nix` + filegen idiom.

Each configured project gets a lint job (import sorting, dependency
validation, dart_code_linter, translations cleaner, commented-out-code check)
plus opt-in test and coverage (Codecov) jobs. Jobs reuse the pinned SDK
packages so CI and the devshell share identical toolchains. Adds the
`actions/cache` and `codecov/codecov-action` pins to the action allowlist.

Co-authored-by: Cursor <cursoragent@cursor.com>
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