The builds page at /builds/ was empty because generate-build-history
only ran inside deploy-playstore; if that job failed early (e.g. Play
Store secrets not configured) the website was never updated, and the
build-linux job never triggered a website update at all.
Changes:
- generate_build_history.py: extend to cover Linux tarballs in addition
to Android APKs, capped at MAX_BUILDS_PER_PLATFORM (30) each
- Taskfile: add website-publish task (generate-build-history +
website-deploy), exclude *.tar.gz from rsync, update descriptions
- .forgejo/workflows/ci.yml: add publish-website job that waits for
both build-linux and deploy-playstore (using always() so it runs
even when deploy-playstore fails), then removes the duplicate
generate/deploy steps from deploy-playstore
- .github/workflows/ci.yml: add deploy job that deploys Linux build,
generates build history, builds Hugo site, and rsyncs to server
- .gitignore: ignore website/content/builds/_index.md (generated),
Python __pycache__, and widget test failure screenshots
- stalwart-dev/integration_ui_test.sh: use ${USER:-$(id -un)} for
robustness in environments where USER is unset
- scripts/test_generate_build_history.py: unit tests for parse_builds
and render_entries covering both platforms
Generated content (builds/_index.md and per-day pages) is not tracked
in git; it is produced at CI time and rsynced to the server.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
116 lines
1.6 KiB
Plaintext
116 lines
1.6 KiB
Plaintext
# --- Flutter/Dart ---
|
|
coverage/
|
|
.dart_tool/
|
|
.dart-tool/
|
|
.packages
|
|
pubspec.lock
|
|
build/
|
|
*.g.dart
|
|
*.freezed.dart
|
|
|
|
# --- IDEs ---
|
|
.idea/
|
|
.vscode/
|
|
*.iml
|
|
|
|
# --- OS / System ---
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# --- Environment & Secrets ---
|
|
assets/changelog.txt
|
|
.env
|
|
.env.local
|
|
.envrc
|
|
.direnv/
|
|
|
|
# --- Android ---
|
|
android/.gradle/
|
|
android/local.properties
|
|
android/app/google-services.json
|
|
android/key.properties
|
|
android/app/src/main/java/io/flutter/plugins/
|
|
.android/
|
|
Android/
|
|
.gradle/
|
|
.emulator_console_auth_token
|
|
|
|
# --- iOS ---
|
|
ios/Pods/
|
|
ios/Flutter/Generated.xcconfig
|
|
ios/Flutter/ephemeral/
|
|
ios/Flutter/flutter_export_environment.sh
|
|
ios/Runner/GeneratedPluginRegistrant.*
|
|
*.xcworkspace/
|
|
|
|
# --- macOS ---
|
|
macos/Pods/
|
|
macos/Flutter/GeneratedPluginRegistrant.swift
|
|
macos/Flutter/ephemeral/
|
|
|
|
# --- Linux ---
|
|
linux/flutter/ephemeral/
|
|
linux/flutter/generated_plugin_registrant.*
|
|
linux/flutter/generated_plugins.cmake
|
|
|
|
# --- Flutter Metadata ---
|
|
.flutter-plugins
|
|
.flutter-plugins-dependencies
|
|
.metadata
|
|
|
|
# --- Python ---
|
|
__pycache__/
|
|
*.pyc
|
|
|
|
# --- Tools & Cache ---
|
|
.fvm/
|
|
fvm/
|
|
.qwen
|
|
.claude
|
|
.task
|
|
.atuin/
|
|
.cache/
|
|
.config/
|
|
.local/
|
|
.nix-profile
|
|
.npm/
|
|
.pub-cache/
|
|
.dartServer/
|
|
.flutter
|
|
.dart-cli-completion/
|
|
snap/
|
|
|
|
# --- User Configuration (Home Dir Junk) ---
|
|
.bash_logout
|
|
.bashrc
|
|
.profile
|
|
.zcompdump
|
|
.zshrc
|
|
.gitconfig
|
|
.lesshst
|
|
.tmux.conf
|
|
.ssh/
|
|
|
|
# --- Logs & Data ---
|
|
*.log
|
|
runner-data/
|
|
sharedinbox-runner/runner-data/
|
|
.gemini/
|
|
.rustup/
|
|
|
|
# --- Hugo ---
|
|
website/public/
|
|
website/resources/
|
|
website/.hugo_build.lock
|
|
website/content/builds/_index.md
|
|
website/content/builds/[0-9]*/
|
|
|
|
.copilot/
|
|
.dotnet/
|
|
.vscode-server/
|
|
.wget-hsts
|
|
|
|
tmp/
|
|
test/widget/failures/
|
|
.claude*
|