name: serverpod_offline_sync_workspace publish_to: none environment: sdk: '^3.12.2' workspace: - benchmark - packages/serverpod_offline_sync - packages/serverpod_offline_sync_client - packages/serverpod_offline_sync_server - test/serverpod_offline_sync_test_client - test/serverpod_offline_sync_test_server - test/serverpod_offline_sync_test_shared dev_dependencies: melos: ^7.5.1 serverpod_cli: '>=4.0.4 <4.1.0' # dependency_overrides: # serverpod: # git: # url: https://github.com/serverpod/serverpod.git # path: packages/serverpod # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_auth_core_client: # git: # url: https://github.com/serverpod/serverpod.git # path: modules/serverpod_auth/serverpod_auth_core/serverpod_auth_core_client # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_auth_core_server: # git: # url: https://github.com/serverpod/serverpod.git # path: modules/serverpod_auth/serverpod_auth_core/serverpod_auth_core_server # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_cli: # git: # url: https://github.com/serverpod/serverpod.git # path: tools/serverpod_cli # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_client: # git: # url: https://github.com/serverpod/serverpod.git # path: packages/serverpod_client # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_database: # git: # url: https://github.com/serverpod/serverpod.git # path: packages/serverpod_database # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_embedded_postgres: # git: # url: https://github.com/serverpod/serverpod.git # path: packages/serverpod_embedded_postgres # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_shared: # git: # url: https://github.com/serverpod/serverpod.git # path: packages/serverpod_shared # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_serialization: # git: # url: https://github.com/serverpod/serverpod.git # path: packages/serverpod_serialization # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_service_client: # git: # url: https://github.com/serverpod/serverpod.git # path: packages/serverpod_service_client # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba # serverpod_test: # git: # url: https://github.com/serverpod/serverpod.git # path: packages/serverpod_test # ref: 062691764e38c53b0db05f24a4d07780c11bf0ba melos: packages: - benchmark - packages/* - tests/** categories: publish: - packages/* scripts: cleanup: | find . -type d \( -name generated -o -name protocol \) -print0 | xargs -0 -I@ find @ -mindepth 1 -maxdepth 1 ! -name analysis_options.yaml -print0 | xargs -0 rm -rf setup: run: dart pub get && melos generate && melos create-migration lint: exec: dart analyze . --fatal-infos --fatal-warnings fix: exec: dart fix --apply generate: # Must run the module first, or the test project won't have the tables. run: | melos exec --scope="serverpod_offline_sync_server" -- dart run serverpod_cli generate --force && melos exec --scope="serverpod_offline_sync_test_server" -- dart run serverpod_cli generate --force create-migration: # If the module does not run first, the test project will see no module tables. run: >- melos exec --scope="serverpod_offline_sync_server" -- dart run serverpod_cli create-migration --force && melos exec --scope="serverpod_offline_sync_test_server" -- dart run serverpod_cli create-migration --force upgrade: exec: dart pub upgrade downgrade: exec: dart pub downgrade test: run: >- melos exec --scope="serverpod_offline_sync" -- dart test test/ --reporter=failures-only && melos exec --scope="serverpod_offline_sync_server" -- dart test test/ --reporter=failures-only --concurrency=1 && melos exec --scope="serverpod_offline_sync_test_server" -- dart test test/ --reporter=failures-only --concurrency=1 test-dst: # The deterministic simulation suite, which `test` skips: it is slow and # seeds from the clock, so it searches fresh schedules on every run and # can fail for a defect unrelated to the change that triggered it. # # Select full-history or checkpoint delivery with DST_DELIVERY=full|delta. # Widen the search with DST_SEEDS and DST_ROUNDS; a failure prints the # command that replays it. Concurrency is pinned to one so the reported # failures cannot interleave, which matters when reading a wide sweep. run: >- melos exec --scope="serverpod_offline_sync_test_server" -- dart test -P dst --reporter=failures-only --concurrency=1 reset: exec: rm -f test.db* publish-check: run: melos exec --category="publish" -- dart pub publish --dry-run --ignore-warnings