diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 57acf22..9bfef85 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,3 +40,50 @@ jobs: run: | uv run fintracker openapi /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 diff --git a/app/linux/CMakeLists.txt b/app/linux/CMakeLists.txt index fdc509d..f4723a7 100644 --- a/app/linux/CMakeLists.txt +++ b/app/linux/CMakeLists.txt @@ -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 # them to the application. include(flutter/generated_plugins.cmake)