From 1653865f636a9423a6b51784d02b16832240a9c3 Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 15:29:17 +0200 Subject: [PATCH 01/10] throw error on primary key set --- generator/lib/src/realm_field_info.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/generator/lib/src/realm_field_info.dart b/generator/lib/src/realm_field_info.dart index 569bd7fb9..0de1e26a4 100644 --- a/generator/lib/src/realm_field_info.dart +++ b/generator/lib/src/realm_field_info.dart @@ -60,11 +60,13 @@ class RealmFieldInfo { Iterable toCode() sync* { yield '@override'; yield "$typeName get $name => RealmObject.get<$basicTypeName>(this, '$realmName') as $typeName;"; - if (!isFinal) { + bool generateSetter = !isFinal && !primaryKey; + if (generateSetter) { yield '@override'; yield "set $name(${typeName != typeModelName ? 'covariant ' : ''}$typeName value) => RealmObject.set(this, '$realmName', value);"; } else { - if (isLate) { // we still need to override setter on late final, but just throw error! + bool generateThrowError = isLate || primaryKey; + if (generateThrowError) { // we still need to override setter on late final, but just throw error! yield '@override'; yield "set $name(${typeName != typeModelName ? 'covariant ' : ''}$typeName value) => throw RealmUnsupportedSetError();"; } From 291f866a5b114f9d9ed8469c18dad5287bbd5a8d Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 16:00:05 +0200 Subject: [PATCH 02/10] relax final on collections fix tests --- .github/workflows/realm-generator.yml | 2 +- generator/lib/src/field_element_ex.dart | 9 --- generator/lib/src/realm_field_info.dart | 5 +- generator/test/generator_test.dart | 95 +++++++------------------ generator/test/good_test.dart | 2 +- 5 files changed, 32 insertions(+), 81 deletions(-) diff --git a/.github/workflows/realm-generator.yml b/.github/workflows/realm-generator.yml index d4ee0db2b..01d1f099a 100644 --- a/.github/workflows/realm-generator.yml +++ b/.github/workflows/realm-generator.yml @@ -19,7 +19,7 @@ jobs: strategy: matrix: - os: [ubuntu-latest, macos-latest] # windows is not tested ue to bug in how error messages are rendered + os: [ubuntu-latest, macos-latest] # windows is not tested due to bug in how error messages are rendered channel: [stable, beta] defaults: diff --git a/generator/lib/src/field_element_ex.dart b/generator/lib/src/field_element_ex.dart index 4d70d24b0..b7ff80966 100644 --- a/generator/lib/src/field_element_ex.dart +++ b/generator/lib/src/field_element_ex.dart @@ -185,15 +185,6 @@ extension FieldElementEx on FieldElement { } else { // Validate collections if (type.isRealmCollection) { - if (!isFinal) { - throw RealmInvalidGenerationSourceError( - 'Realm collection field must be final', - primarySpan: span, - primaryLabel: 'is not final', - todo: "Add a final keyword to the definition of '$displayName'", - element: this, - ); - } if (type.isNullable) { throw RealmInvalidGenerationSourceError( 'Realm collections cannot be nullable', diff --git a/generator/lib/src/realm_field_info.dart b/generator/lib/src/realm_field_info.dart index 0de1e26a4..0d26a36ad 100644 --- a/generator/lib/src/realm_field_info.dart +++ b/generator/lib/src/realm_field_info.dart @@ -41,6 +41,7 @@ class RealmFieldInfo { DartType get type => fieldElement.type; bool get isFinal => fieldElement.isFinal; + bool get isRealmCollection => fieldElement.type.isRealmCollection; bool get isLate => fieldElement.isLate; bool get hasDefaultValue => fieldElement.hasInitializer; bool get optional => type.isNullable; @@ -60,12 +61,12 @@ class RealmFieldInfo { Iterable toCode() sync* { yield '@override'; yield "$typeName get $name => RealmObject.get<$basicTypeName>(this, '$realmName') as $typeName;"; - bool generateSetter = !isFinal && !primaryKey; + bool generateSetter = !isFinal && !primaryKey && !isRealmCollection; if (generateSetter) { yield '@override'; yield "set $name(${typeName != typeModelName ? 'covariant ' : ''}$typeName value) => RealmObject.set(this, '$realmName', value);"; } else { - bool generateThrowError = isLate || primaryKey; + bool generateThrowError = isLate || primaryKey || isRealmCollection; if (generateThrowError) { // we still need to override setter on late final, but just throw error! yield '@override'; yield "set $name(${typeName != typeModelName ? 'covariant ' : ''}$typeName value) => throw RealmUnsupportedSetError();"; diff --git a/generator/test/generator_test.dart b/generator/test/generator_test.dart index a8cd2c648..29c5a9659 100644 --- a/generator/test/generator_test.dart +++ b/generator/test/generator_test.dart @@ -78,7 +78,7 @@ class _Foo { @RealmModel() class _Bar { @PrimaryKey() - late final String id; + late String id; late bool aBool, another; var data = Uint8List(16); // late RealmAny any; // not supported yet @@ -91,9 +91,9 @@ class _Bar { // late Uuid uuid; // not supported yet @Ignored() var theMeaningOfEverything = 42; - final list = [0]; // list of ints with default value - // late final Set set; // not supported yet - // final map = {}; // not supported yet + list = [0]; // list of ints with default value + // late Set set; // not supported yet + // map = {}; // not supported yet @Indexed() String? anOptionalString; @@ -241,7 +241,7 @@ part 'test.g.dart'; class _Questionable { @PrimaryKey() @Indexed() - late final int primartKeysAreAlwaysIndexed; + late int primartKeysAreAlwaysIndexed; }''' }, reader: await PackageAssetReader.currentIsolate(), @@ -261,7 +261,7 @@ class _Questionable { ' ╷\n' '7 │ @PrimaryKey()\n' '8 │ @Indexed()\n' - '9 │ late final int primartKeysAreAlwaysIndexed;\n' + '9 │ late int primartKeysAreAlwaysIndexed;\n' ' │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ' ╵\n' 'Remove either the @Indexed or @PrimaryKey annotation from \'primartKeysAreAlwaysIndexed\'.\n' @@ -361,15 +361,15 @@ part 'test.g.dart'; @RealmModel() class _Bad { @PrimaryKey() - late final int first; + late int first; @PrimaryKey() - late final String second; + late String second; - late final String another; + late String another; @PrimaryKey() - late final String third; + late String third; } ''' }, @@ -386,15 +386,15 @@ class _Bad { '6 │ class _Bad {\n' ' │ ━━━━ in realm model for \'Bad\'\n' '7 │ @PrimaryKey()\n' - '8 │ late final int first;\n' + '8 │ late int first;\n' ' │ ━━━━━ \n' '... │\n' '10 │ @PrimaryKey()\n' - '11 │ late final String second;\n' + '11 │ late String second;\n' ' │ ^^^^^^ second primary key\n' '... │\n' '15 │ @PrimaryKey()\n' - '16 │ late final String third;\n' + '16 │ late String third;\n' ' │ ━━━━━ \n' ' ╵\n' 'Avoid duplicated @PrimaryKey() on fields \'first\', \'second\', \'third\'\n' @@ -531,7 +531,7 @@ class _Bad { @PrimaryKey() @MapTo('key') @PrimaryKey() - late final int id; + late int id; } ''' }, @@ -552,7 +552,7 @@ class _Bad { '... │\n' '9 │ @PrimaryKey()\n' ' │ ^^^^^^^^^^^^^ duplicated annotation\n' - '10 │ late final int id;\n' + '10 │ late int id;\n' ' ╵\n' 'Remove all duplicated @PrimaryKey() annotations.\n' '', @@ -575,7 +575,7 @@ class Base {} @RealmModel() class _Bad extends Base { @PrimaryKey() - late final int id; + late int id; } ''' }, @@ -609,7 +609,7 @@ part 'test.g.dart'; @RealmModel() class _Bad { @PrimaryKey() - late final int id; + late int id; _Bad(this.id); } @@ -637,47 +637,6 @@ class _Bad { ); }); - test('non-final list', () async { - await expectLater( - () async => await testBuilder( - generateRealmObjects(), - { - 'pkg|lib/src/test.dart': r''' -import 'package:realm_common/realm_common.dart'; - -part 'test.g.dart'; - -@RealmModel() -class _Bad { - @PrimaryKey() - late final int id; - - List wrong; -} -''' - }, - reader: await PackageAssetReader.currentIsolate(), - ), - throwsA(isA().having( - (e) => e.format(), - 'format()', - 'Realm collection field must be final\n' - '\n' - 'in: package:pkg/src/test.dart:10:13\n' - ' ╷\n' - '5 │ @RealmModel()\n' - '6 │ class _Bad { \n' - ' │ ━━━━ in realm model for \'Bad\'\n' - '... │\n' - '10 │ List wrong;\n' - ' │ ^^^^^ is not final\n' - ' ╵\n' - 'Add a final keyword to the definition of \'wrong\'\n' - '', - )), - ); - }); - test('nullable list', () async { await expectLater( () async => await testBuilder( @@ -691,9 +650,9 @@ part 'test.g.dart'; @RealmModel() class _Bad { @PrimaryKey() - late final int id; + late int id; - final List? wrong; + List? wrong; } ''' }, @@ -710,7 +669,7 @@ class _Bad { '6 │ class _Bad { \n' ' │ ━━━━ in realm model for \'Bad\'\n' '... │\n' - '10 │ final List? wrong;\n' + '10 │ List? wrong;\n' ' │ ^^^^^^^^^^ is nullable\n' ' ╵', )), @@ -733,10 +692,10 @@ class _Other {} @RealmModel() class _Bad { @PrimaryKey() - late final int id; + late int id; - final List okay; - final List<_Other?> wrong; + late List okay; + late List<_Other?> wrong; } ''' }, @@ -753,7 +712,7 @@ class _Bad { '9 │ class _Bad { \n' ' │ ━━━━ in realm model for \'Bad\'\n' '... │\n' - '14 │ final List<_Other?> wrong;\n' + '14 │ late List<_Other?> wrong;\n' ' │ ^^^^^^^^^^^^^ which has a nullable realm object element type\n' ' ╵\n' 'Ensure element type is non-nullable\n' @@ -778,7 +737,7 @@ class _Other {} @RealmModel() class _Bad { @PrimaryKey() - late final int id; + late int id; late _Other wrong; } @@ -945,7 +904,7 @@ part 'test.g.dart'; @MapTo('Bad') class _Foo { @PrimaryKey() - late final bool bad; + late bool bad; } ''' }, @@ -963,7 +922,7 @@ class _Foo { '7 │ class _Foo {\n' ' │ ━━━━ in realm model for \'Bad\'\n' '8 │ @PrimaryKey()\n' - '9 │ late final bool bad;\n' + '9 │ late bool bad;\n' ' │ ^^^^ bool is not an indexable type\n' ' ╵\n' 'Change the type of \'bad\', or remove the @PrimaryKey() annotation\n' diff --git a/generator/test/good_test.dart b/generator/test/good_test.dart index db307fac9..2b746418b 100644 --- a/generator/test/good_test.dart +++ b/generator/test/good_test.dart @@ -70,7 +70,7 @@ part 'test.g.dart'; @RealmModel() class _Person { @PrimaryKey() - late final String name; + late String name; }''', }, outputs: { From 78fff517219de41cdfe4df8619e601517f918272 Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 17:16:45 +0200 Subject: [PATCH 03/10] fix setters in generated constructor to use RealmObject.set directly --- .github/workflows/realm-generator.yml | 2 +- generator/lib/src/realm_model_info.dart | 5 +---- generator/test/good_test.dart | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/realm-generator.yml b/.github/workflows/realm-generator.yml index 01d1f099a..cb2d20ada 100644 --- a/.github/workflows/realm-generator.yml +++ b/.github/workflows/realm-generator.yml @@ -14,7 +14,7 @@ on: - .github/workflows/realm-generator.yml jobs: - Generator_CI: + CI: runs-on: ${{ matrix.os }} strategy: diff --git a/generator/lib/src/realm_model_info.dart b/generator/lib/src/realm_model_info.dart index b2cd7ba57..76e6817f5 100644 --- a/generator/lib/src/realm_model_info.dart +++ b/generator/lib/src/realm_model_info.dart @@ -65,10 +65,7 @@ class RealmModelInfo { } yield* allExceptCollections.map((f) { - if (f.isFinal) { - return "RealmObject.set(this, '${f.name}', ${f.name});"; // since no setter will be created! - } - return 'this.${f.name} = ${f.name};'; // defer to generated setter + return "RealmObject.set(this, '${f.name}', ${f.name});"; }); yield* collections.map((c) { diff --git a/generator/test/good_test.dart b/generator/test/good_test.dart index 2b746418b..c24869160 100644 --- a/generator/test/good_test.dart +++ b/generator/test/good_test.dart @@ -118,7 +118,7 @@ part 'test.g.dart'; @RealmModel() class _Person { - late final List<_Person> children; + late List<_Person> children; }''', }, outputs: { From d839bf7314c7095fe8c24affe937495a856fc008 Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 17:49:42 +0200 Subject: [PATCH 04/10] fix generator tests --- generator/test/generator_test.dart | 30 +++++++++++++++--------------- generator/test/good_test.dart | 6 +++--- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/generator/test/generator_test.dart b/generator/test/generator_test.dart index 29c5a9659..6b1882f85 100644 --- a/generator/test/generator_test.dart +++ b/generator/test/generator_test.dart @@ -33,7 +33,7 @@ class _Foo { ' \'x\': 0,\n' ' });\n' ' }\n' - ' this.x = x;\n' + ' RealmObject.set(this, \'x\', x);\n' ' }\n' '\n' ' Foo._();\n' @@ -91,9 +91,9 @@ class _Bar { // late Uuid uuid; // not supported yet @Ignored() var theMeaningOfEverything = 42; - list = [0]; // list of ints with default value + var list = [0]; // list of ints with default value // late Set set; // not supported yet - // map = {}; // not supported yet + // late map = {}; // not supported yet @Indexed() String? anOptionalString; @@ -257,12 +257,12 @@ class _Questionable { sb.toString(), '[INFO] testBuilder: Indexed is implied for a primary key\n' '\n' - 'in: package:pkg/src/test.dart:9:18\n' + 'in: package:pkg/src/test.dart:9:12\n' ' ╷\n' '7 │ @PrimaryKey()\n' '8 │ @Indexed()\n' '9 │ late int primartKeysAreAlwaysIndexed;\n' - ' │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' + ' │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n' ' ╵\n' 'Remove either the @Indexed or @PrimaryKey annotation from \'primartKeysAreAlwaysIndexed\'.\n' '\n' @@ -380,22 +380,22 @@ class _Bad { 'format()', 'Duplicate primary keys\n' '\n' - 'in: package:pkg/src/test.dart:11:21\n' + 'in: package:pkg/src/test.dart:11:15\n' ' ╷\n' '5 │ @RealmModel()\n' '6 │ class _Bad {\n' ' │ ━━━━ in realm model for \'Bad\'\n' '7 │ @PrimaryKey()\n' '8 │ late int first;\n' - ' │ ━━━━━ \n' + ' │ ━━━━━ \n' '... │\n' '10 │ @PrimaryKey()\n' '11 │ late String second;\n' - ' │ ^^^^^^ second primary key\n' + ' │ ^^^^^^ second primary key\n' '... │\n' '15 │ @PrimaryKey()\n' '16 │ late String third;\n' - ' │ ━━━━━ \n' + ' │ ━━━━━ \n' ' ╵\n' 'Avoid duplicated @PrimaryKey() on fields \'first\', \'second\', \'third\'\n' '', @@ -663,14 +663,14 @@ class _Bad { 'format()', 'Realm collections cannot be nullable\n' '\n' - 'in: package:pkg/src/test.dart:10:9\n' + 'in: package:pkg/src/test.dart:10:3\n' ' ╷\n' '5 │ @RealmModel()\n' '6 │ class _Bad { \n' ' │ ━━━━ in realm model for \'Bad\'\n' '... │\n' '10 │ List? wrong;\n' - ' │ ^^^^^^^^^^ is nullable\n' + ' │ ^^^^^^^^^^ is nullable\n' ' ╵', )), ); @@ -706,14 +706,14 @@ class _Bad { 'format()', 'Nullable realm objects are not allowed in collections\n' '\n' - 'in: package:pkg/src/test.dart:14:9\n' + 'in: package:pkg/src/test.dart:14:8\n' ' ╷\n' '8 │ @RealmModel()\n' '9 │ class _Bad { \n' ' │ ━━━━ in realm model for \'Bad\'\n' '... │\n' '14 │ late List<_Other?> wrong;\n' - ' │ ^^^^^^^^^^^^^ which has a nullable realm object element type\n' + ' │ ^^^^^^^^^^^^^ which has a nullable realm object element type\n' ' ╵\n' 'Ensure element type is non-nullable\n' '', @@ -915,7 +915,7 @@ class _Foo { 'format()', 'Realm only support indexes on String, int, and bool fields\n' '\n' - 'in: package:pkg/src/test.dart:9:14\n' + 'in: package:pkg/src/test.dart:9:8\n' ' ╷\n' '5 │ @RealmModel()\n' '6 │ @MapTo(\'Bad\')\n' @@ -923,7 +923,7 @@ class _Foo { ' │ ━━━━ in realm model for \'Bad\'\n' '8 │ @PrimaryKey()\n' '9 │ late bool bad;\n' - ' │ ^^^^ bool is not an indexable type\n' + ' │ ^^^^ bool is not an indexable type\n' ' ╵\n' 'Change the type of \'bad\', or remove the @PrimaryKey() annotation\n' '', diff --git a/generator/test/good_test.dart b/generator/test/good_test.dart index c24869160..354604cc4 100644 --- a/generator/test/good_test.dart +++ b/generator/test/good_test.dart @@ -33,7 +33,7 @@ class _Person { ' \'age\': 47,\n' ' });\n' ' }\n' - ' this.age = age;\n' + ' RealmObject.set(this, \'age\', age);\n' ' }\n' '\n' ' Person._();\n' @@ -181,7 +181,7 @@ class _Person { ' Person({\n' ' Person? spouse,\n' ' }) {\n' - ' this.spouse = spouse;\n' + ' RealmObject.set(this, \'spouse\', spouse);\n' ' }\n' '\n' ' Person._();\n' @@ -231,7 +231,7 @@ class _Person { ' Person(\n' ' String name,\n' ' ) {\n' - ' this.name = name;\n' + ' RealmObject.set(this, \'name\', name);\n' ' }\n' '\n' ' Person._();\n' From 01ea15f1188349a639a49779b81618195908ca98 Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 17:54:09 +0200 Subject: [PATCH 05/10] remove comment --- generator/lib/src/realm_field_info.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/lib/src/realm_field_info.dart b/generator/lib/src/realm_field_info.dart index 0d26a36ad..06c48fd9a 100644 --- a/generator/lib/src/realm_field_info.dart +++ b/generator/lib/src/realm_field_info.dart @@ -67,7 +67,7 @@ class RealmFieldInfo { yield "set $name(${typeName != typeModelName ? 'covariant ' : ''}$typeName value) => RealmObject.set(this, '$realmName', value);"; } else { bool generateThrowError = isLate || primaryKey || isRealmCollection; - if (generateThrowError) { // we still need to override setter on late final, but just throw error! + if (generateThrowError) { yield '@override'; yield "set $name(${typeName != typeModelName ? 'covariant ' : ''}$typeName value) => throw RealmUnsupportedSetError();"; } From 679f1e7f28de8f1adbe6b6ea64589fdde0d22ec7 Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 18:17:12 +0200 Subject: [PATCH 06/10] run realm_dart tests on generator change. test only on Linux --- .github/workflows/realm-dart-linux.yml | 8 ++------ .github/workflows/realm-generator.yml | 27 ++++++++++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/.github/workflows/realm-dart-linux.yml b/.github/workflows/realm-dart-linux.yml index 66d975bc4..2eb2b41ca 100644 --- a/.github/workflows/realm-dart-linux.yml +++ b/.github/workflows/realm-dart-linux.yml @@ -21,7 +21,7 @@ on: jobs: CI: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest env: REALM_CI: true @@ -37,14 +37,10 @@ jobs: - name: Build Realm Dart for Linux run: ./scripts/build-linux.sh - # Note: This workflow uses the latest stable version of the Dart SDK. - # You can specify other versions if desired, see documentation here: - # https://github.com/dart-lang/setup-dart/blob/main/README.md - # - uses: dart-lang/setup-dart@v1 - name : Setup Dart SDK uses: dart-lang/setup-dart@main with: - sdk: beta + sdk: stable - name: Install dependencies run: dart pub get diff --git a/.github/workflows/realm-generator.yml b/.github/workflows/realm-generator.yml index cb2d20ada..10919538e 100644 --- a/.github/workflows/realm-generator.yml +++ b/.github/workflows/realm-generator.yml @@ -15,12 +15,9 @@ on: jobs: CI: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - os: [ubuntu-latest, macos-latest] # windows is not tested due to bug in how error messages are rendered - channel: [stable, beta] + runs-on: ubuntu-latest + env: + REALM_CI: true defaults: run: @@ -33,13 +30,27 @@ jobs: - name : Setup Dart SDK uses: dart-lang/setup-dart@main with: - sdk: ${{ matrix.channel }} + sdk: stable - name: Install dependencies run: dart pub get - name: Run generator tests - run: dart test --reporter expanded --coverage ./coverage/ + run: dart test --reporter expanded --coverage ./coverage/ --test-randomize-ordering-seed random + + - name: Run generator in realm-dart repo + run: | + find . -name "*.g.dart" -delete + dart run build_runner build --delete-conflicting-outputs + + - name: Setup Ninja + uses: seanmiddleditch/gha-setup-ninja@master + + - name: Build Realm Dart for Linux + run: ./scripts/build-linux.sh + + - name: Run realm_dart tests + run: dart test -r expanded --test-randomize-ordering-seed random - name: Generate generator coverage report run: | From 72e221d8c72a7de6047e324df788170adbc28906 Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 18:22:41 +0200 Subject: [PATCH 07/10] fix working directory --- .github/workflows/realm-generator.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/realm-generator.yml b/.github/workflows/realm-generator.yml index 10919538e..d15953b78 100644 --- a/.github/workflows/realm-generator.yml +++ b/.github/workflows/realm-generator.yml @@ -19,10 +19,6 @@ jobs: env: REALM_CI: true - defaults: - run: - working-directory: ./generator/ - steps: - name: Checkout uses: actions/checkout@v2 @@ -32,11 +28,13 @@ jobs: with: sdk: stable - - name: Install dependencies + - name: Install generator dependencies run: dart pub get + working-directory: ./generator/ - name: Run generator tests run: dart test --reporter expanded --coverage ./coverage/ --test-randomize-ordering-seed random + working-directory: ./generator/ - name: Run generator in realm-dart repo run: | @@ -49,6 +47,9 @@ jobs: - name: Build Realm Dart for Linux run: ./scripts/build-linux.sh + - name: Install realm_dart dependencies + run: dart pub get + - name: Run realm_dart tests run: dart test -r expanded --test-randomize-ordering-seed random @@ -61,6 +62,7 @@ jobs: --lcov \ --packages .packages \ --report-on lib + working-directory: ./generator/ - name: Publish Generator Coverage id: publish-generator-coverage @@ -70,7 +72,9 @@ jobs: flag-name: realm_generator path-to-lcov: ./coverage/lcov.info continue-on-error: true + working-directory: ./generator/ - name: Output Coveralls response if: ${{ success() }} run: echo ${{ steps.publish-generator-coverage.outputs.coveralls-api-result }} + working-directory: ./generator/ From 7b968b848a8cb05480cdd9cc5261e320afdd8dbb Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 18:25:03 +0200 Subject: [PATCH 08/10] fix workflow --- .github/workflows/realm-generator.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/realm-generator.yml b/.github/workflows/realm-generator.yml index d15953b78..26f9ddf67 100644 --- a/.github/workflows/realm-generator.yml +++ b/.github/workflows/realm-generator.yml @@ -36,6 +36,9 @@ jobs: run: dart test --reporter expanded --coverage ./coverage/ --test-randomize-ordering-seed random working-directory: ./generator/ + - name: Install realm_dart dependencies + run: dart pub get + - name: Run generator in realm-dart repo run: | find . -name "*.g.dart" -delete @@ -47,9 +50,6 @@ jobs: - name: Build Realm Dart for Linux run: ./scripts/build-linux.sh - - name: Install realm_dart dependencies - run: dart pub get - - name: Run realm_dart tests run: dart test -r expanded --test-randomize-ordering-seed random From 0a1e753dcf7dbc7269eeac7c54a30085643d212f Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 18:28:10 +0200 Subject: [PATCH 09/10] fix coverage file path --- .github/workflows/realm-generator.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/realm-generator.yml b/.github/workflows/realm-generator.yml index 26f9ddf67..5568d0653 100644 --- a/.github/workflows/realm-generator.yml +++ b/.github/workflows/realm-generator.yml @@ -70,9 +70,8 @@ jobs: with: github-token: ${{ secrets.GITHUB_TOKEN }} flag-name: realm_generator - path-to-lcov: ./coverage/lcov.info + path-to-lcov: ./generator/coverage/lcov.info continue-on-error: true - working-directory: ./generator/ - name: Output Coveralls response if: ${{ success() }} From c4289f02b49fd7567e2d08f418587231ff280ee6 Mon Sep 17 00:00:00 2001 From: blagoev Date: Fri, 11 Feb 2022 18:31:05 +0200 Subject: [PATCH 10/10] get submodule --- .github/workflows/realm-generator.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/realm-generator.yml b/.github/workflows/realm-generator.yml index 5568d0653..a1f5f32f0 100644 --- a/.github/workflows/realm-generator.yml +++ b/.github/workflows/realm-generator.yml @@ -22,6 +22,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 + with: + submodules: 'recursive' - name : Setup Dart SDK uses: dart-lang/setup-dart@main