From b221958900efdc26eb48f1e276ae3dd8208662c1 Mon Sep 17 00:00:00 2001 From: Florian Bussmann Date: Fri, 15 Aug 2025 16:38:12 +0200 Subject: [PATCH 1/5] ci: deploy using GitHub Pages --- .github/workflows/flutter.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/flutter.yml b/.github/workflows/flutter.yml index d7f16ed..35000ba 100644 --- a/.github/workflows/flutter.yml +++ b/.github/workflows/flutter.yml @@ -20,3 +20,8 @@ jobs: - run: flutter pub get - run: flutter test - run: flutter build web + - name: Deploy + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./build/web From 66363579cddfc2ed8c96e8b0513321e54ab413cd Mon Sep 17 00:00:00 2001 From: Florian Bussmann Date: Fri, 15 Aug 2025 20:24:03 +0200 Subject: [PATCH 2/5] fix: base href --- .github/workflows/flutter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/flutter.yml b/.github/workflows/flutter.yml index 35000ba..a13be48 100644 --- a/.github/workflows/flutter.yml +++ b/.github/workflows/flutter.yml @@ -19,7 +19,7 @@ jobs: - run: flutter doctor - run: flutter pub get - run: flutter test - - run: flutter build web + - run: flutter build web --base-href "/flutter_application_alertmanager/" - name: Deploy uses: peaceiris/actions-gh-pages@v4 with: From b7471b801619f12c3eb63f6f91fbee6bb97895de Mon Sep 17 00:00:00 2001 From: Florian Bussmann Date: Fri, 15 Aug 2025 22:29:14 +0200 Subject: [PATCH 3/5] chore: use public demo for gh-pages --- lib/main.dart | 16 +++++++++++++--- pubspec.lock | 2 +- pubspec.yaml | 1 + 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index bda4326..7c1f16c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,9 @@ import 'dart:convert'; +import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; +import 'package:web/web.dart' as web; import 'package:shared_preferences/shared_preferences.dart'; void main() { @@ -96,9 +98,17 @@ class _AlertListScreenState extends State { Future _initConnection() async { final prefs = await SharedPreferences.getInstance(); - baseUrl = - prefs.getString('alertmanager_url') ?? - 'http://prometheus-alertmanager:9093'; + if (kIsWeb && web.window.location.protocol == 'https:') { + // On web & served via HTTPS → use public demo Alertmanager if unset + baseUrl = + prefs.getString('alertmanager_url') ?? + 'https://alertmanager.demo.prometheus.io'; + } else { + // Fallback to saved URL or local instance + baseUrl = + prefs.getString('alertmanager_url') ?? + 'http://prometheus-alertmanager:9093'; + } _fetchAlerts(); } diff --git a/pubspec.lock b/pubspec.lock index 092dfd8..4d6e419 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -350,7 +350,7 @@ packages: source: hosted version: "15.0.0" web: - dependency: transitive + dependency: "direct main" description: name: web sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" diff --git a/pubspec.yaml b/pubspec.yaml index 0506071..d42435f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -36,6 +36,7 @@ dependencies: cupertino_icons: ^1.0.8 http: ^1.5.0 shared_preferences: ^2.5.3 + web: ^1.1.1 dev_dependencies: flutter_test: From 04585d2ba9547c60d3a095b405042c6cf9b99c4a Mon Sep 17 00:00:00 2001 From: Florian Bussmann Date: Fri, 15 Aug 2025 22:43:54 +0200 Subject: [PATCH 4/5] fix: tests in VM --- lib/main.dart | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 7c1f16c..1acc295 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,9 +1,8 @@ import 'dart:convert'; -import 'package:flutter/foundation.dart'; +import 'package:flutter/foundation.dart' show kIsWeb; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; -import 'package:web/web.dart' as web; import 'package:shared_preferences/shared_preferences.dart'; void main() { @@ -98,7 +97,7 @@ class _AlertListScreenState extends State { Future _initConnection() async { final prefs = await SharedPreferences.getInstance(); - if (kIsWeb && web.window.location.protocol == 'https:') { + if (kIsWeb && Uri.base.scheme == 'https') { // On web & served via HTTPS → use public demo Alertmanager if unset baseUrl = prefs.getString('alertmanager_url') ?? From a867eb576967a6c1f105b0fe0e47f2821c4b0128 Mon Sep 17 00:00:00 2001 From: Florian Bussmann Date: Fri, 15 Aug 2025 22:48:17 +0200 Subject: [PATCH 5/5] ci: limit gh-pages deploy to main --- .github/workflows/flutter.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/flutter.yml b/.github/workflows/flutter.yml index a13be48..01572ab 100644 --- a/.github/workflows/flutter.yml +++ b/.github/workflows/flutter.yml @@ -22,6 +22,7 @@ jobs: - run: flutter build web --base-href "/flutter_application_alertmanager/" - name: Deploy uses: peaceiris/actions-gh-pages@v4 + if: github.ref == 'refs/heads/main' with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./build/web