ci(app): Flutter CI-джоба + сборка Linux/Windows

analyze+test и flutter build linux/windows в отдельных джобах по образцу
backend. Линуксовая сборка требует libsecret-1-dev/pkg-config (apt) и
подавления -Werror=deprecated-literal-operator в CMake — flutter_secure_storage_linux
вендорит старый nlohmann/json.hpp, который на новых компиляторах иначе
не собирается.
This commit is contained in:
Dmitry
2026-09-19 13:04:40 +03:00
parent ffc5ed959a
commit e1fcef6364
2 changed files with 57 additions and 0 deletions
+47
View File
@@ -40,3 +40,50 @@ jobs:
run: | run: |
uv run fintracker openapi /tmp/openapi.json uv run fintracker openapi /tmp/openapi.json
diff -u ../openapi/openapi.json /tmp/openapi.json diff -u ../openapi/openapi.json /tmp/openapi.json
app:
runs-on: ubuntu-latest
defaults:
run:
working-directory: app
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version: "3.47.4"
channel: stable
- run: flutter pub get
- run: flutter analyze
- run: flutter test
app-build-linux:
runs-on: ubuntu-latest
defaults:
run:
working-directory: app
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version: "3.47.4"
channel: stable
- name: install Linux desktop build dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libsecret-1-dev
- run: flutter pub get
- run: flutter build linux --release
app-build-windows:
runs-on: windows-latest
defaults:
run:
working-directory: app
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
flutter-version: "3.47.4"
channel: stable
- run: flutter pub get
- run: flutter build windows --release
+10
View File
@@ -70,6 +70,16 @@ set_target_properties(${BINARY_NAME}
) )
# flutter_secure_storage_linux vendors an old single-header nlohmann/json.hpp
# that trips modern Clang's -Werror=deprecated-literal-operator (whitespace
# before a literal-operator suffix, e.g. `operator"" _json`). We don't control
# that vendored header, so silence just this warning for everything added
# below (must come before add_subdirectory pulls the plugins in — Clang picks
# it up because add_compile_options affects this directory scope and every
# add_subdirectory call after it, which is how generated_plugins.cmake adds
# the plugin targets).
add_compile_options(-Wno-deprecated-literal-operator)
# Generated plugin build rules, which manage building the plugins and adding # Generated plugin build rules, which manage building the plugins and adding
# them to the application. # them to the application.
include(flutter/generated_plugins.cmake) include(flutter/generated_plugins.cmake)