Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,27 @@ on:
paths:
- 'android/**'
- '.github/workflows/android.yml'
# The twin-drift guards read the SWIFT side's fixtures on purpose — DecoderOracleTest compares
# against Packages/.../decoder_oracle.json to catch a one-sided edit, and the schema/protocol
# oracles work the same way. Without these, editing the Swift copy alone leaves the very test
# written to catch that from ever running. Keep this list in step with what the tests read.
- 'Packages/WhoopProtocol/Sources/WhoopProtocol/Resources/**'
- 'Packages/WhoopProtocol/Tests/WhoopProtocolTests/Resources/**'
- 'Packages/WhoopStore/Tests/WhoopStoreTests/Resources/**'
- 'Strand/Resources/Localizable.xcstrings'
push:
branches: [main]
paths:
- 'android/**'
- '.github/workflows/android.yml'
# The twin-drift guards read the SWIFT side's fixtures on purpose — DecoderOracleTest compares
# against Packages/.../decoder_oracle.json to catch a one-sided edit, and the schema/protocol
# oracles work the same way. Without these, editing the Swift copy alone leaves the very test
# written to catch that from ever running. Keep this list in step with what the tests read.
- 'Packages/WhoopProtocol/Sources/WhoopProtocol/Resources/**'
- 'Packages/WhoopProtocol/Tests/WhoopProtocolTests/Resources/**'
- 'Packages/WhoopStore/Tests/WhoopStoreTests/Resources/**'
- 'Strand/Resources/Localizable.xcstrings'
workflow_dispatch:

concurrency:
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/swift-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ on:
- 'Tools/SleepPSG/**'
- 'Tools/Backfill/**'
- '.github/workflows/swift-packages.yml'
# Mirror of the note in android.yml: package tests read the ANDROID oracles to catch a one-sided
# edit, and one reads Strand/Liquid/LiquidCore.swift. Editing only that side would otherwise skip
# the guard written for exactly that case. Keep in step with what the tests read.
- 'android/app/src/test/resources/**'
- 'Strand/Liquid/LiquidCore.swift'
push:
branches: [main]
paths:
Expand All @@ -24,6 +29,11 @@ on:
- 'Tools/SleepPSG/**'
- 'Tools/Backfill/**'
- '.github/workflows/swift-packages.yml'
# Mirror of the note in android.yml: package tests read the ANDROID oracles to catch a one-sided
# edit, and one reads Strand/Liquid/LiquidCore.swift. Editing only that side would otherwise skip
# the guard written for exactly that case. Keep in step with what the tests read.
- 'android/app/src/test/resources/**'
- 'Strand/Liquid/LiquidCore.swift'
workflow_dispatch:

concurrency:
Expand Down
23 changes: 13 additions & 10 deletions .github/workflows/tools-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,26 @@
# one of them only ever executed when a contributor remembered to, which meant a decoder could regress and
# the suite that would have caught it stayed green by never being run.
#
# Cheap to run: pure stdlib `unittest`, no dependencies, no fixtures to fetch, ubuntu rather than macOS.
# Path-filtered so it only fires when the suites it runs change.
# Cheap to run: pure stdlib `unittest`, no dependencies, no fixtures to fetch, ubuntu rather than macOS —
# about 25 seconds end to end.
#
# NOT path-filtered, and that is deliberate. It used to fire only on `Tools/**.py`, on the premise that a
# suite can only break when its own source changes. That is false for `test_home_i18n.py`, which asserts
# on the CONTENTS of app and package files — AppModel.swift, the xcstrings catalogues, ReadinessEngine,
# DayNavBar. A Swift-only commit broke it (#1671 moved a sign and a hardcoded °C out of a localized
# literal) and the filter meant this job never ran, so `main` sat red until a contributor touching
# `Tools/` for something unrelated tripped over it in their own PR (#1691).
#
# Widening the filter to name those paths would just re-create the trap one edit later: the list is
# whatever the assertions happen to read today. Twenty-five seconds on every PR is cheaper than a gate
# that is green because it did not run.
name: Tools Python CI

on:
pull_request:
branches: [main]
paths:
- 'Tools/linux-capture/**'
- 'Tools/*.py'
- '.github/workflows/tools-python.yml'
push:
branches: [main]
paths:
- 'Tools/linux-capture/**'
- 'Tools/*.py'
- '.github/workflows/tools-python.yml'
workflow_dispatch:

concurrency:
Expand Down
Loading