openci_workflow 0.3.0
openci_workflow: ^0.3.0 copied to clipboard
Define and run OpenCI workflows in Dart with branch triggers, shell commands, Dart and Flutter helpers, and live log streaming.
Changelog #
0.3.0 #
- Add
openCI.contextwith typed push, pull request and local execution metadata. CI context includes repository/run identity and the exact checkout SHA; PR head and verified base SHAs remain distinct. - Breaking: Remove
GoCIandOpenCI.go, including the Go format, vet, and test helpers. - Add
openCI.firebaseHosting.deploy()anddeployPreview()with in-memory service account authentication and direct Hosting REST uploads. Both return a serving URL for use with PR QR comments. - Reuse preview channel IDs with a one-hour default expiry and one retained previous release. Bound previews to 20 per site by default, cleaning expired and then least recently updated OpenCI-managed previews without deleting live or unrelated channels.
0.2.9 #
- Document
openci/pr-qras the branch for new pull request QR images and how to keep images in older comments available.
0.2.8 #
- Update CLI installation and secret-sync examples to use
openci_cli_plusand theopencicommand. Document the QR image branch transition for existing PRs.
0.2.7 #
- Show the workflow name in PR QR comments, with the app version and build number when available. Keep CI run numbers internal so GitHub does not link them to unrelated PRs.
- Automatically retain Firebase App Distribution's uploaded app version and build number for iOS and Android tester URLs. Existing upload and
postQrCodecalls continue to work; other URLs can pass the optionalversionandbuildNumberarguments.
0.2.6 #
- Add
PostQrCodeSize(small,medium,large, andPostQrCodeSize.custom(width: ..., height: ...)) and the optionalsizeargument toopenCI.pullRequest.postQrCode(...), defaulting toPostQrCodeSize.medium.
0.2.5 #
- Return the tester URL from
deployApkToFirebaseAppDistribution.
0.2.4 #
- Add
openCI.pullRequest.postQrCode(url: ..., lang: ...)for posting a web URL and a QR code on the originating PR. Each workflow updates its comment on subsequent successful runs. Comments support English and Japanese. - Return the tester URL from
deployIpaToFirebaseAppDistribution.
0.2.3 #
- Add opt-in
OpenCI.init(cancelPreviousRuns: true)for PR workflows. A new commit's scheduled run cancels older opted-in queued/running jobs for the same repository, PR and workflow file. Push runs and same-commit reruns are retained.
0.2.2 #
- Add
OpenCI.dart.checkFormat()to check tracked and non-ignored new Dart files without rewriting them, with an optional working directory.
0.2.1 #
- Add optional
OpenCI.init(flutterVersion: '3.47.8')metadata. CI selects the declared release through FVM before resolving dependencies. Omitted or null values use the image's default Flutter SDK; local runs keep their current SDK.
0.2.0 #
- Breaking: Rename
CITrigger.whenChangedtoCITrigger.pathsfor push and pull-request triggers. ReplacewhenChanged:arguments and.whenChangedproperty access withpaths:and.paths. - Document changed-path filtering, skipped GitHub Checks, and migration to
paths. Triggers without a path condition continue to run on matching events and branches. - Remove direct Loki log forwarding through
LOKI_URL. Commands continue to stream stdout and stderr; the OpenCI executor captures and persists these logs in Firebase SQL Connect.
0.1.6 #
- Add
OpenCI.runNumberto read the server-assigned team sequence fromOPENCI_RUN_NUMBER, with validation and guidance for local workflows.
0.1.5 #
- Add
Secretreferences with the original environment name in.keyand lazy runtime access through.value, for secret definitions generated by the OpenCI CLI.
0.1.4 #
- Add
OpenCI.go.format(),OpenCI.go.vet(), andOpenCI.go.test()to format Go files and run checks with an optional working directory, using the preinstalled Go toolchain. - Expose the
OpenCIconstructor with an injectable command runner, replacingOpenCI.forTesting(). - Add value equality and
copyWith()to signing credential models while keeping credential values out oftoString().
0.1.3 #
- Add
OpenCI.shorebird.releaseApk()to build a universal Android APK with Shorebird and return its absolute path, with flavors, Dart defines, Flutter arguments, and dry runs. - Add
OpenCI.shorebird.releaseAab()to build Android App Bundles with Shorebird and return the selected variant's absolute AAB path, with flavors, Dart defines, Flutter arguments, and dry runs. - Add
OpenCI.shorebird.releaseIos()to prepare iOS signing for an explicit bundle ID, build with Shorebird's selected Flutter version, and return the exported IPA path. Support flavors, Dart defines, Flutter arguments, and dry runs. - Add
FlutterCI.deployAabToPlayConsole()with service account authentication, streamed AAB uploads, and Google Play edit commits. Default to internal testing, with configurable tracks and optional draft releases. - Add
FlutterCI.deployIpaToTestFlight()with App Store Connect API authentication, streamed IPA uploads, and polling until Apple finishes processing the build. - Add
FlutterCI.deployAabToFirebaseAppDistribution()with Google Play integration checks, service account authentication, streamed AAB upload, and processing completion checks. - Add
FlutterCI.deployApkToFirebaseAppDistribution()with an explicit Android Firebase App ID, service account authentication, streamed upload, and processing completion checks. - Return the absolute path of the exported IPA from
FlutterCI.buildIpa(), rejecting missing or ambiguous exports. - Add
FlutterCI.deployIpaToFirebaseAppDistribution()using the REST API with service account OAuth, automatic Firebase App ID detection, streamed uploads, bounded processing polls, and optional release notes and tester distribution. No Node.js or Firebase CLI is required.
0.1.2 #
- Add optional
tzandexcludeTagsarguments toFlutterCI.unitTests(), preserving existing defaults when omitted. - Add the
TimeZoneenum withasiaTokyoandutcvalues for typed time zone selection.
0.1.1 #
- Add
FlutterCI.buildApk()andFlutterCI.buildAab()with optional product flavor and working-directory arguments. - Add configurable fatal-info, fatal-warning, and analytics flags to
FlutterCI.staticAnalysis(), suppressing analytics by default. - Pass flavor names as literal shell arguments and expand Flutter helper test coverage.
0.1.0 #
- Publish the initial OpenCI workflow SDK with push and pull-request triggers, shell commands, Flutter helpers, and workspace file utilities.
- Stream command output to the terminal and optionally to Loki.
- Keep runtime dependencies independent of the OpenCI server packages.