Repository navigation
Move long-running FFI CI jobs to cron and release only - #2004
Merged
Merged
Conversation
verify-pub-package stages payjoin and payjoin-mailroom from the checkout only on pull_request events. Every other trigger stages them against crates.io. That suits a release tag, which must build against what consumers can fetch. A run on master, such as a scheduled one, may wrap core changes that are not published yet, so it would fail for reasons unrelated to the bindings. Key the choice on whether the ref is a tag. For the triggers that exist today this changes nothing: pull requests still stage from the revision, and the bindings release, which runs on a tag push, still stages from crates.io. Update the Dart contributing guide to match.
The binding workflows only run on pull requests that touch payjoin-ffi and on a bindings release. A regression that comes from outside the repo, such as a runner image or toolchain update, goes unnoticed until the next such pull request or release. Call each binding workflow from a daily schedule on master, the same way bindings-release.yml does at release time. This also lets pull requests skip the slow platforms in a later change without losing that coverage between releases.
Each language's "Build and test" job ran one matrix over Linux and macOS. A later change runs macOS only on releases and the daily run, and a matrix entry cannot be skipped on its own with a plain job-level if. Give macOS its own job in each workflow so that change can gate it the same way as the other jobs. The macOS jobs are copies of the matrix jobs with the runner fixed, so both platforms still run on every trigger they ran on before. The C# Unix job becomes the Linux job, next to the new macOS one and the existing Windows one.
Every pull request that touches payjoin-ffi started 29 jobs across the five binding workflows on top of the Linux tests. The macOS ones set the wall clock: on recent runs they queued for 7 to 35 minutes before starting and then ran for up to 31. The packaging and smoke jobs build and install release artifacts that a pull request then throws away, and the Windows MSVC cross builds alone took up to 19 minutes. Skip on pull requests every job except each language's Linux build and test. That covers the macOS and Windows tests, the native asset, wheel, npm, NuGet and pub.dev packaging, the reproducibility check and the smoke tests. They still run on every bindings release, which calls these workflows before publishing, and in the daily run on master, so a regression surfaces within a day rather than at release time. The C# and Python release docs and the Dart contributing guide said these jobs run on pull requests, and the C# docs told maintainers to take the NuGet candidate from such a run. Point them at the daily run instead.
Collaborator
Coverage Report for CI Build 39789911228Coverage remained the same at 87.471%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
benalleng
approved these changes
Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Only keep linux build & test CI jobs running on every PR that touches payjoin-ffi. The rest of ffi checks (macos, windows, smoke tests, etc.) are split off and moved to a daily cron job (and still run in release CI).
Pull Request Checklist
Please confirm the following before requesting review: