diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 00000000..2219ffb5 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,48 @@ +name: Android Release + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install jq + run: | + apt update + apt-get install -y jq + + - uses: actions/setup-java@v3 + with: + distribution: "zulu" + java-version: "12.x" + cache: "gradle" + + - uses: actions/flutter-action@v2 + with: + channel: "stable" + flutter-version: "3.19.0" + cache: true + cache-key: "flutter-:os:-:channel:-:version:-:arch:-:hash:" # optional, change this to force refresh cache + cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" # optional, change this to specify the cache path + pub-cache-key: "flutter-pub:os:-:channel:-:version:-:arch:-:hash:" # optional, change this to force refresh cache of dart pub get dependencies + pub-cache-path: "${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:" # optional, change this to specify the cache path + + - name: fix dir permissions + run: | + git config --global --add safe.directory /opt/hostedtoolcache/flutter/stable-3.19.0-x64 + flutter --version + + - name: Get dependencies + run: flutter pub get + + - name: Run Code Metrics + run: flutter pub run dart_code_metrics:metrics lib --disable-sunset-warning --fatal-warnings --fatal-performance +# - name: Build apk +# run: flutter build apk + +# Runs a set of commands using the runners shell +# - name: Start release build +# run: flutter build appbundle diff --git a/README.md b/README.md index f6cc1597..39b2d892 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # eatvio_app ### Системные требования -- Flutter (Channel stable, 3.16.4, on Ubuntu 22.04.3 LTS 6.2.0-39-generic, locale en_US.UTF-8) +- Flutter (Channel stable, 3.19.0, on Ubuntu 22.04.3 LTS 6.2.0-39-generic, locale en_US.UTF-8) - Android Studio (version 2023.1) - VS Code (version 1.85.0) - Android SDK (version 34.0.0) - устанавливается из Android Studio (Tools->SDK Manager->Android Command Line Tools) @@ -32,26 +32,27 @@ Для тестирования на устройствах Android в корневой папке проекта выполните команду -flutter build apk +`# flutter build apk` -после чего .apk файл скомпилируется в директории build/app/outputs/flutter-apk/app-release.apk +после чего `.apk` файл скомпилируется в директории `build/app/outputs/flutter-apk/app-release.apk` Данный файл установит приложение на устройство с актуальной версией OS ### Библиотеки и инструменты - flutter_bloc - контроль состояний - cached_network_image - кеширование картинок из веба - flutter_svg - работа с изображениями - equatable - сравнение без оператора "==" - validators - валидация - hive - локальная бд (1) - hive_flutter - локальная бд (2) - isar_flutter_libs - локальная бд (3) - path_provider - динамичкские пути до файлов - fl_chart - построение графиков - flutter_spinkit - прелоадеры - flutter_dotenv - переменные окружения + - **flutter_bloc** - контроль состояний + - **cached_network_image** - кеширование картинок из веба + - **flutter_svg** - работа с изображениями + - **equatable** - сравнение без оператора "==" + - **validators** - валидация + - **hive** - локальная бд (1) + - **hive_flutter** - локальная бд (2) + - **isar_flutter_libs** - локальная бд (3) + - **path_provider** - динамичкские пути до файлов + - **fl_chart** - построение графиков + - **flutter_spinkit** - прелоадеры + - **flutter_dotenv** - переменные окружения + ### Поддержка diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 00000000..9722fb45 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,34 @@ +analyzer: + plugins: + - dart_code_metrics + +dart_code_metrics: + extends: + - package:dart_code_metrics_presets/flutter_all.yaml + - package:dart_code_metrics_presets/bloc.yaml + metrics: + cyclomatic-complexity: 20 + lines-of-executable-code: 50 + number-of-parameters: 4 + maximum-nesting-level: 5 + metrics-exclude: + - test/** +# extends: +# - recommended +# anti-patterns: +# - long-method +# - long-parameter-list +# metrics: +# cyclomatic-complexity: 20 +# lines-of-executable-code: 50 +# number-of-parameters: 4 +# maximum-nesting-level: 5 +# metrics-exclude: +# - test/** +# rules: +# - newline-before-return +# - no-boolean-literal-compare +# - no-empty-block +# - prefer-trailing-comma +# - prefer-conditional-expressions +# - no-equal-then-else diff --git a/pubspec.yaml b/pubspec.yaml index 5bc2b5fc..40b6b2f2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -25,6 +25,8 @@ dependencies: carousel_slider: ^4.2.1 dev_dependencies: + dart_code_metrics: ^5.7.6 + dart_code_metrics_presets: ^1.8.0 flutter_test: sdk: flutter flutter: