Skip to content

Commit 0c0d43b

Browse files
committed
feat: automatic flutter bindings generation on master push
1 parent b6eb8e2 commit 0c0d43b

File tree

6 files changed

+40
-13
lines changed

6 files changed

+40
-13
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
on:
2+
push:
3+
branches:
4+
- master
5+
6+
jobs:
7+
generate_bindings:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v4
11+
- uses: subosito/flutter-action@v2
12+
with:
13+
channel: 'stable'
14+
- run: make flutter_bindings
15+
- name: Archive generated flutter_eval.json
16+
uses: actions/upload-artifact@v4
17+
with:
18+
name: flutter_eval.json
19+
path: flutter_eval.json

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.PHONY: flutter_bindings
2+
flutter_bindings:
3+
flutter pub get
4+
flutter test tool/generate_bindings.dart || true

example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ environment:
99
dependencies:
1010
flutter:
1111
sdk: flutter
12-
dart_eval: ^0.6.0
12+
dart_eval: ^0.7.8
1313
flutter_eval:
1414
path: ../
1515

examples/code_push_app/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ dependencies:
1010
sdk: flutter
1111
flutter_eval:
1212
path: ../../
13-
dart_eval: ^0.6.0
13+
dart_eval: ^0.7.8
1414
dev_dependencies:
1515
flutter_lints: ^2.0.0
1616
flutter:

test/flutter_eval_test.dart

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
import 'dart:convert';
2-
import 'dart:io';
3-
41
import 'package:dart_eval/dart_eval.dart';
52
import 'package:dart_eval/dart_eval_bridge.dart';
63
import 'package:dart_eval/stdlib/core.dart';
@@ -11,14 +8,6 @@ import 'package:flutter_eval/src/painting/alignment.dart';
118
import 'package:flutter_test/flutter_test.dart';
129

1310
void main() {
14-
// This is not actually a test, it just generates the flutter_eval.json file.
15-
test('Generate flutter_eval.json', () {
16-
final serializer = BridgeSerializer();
17-
serializer.addPlugin(const FlutterEvalPlugin());
18-
final output = serializer.serialize();
19-
File('flutter_eval.json').writeAsStringSync(json.encode(output));
20-
});
21-
2211
test('Can extend StatelessWidget', () {
2312
final compiler = Compiler();
2413
setupFlutterForCompile(compiler);

tool/generate_bindings.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import 'dart:convert';
2+
import 'dart:io';
3+
4+
import 'package:dart_eval/dart_eval_bridge.dart';
5+
import 'package:flutter_eval/flutter_eval.dart';
6+
7+
void main() {
8+
// To properly generate the bindings, dart_eval needs Flutter context which is
9+
// delivered when running Dart programs via `flutter test`,
10+
// but isn't for Dart code ran via `dart run`.
11+
final serializer = BridgeSerializer();
12+
serializer.addPlugin(const FlutterEvalPlugin());
13+
final output = serializer.serialize();
14+
File('flutter_eval.json').writeAsStringSync(json.encode(output));
15+
}

0 commit comments

Comments
 (0)