diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d3d96e5d..999703a2c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -321,9 +321,23 @@ jobs: - name: Run tests on iOS Simulator run: | - flutter drive --target=test_driver/app.dart --dart-define=testName="" --suppress-analytics --debug + flutter test integration_test/all_tests.dart \ + --dart-define=BAAS_BAASAAS_API_KEY=$BAAS_BAASAAS_API_KEY \ + --dart-define=BAAS_DIFFERENTIATOR=$BAAS_DIFFERENTIATOR \ + --file-reporter=json:test-results.json \ + --suppress-analytics working-directory: ./flutter/realm_flutter/tests + - name: Publish Test Report + uses: dorny/test-reporter@v1.7.0 + if: success() || failure() + with: + name: Test Results Flutter iOS + path: test-results.json + reporter: dart-json + only-summary: true + working-directory: ./flutter/realm_flutter/tests + cleanup-cluster-flutter-ios: name: Cleanup Cluster for Flutter iOS uses: ./.github/workflows/terminate-baas.yml @@ -342,7 +356,7 @@ jobs: differentiator: fa${{ github.run_id }}${{ github.run_attempt }} flutter-tests-android: - runs-on: macos-latest + runs-on: ubuntu-latest name: Flutter Tests Android timeout-minutes: 45 needs: @@ -358,6 +372,15 @@ jobs: with: submodules: 'recursive' + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Gradle cache + uses: gradle/gradle-build-action@v2 + - name: Set up Java uses: actions/setup-java@v3 with: @@ -411,7 +434,17 @@ jobs: ndk: 21.0.6113669 arch: x86 cmake: 3.10.2.4988404 - script: flutter build apk --debug --target=test_driver/app.dart && flutter install --debug && flutter drive --target=test_driver/app.dart --dart-define=testName="" --suppress-analytics --debug + script: flutter test integration_test/all_tests.dart --dart-define=BAAS_BAASAAS_API_KEY=$BAAS_BAASAAS_API_KEY --dart-define=BAAS_DIFFERENTIATOR=$BAAS_DIFFERENTIATOR --file-reporter=json:test-results.json --suppress-analytics + working-directory: ./flutter/realm_flutter/tests + + - name: Publish Test Report + uses: dorny/test-reporter@v1.7.0 + if: success() || failure() + with: + name: Test Results Flutter Android + path: test-results.json + reporter: dart-json + only-summary: true working-directory: ./flutter/realm_flutter/tests cleanup-cluster-flutter-android: diff --git a/.github/workflows/flutter-desktop-tests.yml b/.github/workflows/flutter-desktop-tests.yml index c808d1e59..f643ab1f6 100644 --- a/.github/workflows/flutter-desktop-tests.yml +++ b/.github/workflows/flutter-desktop-tests.yml @@ -72,5 +72,23 @@ jobs: if: ${{ contains(inputs.os, 'macos') }} - name: Run tests - run: ${{ inputs.os == 'linux' && 'xvfb-run' || '' }} flutter drive -d ${{ inputs.os }} --target=test_driver/app.dart --suppress-analytics --dart-entrypoint-args="" --debug # -a="Some test name" + run: | + ${{ inputs.os == 'linux' && 'xvfb-run' || '' }} \ + flutter test integration_test/all_tests.dart \ + --dart-define=BAAS_BAASAAS_API_KEY=$BAAS_BAASAAS_API_KEY \ + --dart-define=BAAS_DIFFERENTIATOR=$BAAS_DIFFERENTIATOR \ + --device-id=${{ inputs.os }} \ + --file-reporter=json:test-results.json \ + --suppress-analytics + shell: bash working-directory: ./flutter/realm_flutter/tests + + - name: Publish Test Report + uses: dorny/test-reporter@v1.7.0 + if: success() || failure() + with: + name: Test Results Flutter ${{ inputs.os }} ${{ inputs.architecture }} + path: test-results.json + reporter: dart-json + only-summary: true + working-directory: ./flutter/realm_flutter/tests diff --git a/common/topic.md b/common/topic.md deleted file mode 120000 index d95abdf64..000000000 --- a/common/topic.md +++ /dev/null @@ -1 +0,0 @@ -../topic.md \ No newline at end of file diff --git a/dartdoc_options.yaml b/dartdoc_options.yaml index 683be5f02..1614f7b99 100644 --- a/dartdoc_options.yaml +++ b/dartdoc_options.yaml @@ -1,20 +1,10 @@ dartdoc: categories: "Configuration": - markdown: topic.md - name: Configuration "Annotations": - markdown: topic.md - name: Annotations "Realm": - markdown: topic.md - name: Realm "Application": - markdown: topic.md - name: Application "Sync": - markdown: topic.md - name: Sync categoryOrder: ["Realm", "Configuration", "Annotations", "Application", "Sync"] examplePathPrefix: 'example' # nodoc: ['generator/flutter/ffigen/scripts/src/test/*.g.dart'] diff --git a/flavor_helpers.dart b/flavor_helpers.dart deleted file mode 100644 index 565c5205e..000000000 --- a/flavor_helpers.dart +++ /dev/null @@ -1,6 +0,0 @@ -import 'dart:io'; -import 'package:path/path.dart' as p; - -Future copyBundledFile(String fromPath, String toPath) async { - await File(p.join('test', fromPath)).copy(toPath); -} diff --git a/flutter/realm_flutter/data b/flutter/realm_flutter/data deleted file mode 120000 index 4bfafef56..000000000 --- a/flutter/realm_flutter/data +++ /dev/null @@ -1 +0,0 @@ -../../test/data \ No newline at end of file diff --git a/flutter/realm_flutter/realm_flutter.iml b/flutter/realm_flutter/realm_flutter.iml deleted file mode 100644 index 429df7daf..000000000 --- a/flutter/realm_flutter/realm_flutter.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/flutter/realm_flutter/tests/.metadata b/flutter/realm_flutter/tests/.metadata index 863658e80..58ad27477 100644 --- a/flutter/realm_flutter/tests/.metadata +++ b/flutter/realm_flutter/tests/.metadata @@ -4,7 +4,39 @@ # This file should be version controlled and should not be manually edited. version: - revision: f18b9281c2280c2646aa3d4348715ed5bb9446c8 - channel: beta + revision: "67457e669f79e9f8d13d7a68fe09775fefbb79f4" + channel: "stable" project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + - platform: android + create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + - platform: ios + create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + - platform: linux + create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + - platform: macos + create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + - platform: windows + create_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + base_revision: 67457e669f79e9f8d13d7a68fe09775fefbb79f4 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/flutter/realm_flutter/tests/android/app/build.gradle b/flutter/realm_flutter/tests/android/app/build.gradle index 80137838e..443d0e67e 100644 --- a/flutter/realm_flutter/tests/android/app/build.gradle +++ b/flutter/realm_flutter/tests/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,21 +22,31 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 31 + namespace "io.realm.tests" + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "io.realm.tests" - minSdkVersion 16 - targetSdkVersion 30 + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -52,3 +63,5 @@ android { flutter { source '../..' } + +dependencies {} diff --git a/flutter/realm_flutter/tests/android/app/src/debug/AndroidManifest.xml b/flutter/realm_flutter/tests/android/app/src/debug/AndroidManifest.xml index 26fb9c734..399f6981d 100644 --- a/flutter/realm_flutter/tests/android/app/src/debug/AndroidManifest.xml +++ b/flutter/realm_flutter/tests/android/app/src/debug/AndroidManifest.xml @@ -1,6 +1,6 @@ - - diff --git a/flutter/realm_flutter/tests/android/app/src/main/AndroidManifest.xml b/flutter/realm_flutter/tests/android/app/src/main/AndroidManifest.xml index 97e0f93f0..97f14c160 100644 --- a/flutter/realm_flutter/tests/android/app/src/main/AndroidManifest.xml +++ b/flutter/realm_flutter/tests/android/app/src/main/AndroidManifest.xml @@ -1,10 +1,11 @@ - - + - - diff --git a/flutter/realm_flutter/tests/android/app/src/main/java/io/tests/MainActivity.java b/flutter/realm_flutter/tests/android/app/src/main/java/io/tests/MainActivity.java deleted file mode 100644 index 925285545..000000000 --- a/flutter/realm_flutter/tests/android/app/src/main/java/io/tests/MainActivity.java +++ /dev/null @@ -1,6 +0,0 @@ -package io.realm.tests; - -import io.flutter.embedding.android.FlutterActivity; - -public class MainActivity extends FlutterActivity { -} diff --git a/flutter/realm_flutter/tests/android/app/src/main/kotlin/io/realm/tests/MainActivity.kt b/flutter/realm_flutter/tests/android/app/src/main/kotlin/io/realm/tests/MainActivity.kt new file mode 100644 index 000000000..30d7769d8 --- /dev/null +++ b/flutter/realm_flutter/tests/android/app/src/main/kotlin/io/realm/tests/MainActivity.kt @@ -0,0 +1,6 @@ +package io.realm.tests + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/flutter/realm_flutter/tests/android/app/src/main/res/values-night/styles.xml b/flutter/realm_flutter/tests/android/app/src/main/res/values-night/styles.xml index 449a9f930..06952be74 100644 --- a/flutter/realm_flutter/tests/android/app/src/main/res/values-night/styles.xml +++ b/flutter/realm_flutter/tests/android/app/src/main/res/values-night/styles.xml @@ -3,14 +3,14 @@