Repository navigation
CI: test against the newest code of the other Dox repos - #7
Merged
Merged
Conversation
PR and push CI clone the Dox repos this repo uses, on the branch with the same name as this branch, else main. Path overrides point to the clones. The native packages are built with cargo for the runner only. A release tag still uses pub.dev only, and the tests run before publishing.
Member
Author
Bot reviewVerdict: OK to merge. CI is green. No blocking problems. What I checked:
Optional nits (no need to fix in this PR):
|
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.
Problem
CI gets the other Dox packages from pub.dev. So a PR that needs a change in another Dox repo fails until that repo is released.
What this changes
ci/use-siblings.sh. On a PR or a push tomain, it clones these repos next to this one: dox, dox-orm, dox-validation, dox-openapi, ioredis, dox-http-native, dox-postgres-native, dox-mysql-native.git ls-remote). Else it takesmain.pubspec_overrides.yaml(gitignored) with path overrides. Then CI runsdart pub get.ci/use-siblings.sh buildbuilds the native packages withcargo build --release, only for the runner (linux x64), not all 5 release targets. The build hook takes the library fromnative/target/release.Swatinem/rust-cachecaches the Rust dependencies.dox-validationfordox_core). Pub needs all of them from the same code. The lists of the clones are not followed, so there is no loop.workflow_call) and publishes only when they pass. On a tag the script does nothing, so the tests use pub.dev only.How to use it
Give a linked change the same branch name in every repo. The CI of each PR then tests against the other PRs, before anything is released.
CI time