Build: Use branch specific refspec sysprop for bwc builds (#29299)
This commit changes the sysprop for overriding the branch bwc builds use to be branch specific. There are 3 different bwc branches built, but all of them currently read the exact same sysprop. For example, with this change and current branches, you can now specify eg `-Dtests.bwc.refspec.6.x=my_6x` and it will build only next-minor-snapshot with that branch, while next-bugfix-snapshot will continue to use 5.6.
This commit is contained in:
parent
04dd738782
commit
a75a7d22b2
|
@ -476,12 +476,12 @@ branch. Finally, on a release branch, it will test against the most recent relea
|
||||||
=== BWC Testing against a specific remote/branch
|
=== BWC Testing against a specific remote/branch
|
||||||
|
|
||||||
Sometimes a backward compatibility change spans two versions. A common case is a new functionality
|
Sometimes a backward compatibility change spans two versions. A common case is a new functionality
|
||||||
that needs a BWC bridge in and an unreleased versioned of a release branch (for example, 5.x).
|
that needs a BWC bridge in an unreleased versioned of a release branch (for example, 5.x).
|
||||||
To test the changes, you can instruct Gradle to build the BWC version from a another remote/branch combination instead of
|
To test the changes, you can instruct Gradle to build the BWC version from a another remote/branch combination instead of
|
||||||
pulling the release branch from GitHub. You do so using the `tests.bwc.remote` and `tests.bwc.refspec` system properties:
|
pulling the release branch from GitHub. You do so using the `tests.bwc.remote` and `tests.bwc.refspec.BRANCH` system properties:
|
||||||
|
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
./gradlew check -Dtests.bwc.remote=${remote} -Dtests.bwc.refspec=index_req_bwc_5.x
|
./gradlew check -Dtests.bwc.remote=${remote} -Dtests.bwc.refspec.5.x=index_req_bwc_5.x
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
|
|
||||||
The branch needs to be available on the remote that the BWC makes of the
|
The branch needs to be available on the remote that the BWC makes of the
|
||||||
|
@ -496,7 +496,7 @@ will need to:
|
||||||
will contain your change.
|
will contain your change.
|
||||||
. Create a branch called `index_req_bwc_5.x` off `5.x`. This will contain your bwc layer.
|
. Create a branch called `index_req_bwc_5.x` off `5.x`. This will contain your bwc layer.
|
||||||
. Push both branches to your remote repository.
|
. Push both branches to your remote repository.
|
||||||
. Run the tests with `./gradlew check -Dtests.bwc.remote=${remote} -Dtests.bwc.refspec=index_req_bwc_5.x`.
|
. Run the tests with `./gradlew check -Dtests.bwc.remote=${remote} -Dtests.bwc.refspec.5.x=index_req_bwc_5.x`.
|
||||||
|
|
||||||
== Test coverage analysis
|
== Test coverage analysis
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ subprojects {
|
||||||
|
|
||||||
String buildMetadataKey = "bwc_refspec_${project.path.substring(1)}"
|
String buildMetadataKey = "bwc_refspec_${project.path.substring(1)}"
|
||||||
task checkoutBwcBranch(type: LoggedExec) {
|
task checkoutBwcBranch(type: LoggedExec) {
|
||||||
String refspec = System.getProperty("tests.bwc.refspec", buildMetadata.get(buildMetadataKey, "${remote}/${bwcBranch}"))
|
String refspec = System.getProperty("tests.bwc.refspec.${bwcBranch}", buildMetadata.get(buildMetadataKey, "${remote}/${bwcBranch}"))
|
||||||
dependsOn fetchLatest
|
dependsOn fetchLatest
|
||||||
workingDir = checkoutDir
|
workingDir = checkoutDir
|
||||||
commandLine = ['git', 'checkout', refspec]
|
commandLine = ['git', 'checkout', refspec]
|
||||||
|
|
Loading…
Reference in New Issue