update CI. (#287)

* update.

* update.

* pub update.

* fix import_sorter.

* fix analyze.
This commit is contained in:
CloudWebRTC
2023-05-17 13:44:28 +08:00
committed by GitHub
parent 83f87547e7
commit e12dd60f5f
20 changed files with 179 additions and 61 deletions
+119 -24
View File
@@ -7,35 +7,130 @@ on:
branches: [ main ] branches: [ main ]
jobs: jobs:
build: dart-format-and-analyze-check:
# This job will run on ubuntu virtual machine name: Dart Format Check
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
# # Setup Java environment in order to build the Android app.
# - uses: actions/checkout@v1
# - uses: actions/setup-java@v1
# with:
# java-version: '12.x'
# Setup the flutter environment.
- uses: subosito/flutter-action@v1
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- uses: actions/setup-java@v1
- name: Cache Flutter dependencies
uses: actions/cache@v1
with: with:
path: /opt/hostedtoolcache/flutter java-version: '12.x'
key: ${{ runner.OS }}-flutter-install-cache-${{ env.flutter_version }} - uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install project dependencies
run: flutter pub get
- name: Dart Format Check
run: dart format lib/ test/ --set-exit-if-changed
- name: Import Sorter Check
run: dart run import_sorter:main --no-comments --exit-if-changed
- name: Dart Analyze Check
run: flutter analyze
- name: Dart Test Check
run: flutter test
# Get flutter dependencies. build-for-android:
- run: flutter pub get name: Build for Flutter Android
runs-on: ubuntu-latest
# Check for any formatting issues in the code. steps:
- run: dart format --set-exit-if-changed . - uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install project dependencies
run: flutter pub get
- name: Start Android Build
working-directory: ./example
run: flutter build apk
# Statically analyze the Dart code for any errors. build-for-ios:
- run: flutter analyze . name: Build for Flutter iOS
runs-on: macos-latest
# Run widget tests for our flutter project. steps:
- run: flutter test - uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install project dependencies
run: flutter pub get
- name: Build for iOS
working-directory: ./example
run: flutter build ios --release --no-codesign
build-for-windows:
name: Build for flutter Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
- name: Install project dependencies
run: flutter pub get
- name: Build for windows
working-directory: ./example
run: flutter build windows --release
build-for-macos:
name: Build for flutter macOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v1
with:
channel: 'stable'
- name: Install project dependencies
run: flutter pub get
- name: Build for windows
working-directory: ./example
run: flutter build macos --release
build-for-linux:
name: Build for Flutter Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install project dependencies
run: flutter pub get
- name: Install ninja-build libgtk-3-dev
run: sudo apt-get install -y ninja-build libgtk-3-dev
- name: Start Linux Build
working-directory: ./example
run: flutter build linux
build-for-web:
name: Build for Flutter Web
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: actions/checkout@v2
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Install project dependencies
run: flutter pub get
- name: Start Web Build
working-directory: ./example
run: flutter build web
+24 -13
View File
@@ -1,26 +1,37 @@
name: Publish build name: Publish build
on: on:
push: release:
# only publish on version tags types: [published]
tags:
- v*
jobs: jobs:
publish: publish:
# This job will run on ubuntu virtual machine
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
# Setup the flutter environment.
- uses: subosito/flutter-action@v1
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Install Flutter
- name: Cache Flutter dependencies uses: subosito/flutter-action@v2
uses: actions/cache@v1
with: with:
path: /opt/hostedtoolcache/flutter flutter-version: '3.3.3'
key: ${{ runner.OS }}-flutter-install-cache-${{ env.flutter_version }} - name: Install project dependencies
run: flutter pub get
- name: Dart Format Check
run: dart format lib/ test/ --set-exit-if-changed
- name: Import Sorter Check
run: dart run import_sorter:main --no-comments --exit-if-changed
- name: Dart Analyze Check
run: flutter analyze
- name: Dart Test Check
run: flutter test
- name: Check Publish Warnings
run: dart pub publish --dry-run
- name: Publish
uses: k-paxian/[email protected]
with:
credentialJson: ${{ secrets.CREDENTIAL_JSON }}
flutter: true
skipTests: true
force: true
- run: flutter pub get - run: flutter pub get
- run: flutter pub global activate dartdoc - run: flutter pub global activate dartdoc
+4 -4
View File
@@ -11,16 +11,16 @@ dependencies:
flutter: flutter:
sdk: flutter sdk: flutter
intl: ^0.17.0 intl: ^0.18.1
flutter_background: ^1.1.0 flutter_background: ^1.1.0
permission_handler: ^10.2.0 permission_handler: ^10.2.0
provider: ^6.0.1 provider: ^6.0.1
logging: ^1.0.1 logging: ^1.0.1
shared_preferences: ^2.0.7 shared_preferences: ^2.0.7
google_fonts: ^2.1.0 google_fonts: ^4.0.4
eva_icons_flutter: ^3.0.0 eva_icons_flutter: ^3.0.0
flutter_svg: ^1.0.0 flutter_svg: ^2.0.5
livekit_client: livekit_client:
path: ../ path: ../
@@ -31,7 +31,7 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter
flutter_lints: ^1.0.4 flutter_lints: ^2.0.1
# The following section is specific to Flutter. # The following section is specific to Flutter.
flutter: flutter:
+4 -3
View File
@@ -1,9 +1,8 @@
import 'dart:async'; import 'dart:async';
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:livekit_client/src/hardware/hardware.dart';
import 'package:livekit_client/src/support/app_state.dart'; import 'package:collection/collection.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import '../core/signal_client.dart'; import '../core/signal_client.dart';
@@ -11,6 +10,7 @@ import '../e2ee/e2ee_manager.dart';
import '../events.dart'; import '../events.dart';
import '../exceptions.dart'; import '../exceptions.dart';
import '../extensions.dart'; import '../extensions.dart';
import '../hardware/hardware.dart';
import '../internal/events.dart'; import '../internal/events.dart';
import '../logger.dart'; import '../logger.dart';
import '../managers/event.dart'; import '../managers/event.dart';
@@ -20,6 +20,7 @@ import '../participant/participant.dart';
import '../participant/remote.dart'; import '../participant/remote.dart';
import '../proto/livekit_models.pb.dart' as lk_models; import '../proto/livekit_models.pb.dart' as lk_models;
import '../proto/livekit_rtc.pb.dart' as lk_rtc; import '../proto/livekit_rtc.pb.dart' as lk_rtc;
import '../support/app_state.dart';
import '../support/disposable.dart'; import '../support/disposable.dart';
import '../support/platform.dart'; import '../support/platform.dart';
import '../track/local/audio.dart'; import '../track/local/audio.dart';
+1 -1
View File
@@ -1,12 +1,12 @@
import 'dart:async'; import 'dart:async';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:livekit_client/src/options.dart';
import '../exceptions.dart'; import '../exceptions.dart';
import '../extensions.dart'; import '../extensions.dart';
import '../internal/types.dart'; import '../internal/types.dart';
import '../logger.dart'; import '../logger.dart';
import '../options.dart';
import '../support/disposable.dart'; import '../support/disposable.dart';
import '../types/other.dart'; import '../types/other.dart';
import '../utils.dart'; import '../utils.dart';
+5 -4
View File
@@ -1,10 +1,11 @@
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart';
import 'package:livekit_client/src/e2ee/events.dart';
import 'package:livekit_client/src/extensions.dart';
import '../events.dart'; import 'package:flutter_webrtc/flutter_webrtc.dart';
import '../core/room.dart'; import '../core/room.dart';
import '../e2ee/events.dart';
import '../events.dart';
import '../extensions.dart';
import '../managers/event.dart'; import '../managers/event.dart';
import 'key_provider.dart'; import 'key_provider.dart';
+3 -2
View File
@@ -1,9 +1,10 @@
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:livekit_client/livekit_client.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import '../livekit_client.dart';
import 'proto/livekit_models.pb.dart' as lk_models; import 'proto/livekit_models.pb.dart' as lk_models;
import 'proto/livekit_rtc.pb.dart' as lk_rtc; import 'proto/livekit_rtc.pb.dart' as lk_rtc;
+1
View File
@@ -1,4 +1,5 @@
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
+1 -1
View File
@@ -1,11 +1,11 @@
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:livekit_client/src/internal/events.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import '../core/room.dart'; import '../core/room.dart';
import '../events.dart'; import '../events.dart';
import '../exceptions.dart'; import '../exceptions.dart';
import '../extensions.dart'; import '../extensions.dart';
import '../internal/events.dart';
import '../logger.dart'; import '../logger.dart';
import '../proto/livekit_models.pb.dart' as lk_models; import '../proto/livekit_models.pb.dart' as lk_models;
import '../publication/remote.dart'; import '../publication/remote.dart';
+1 -1
View File
@@ -1,6 +1,6 @@
import 'package:livekit_client/livekit_client.dart';
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
import '../../livekit_client.dart';
import '../core/signal_client.dart'; import '../core/signal_client.dart';
import '../extensions.dart'; import '../extensions.dart';
import '../internal/events.dart'; import '../internal/events.dart';
+1
View File
@@ -1,4 +1,5 @@
import 'dart:io'; import 'dart:io';
import 'platform/io.dart' if (dart.library.html) 'platform/web.dart'; import 'platform/io.dart' if (dart.library.html) 'platform/web.dart';
// Returns the current platform which works for both web and devices. // Returns the current platform which works for both web and devices.
+2 -1
View File
@@ -1,8 +1,9 @@
import '../platform.dart';
import 'dart:js' as js; import 'dart:js' as js;
import 'package:platform_detect/platform_detect.dart'; import 'package:platform_detect/platform_detect.dart';
import '../platform.dart';
PlatformType lkPlatformImplementation() => PlatformType.web; PlatformType lkPlatformImplementation() => PlatformType.web;
bool lkE2EESupportedImplementation() { bool lkE2EESupportedImplementation() {
+1
View File
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
+1
View File
@@ -1,4 +1,5 @@
import 'package:flutter/foundation.dart' show kIsWeb; import 'package:flutter/foundation.dart' show kIsWeb;
import 'package:flutter_webrtc/flutter_webrtc.dart'; import 'package:flutter_webrtc/flutter_webrtc.dart';
import '../track/local/audio.dart'; import '../track/local/audio.dart';
+1 -1
View File
@@ -1,6 +1,6 @@
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:livekit_client/src/internal/events.dart';
import '../../internal/events.dart';
import '../../proto/livekit_models.pb.dart' as lk_models; import '../../proto/livekit_models.pb.dart' as lk_models;
import '../../types/other.dart'; import '../../types/other.dart';
import '../audio_management.dart'; import '../audio_management.dart';
+1
View File
@@ -1,5 +1,6 @@
import 'dart:html' as html; import 'dart:html' as html;
import 'dart:js_util' as jsutil; import 'dart:js_util' as jsutil;
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:js_bindings/js_bindings.dart' as js_bindings; import 'package:js_bindings/js_bindings.dart' as js_bindings;
+3 -2
View File
@@ -1,10 +1,11 @@
import 'dart:async'; import 'dart:async';
import 'dart:math' as math; import 'dart:math' as math;
import 'package:flutter/foundation.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:connectivity_plus/connectivity_plus.dart'; import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:device_info_plus/device_info_plus.dart'; import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:meta/meta.dart'; import 'package:meta/meta.dart';
@@ -112,7 +113,7 @@ class Utils {
case PlatformType.iOS: case PlatformType.iOS:
final info = await _deviceInfoPlugin.iosInfo; final info = await _deviceInfoPlugin.iosInfo;
String? model = info.utsname.machine; String? model = info.utsname.machine;
if (model != null && ['i386', 'x86_64', 'arm64'].contains(model)) { if (['i386', 'x86_64', 'arm64'].contains(model)) {
model = 'iOSSimulator,${model}'; model = 'iOSSimulator,${model}';
} }
return lk_models.ClientInfo( return lk_models.ClientInfo(
@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
class ThumbnailWidget extends StatefulWidget { class ThumbnailWidget extends StatefulWidget {
+2 -1
View File
@@ -1,11 +1,12 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc; import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:livekit_client/src/support/platform.dart';
import '../events.dart'; import '../events.dart';
import '../extensions.dart'; import '../extensions.dart';
import '../internal/events.dart'; import '../internal/events.dart';
import '../managers/event.dart'; import '../managers/event.dart';
import '../support/platform.dart';
import '../track/local/local.dart'; import '../track/local/local.dart';
import '../track/local/video.dart'; import '../track/local/video.dart';
import '../track/options.dart'; import '../track/options.dart';
+3 -3
View File
@@ -15,7 +15,7 @@ dependencies:
sdk: flutter sdk: flutter
async: ^2.9.0 async: ^2.9.0
collection: ^1.16.0 collection: ^1.16.0
connectivity_plus: ^3.0.6 connectivity_plus: ^4.0.0
cryptography: ^2.0.5 cryptography: ^2.0.5
fixnum: ^1.0.1 fixnum: ^1.0.1
meta: ^1.8.0 meta: ^1.8.0
@@ -24,9 +24,9 @@ dependencies:
uuid: ^3.0.6 uuid: ^3.0.6
synchronized: ^3.0.0+3 synchronized: ^3.0.0+3
protobuf: ^2.1.0 protobuf: ^2.1.0
flutter_webrtc: 0.9.28 flutter_webrtc: ^0.9.30+hotfix.1
flutter_window_close: ^0.2.2 flutter_window_close: ^0.2.2
device_info_plus: ^8.0.0 device_info_plus: ^9.0.0
webrtc_interface: 1.0.13 webrtc_interface: 1.0.13
dart_webrtc: 1.0.16 dart_webrtc: 1.0.16
js: ^0.6.4 js: ^0.6.4