• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

astronomer / astro-cli / 39334347029
61%
main: 45%

Build:
Build:
LAST BUILD BRANCH: v2-build-on-locked-runtime
DEFAULT BRANCH: main
Ran 19 Oct 2026 10:26PM UTC
Jobs 1
Files 344
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Oct 2026 10:21PM UTC coverage: 60.312%. Remained the same
39334347029

push

github

web-flow
Take turns on a shared file inside one process, and let an expiry compare allow equal clock readings (#2377)

* Stop two tests failing on Windows: one store's writers to a key take turns, and an expiry compare allows equal

pkg/secrets TestConcurrentWriters failed test-windows with "destination
held open by another process after 3 attempts over 2.486s": twenty
goroutines per store renamed onto one key's file at once, and on a
loaded runner each rename blocked long enough to spend fsatomic's
budget. A store's own writers to one key now take turns on a per-key
lock, as a single process never needs to race itself; two stores (the
CLI and Astro Desktop) still contend across the lock, which is the case
the test and fsatomic's retry exist for. The retry budget is unchanged.

config TestExpiresIn asserted now+12s was strictly after an expiry set
to now+12s a moment earlier. Windows' clock can read the same instant
twice, making them equal; the test now asserts the expiry is not after.

Co-Authored-By: Claude <noreply@anthropic.com>

* Take turns on a file inside one process in fsatomic, not per secrets store

Review fixes: the per-key lock in pkg/secrets was per store, so the two
stores TestConcurrentWriters runs in one process still raced each
other's rename, readers holding the file were not covered, and every
other package publishing through fsatomic (localrt's records, proxy's
routes, userstate) would have needed its own copy.

fsatomic now keeps one RWMutex per absolute path: a publish takes it
exclusively for its rename, a read shares it. Inside one process, writers
and readers of a file take turns; only another process is left for the
retry to wait out. pkg/secrets is back as v2 had it.

TestExpiresIn bounds the expiry from below as well as above, inclusive at
both ends, so a dropped write fails it and equal clock readings do not.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>

40964 of 67920 relevant lines covered (60.31%)

303.9 hits per line

Jobs
ID Job ID Ran Files Coverage
1 39334347029.1 19 Oct 2026 10:26PM UTC 344
60.31
GitHub Action Run
Source Files on build 39334347029
  • Tree
  • List 344
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #39334347029
  • 9d30d269 on github
  • Prev Build on v2 (#39324684834)
  • Next Build on v2 (#39334836546)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc