mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-11 07:25:23 +00:00
Commit bf007e8d936d82ed2d28c70da1a7366cfa862342 was a forward port of logic needed in 5.x to get the correct bwc branch. However, other changes on master meant that this forward port was not needed and actually broke the bwc tests. This change removes the incorrect if statement. Relates #25134
126 lines
4.6 KiB
Groovy
126 lines
4.6 KiB
Groovy
/*
|
|
* Licensed to Elasticsearch under one or more contributor
|
|
* license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright
|
|
* ownership. Elasticsearch licenses this file to you under
|
|
* the Apache License, Version 2.0 (the "License"); you may
|
|
* not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
|
|
|
|
import org.elasticsearch.gradle.LoggedExec
|
|
|
|
/**
|
|
* This is a dummy project which does a local checkout of the previous
|
|
* wire compat version's branch, and builds a snapshot. This allows backcompat
|
|
* tests to test against the next unreleased version, closest to this version,
|
|
* without relying on snapshots.
|
|
*/
|
|
String bwcVersion
|
|
boolean enabled = true
|
|
if (project.name == 'bwc-stable-snapshot') {
|
|
/* bwc-stable is only used if the last version is on a stable branch instead
|
|
* of a bugfix branch */
|
|
enabled = indexCompatVersions[-1].bugfix == 0
|
|
bwcVersion = indexCompatVersions[-1]
|
|
} else if (project.name == 'bwc-release-snapshot') {
|
|
if (indexCompatVersions[-1].bugfix == 0) {
|
|
/* The last version is on a stable branch so it is handled by the bwc-stable
|
|
* project. This project will instead handle the version before that which
|
|
* *should* be on a stable branch. */
|
|
bwcVersion = indexCompatVersions[-2]
|
|
} else {
|
|
// The last version is on a release branch so it is handled by this project
|
|
bwcVersion = indexCompatVersions[-1]
|
|
}
|
|
} else {
|
|
throw new InvalidUserDataException("Unsupport project name ${project.name}")
|
|
}
|
|
|
|
if (enabled) {
|
|
apply plugin: 'distribution'
|
|
|
|
def (String major, String minor, String bugfix) = bwcVersion.split('\\.')
|
|
def (String currentMajor, String currentMinor, String currentBugfix) = version.split('\\.')
|
|
String bwcBranch
|
|
if (project.name == 'bwc-stable-snapshot') {
|
|
bwcBranch = "${major}.x"
|
|
} else {
|
|
bwcBranch = "${major}.${minor}"
|
|
}
|
|
File checkoutDir = file("${buildDir}/bwc/checkout-${bwcBranch}")
|
|
|
|
task createClone(type: LoggedExec) {
|
|
onlyIf { checkoutDir.exists() == false }
|
|
commandLine = ['git', 'clone', rootDir, checkoutDir]
|
|
}
|
|
|
|
// we use regular Exec here to ensure we always get output, regardless of logging level
|
|
task findUpstream(type: Exec) {
|
|
dependsOn createClone
|
|
workingDir = checkoutDir
|
|
commandLine = ['git', 'remote', '-v']
|
|
ignoreExitValue = true
|
|
ByteArrayOutputStream output = new ByteArrayOutputStream()
|
|
standardOutput = output
|
|
doLast {
|
|
if (execResult.exitValue != 0) {
|
|
output.toString('UTF-8').eachLine { line -> logger.error(line) }
|
|
execResult.assertNormalExitValue()
|
|
}
|
|
project.ext.upstreamExists = false
|
|
output.toString('UTF-8').eachLine {
|
|
if (it.contains("upstream")) {
|
|
project.ext.upstreamExists = true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
task addUpstream(type: LoggedExec) {
|
|
dependsOn findUpstream
|
|
onlyIf { project.ext.upstreamExists == false }
|
|
workingDir = checkoutDir
|
|
commandLine = ['git', 'remote', 'add', 'upstream', 'https://github.com/elastic/elasticsearch.git']
|
|
}
|
|
|
|
task fetchLatest(type: LoggedExec) {
|
|
onlyIf { project.gradle.startParameter.isOffline() == false }
|
|
dependsOn addUpstream
|
|
workingDir = checkoutDir
|
|
commandLine = ['git', 'fetch', 'upstream']
|
|
}
|
|
|
|
task checkoutBwcBranch(type: LoggedExec) {
|
|
dependsOn fetchLatest
|
|
workingDir = checkoutDir
|
|
commandLine = ['git', 'checkout', "upstream/${bwcBranch}"]
|
|
}
|
|
|
|
File bwcDeb = file("${checkoutDir}/distribution/zip/build/distributions/elasticsearch-${bwcVersion}.deb")
|
|
File bwcRpm = file("${checkoutDir}/distribution/zip/build/distributions/elasticsearch-${bwcVersion}.rpm")
|
|
File bwcZip = file("${checkoutDir}/distribution/zip/build/distributions/elasticsearch-${bwcVersion}.zip")
|
|
task buildBwcVersion(type: GradleBuild) {
|
|
dependsOn checkoutBwcBranch
|
|
dir = checkoutDir
|
|
tasks = [':distribution:deb:assemble', ':distribution:rpm:assemble', ':distribution:zip:assemble']
|
|
}
|
|
|
|
|
|
artifacts {
|
|
'default' file: bwcDeb, name: 'elasticsearch', type: 'deb', builtBy: buildBwcVersion
|
|
'default' file: bwcRpm, name: 'elasticsearch', type: 'rpm', builtBy: buildBwcVersion
|
|
'default' file: bwcZip, name: 'elasticsearch', type: 'zip', builtBy: buildBwcVersion
|
|
}
|
|
}
|