GenuineCI Docs
From build to release, in the Dart you know. Start here with CI for Flutter & Dart.
First steps
Section titled “First steps”From setup to your first workflow. Start with a small build. The Quickstart walks you through adding the SDK and running your first checks.
Find a guide
Section titled “Find a guide”Write a workflowDefine your steps in Dart. A familiar language for your CI.
Build with FlutterAnalyze, test, and build. Keep your app quality in code.
TriggersRun workflows on pushes, pull requests, and tags.
Run on your own MacRun on Apple Silicon. Own your build environment.
CLI referenceThe commands you need, close at hand.
Manage secretsManage the values your builds need.
Workflows in the Dart you know
Section titled “Workflows in the Dart you know”No special syntax. Use the same functions and conditionals you already know.
Create openci/flutter_ci.dart:
import 'package:openci_workflow/openci_workflow.dart';
Future<void> main() async { final ci = await OpenCI.init( workflowName: 'Flutter CI', ciTriggers: [CITrigger.push(branch: 'main')], );
await ci.run('flutter pub get'); await ci.flutter.staticAnalysis(); await ci.flutter.unitTests(); await ci.flutter.buildApk();}Simple code. Reliable builds. Learn more about writing workflows.
Open code. Open development.
Section titled “Open code. Open development.”GenuineCI is open source. Bring your ideas. View GenuineCI on GitHub.