AndroidBuildArtifactHelper

public class AndroidBuildArtifactHelper
extends Object

java.lang.Object
   ↳ com.google.android.tradefed.build.AndroidBuildArtifactHelper


Helper class used for querying Android Build API for build artifacts.

Summary

Constants

String BUILD_ATTEMPT_LATEST

String PLATFORM_LINUX

String PLATFORM_MAC

String PLATFORM_MAC_ARM64

Public constructors

AndroidBuildArtifactHelper(String buildEnv)

Constructor of AndroidBuildArtifactHelper.

AndroidBuildArtifactHelper(String buildEnv, boolean strictMode)
AndroidBuildArtifactHelper(String buildEnv, boolean strictMode, boolean throwOnQueryFailure)

Public methods

RemoteBuildInfo queryForBuild(Build build, String branch, String buildId, String buildFlavor, String os, String pattern, Set<String> exclusionPatterns)

Performs the actual query to fetch build artifact info, via buildartifact.list API call.

RemoteBuildInfo queryForBuild(Build build, String branch, String buildId, String buildFlavor, String os)
RemoteBuildInfo queryForBuildById(String branch, String buildId, String buildFlavor, String os, String pattern, Set<String> exclusionPatterns)

Query for build artifact info by branch, build id and flavor.

RemoteBuildInfo queryForLatestBuild(String branch, String buildFlavor, String os, String pattern)

Query for build artifact info by branch and flavor: latest successful build will be used if one exists, otherwise null will be returned

RemoteBuildInfo queryForLatestBuild(String branch, String buildFlavor, String os)

Query for build artifact info by branch and flavor: latest successful build will be used if one exists, otherwise null will be returned

Protected methods

Build getBuild(String branch, String buildId, String buildFlavor, String os)
List<String> getBuildArtifactList(String buildId, String buildFlavor, String os, String pattern, Set<String> exclusionPatterns)
static String getBuildFlavor(String buildFlavor, String os)

The original purpose of this was to support targets with a "fastboot" suffix.

Build getLatestBuild(String branch, String buildFlavor, String os)
RemoteBuildInfo queryForBuild(String branch, String buildId, String buildFlavor, String os, String pattern, Set<String> exclusionPatterns)

Constants

BUILD_ATTEMPT_LATEST

public static final String BUILD_ATTEMPT_LATEST

Constant Value: "latest"

PLATFORM_LINUX

protected static final String PLATFORM_LINUX

Constant Value: "linux"

PLATFORM_MAC

protected static final String PLATFORM_MAC

Constant Value: "mac"

PLATFORM_MAC_ARM64

protected static final String PLATFORM_MAC_ARM64

Constant Value: "mac_arm64"

Public constructors

AndroidBuildArtifactHelper

public AndroidBuildArtifactHelper (String buildEnv)

Constructor of AndroidBuildArtifactHelper.

Parameters
buildEnv String: the Build API environment to use.

Throws
com.android.tradefed.build.BuildRetrievalError
BuildRetrievalError

AndroidBuildArtifactHelper

public AndroidBuildArtifactHelper (String buildEnv, 
                boolean strictMode)

Parameters
buildEnv String

strictMode boolean

Throws
BuildRetrievalError

AndroidBuildArtifactHelper

public AndroidBuildArtifactHelper (String buildEnv, 
                boolean strictMode, 
                boolean throwOnQueryFailure)

Parameters
buildEnv String

strictMode boolean

throwOnQueryFailure boolean

Throws
BuildRetrievalError

Public methods

queryForBuild

public RemoteBuildInfo queryForBuild (Build build, 
                String branch, 
                String buildId, 
                String buildFlavor, 
                String os, 
                String pattern, 
                Set<String> exclusionPatterns)

Performs the actual query to fetch build artifact info, via buildartifact.list API call.

Parameters
build Build: an optional Build metadata instance, in case a prior build.get call has already been made to obtain build info described by the buildId and buildFlavor; when null a new build.get will be made; when not null, no additional checks consistent checks will be performed against buildId and buildFlavor

exclusionPatterns Set: Only applies if there are no positive patterns

Returns
RemoteBuildInfo

Throws
BuildRetrievalError

queryForBuild

public RemoteBuildInfo queryForBuild (Build build, 
                String branch, 
                String buildId, 
                String buildFlavor, 
                String os)

Parameters
build Build

branch String

buildId String

buildFlavor String

os String

Returns
RemoteBuildInfo

Throws
BuildRetrievalError

queryForBuildById

public RemoteBuildInfo queryForBuildById (String branch, 
                String buildId, 
                String buildFlavor, 
                String os, 
                String pattern, 
                Set<String> exclusionPatterns)

Query for build artifact info by branch, build id and flavor.

Note that branch parameter here is optional: it's for the purpose of backwards compatibility against old launch control query format. The actual querying is done by build id and flavor, and if a branch param is provided but conflicts with the actual branch of build, a null response will be returned instead even if a build can be found.

Parameters
exclusionPatterns Set: Only apply if there is not positive pattern

Returns
RemoteBuildInfo

Throws
BuildRetrievalError

queryForLatestBuild

public RemoteBuildInfo queryForLatestBuild (String branch, 
                String buildFlavor, 
                String os, 
                String pattern)

Query for build artifact info by branch and flavor: latest successful build will be used if one exists, otherwise null will be returned

Returns
RemoteBuildInfo

Throws
BuildRetrievalError

queryForLatestBuild

public RemoteBuildInfo queryForLatestBuild (String branch, 
                String buildFlavor, 
                String os)

Query for build artifact info by branch and flavor: latest successful build will be used if one exists, otherwise null will be returned

Returns
RemoteBuildInfo

Throws
BuildRetrievalError

Protected methods

getBuild

protected Build getBuild (String branch, 
                String buildId, 
                String buildFlavor, 
                String os)

Parameters
branch String

buildId String

buildFlavor String

os String

Returns
Build

Throws
BuildRetrievalError

getBuildArtifactList

protected List<String> getBuildArtifactList (String buildId, 
                String buildFlavor, 
                String os, 
                String pattern, 
                Set<String> exclusionPatterns)

Parameters
buildId String

buildFlavor String

os String

pattern String

exclusionPatterns Set

Returns
List<String>

Throws
BuildRetrievalError

getBuildFlavor

protected static String getBuildFlavor (String buildFlavor, 
                String os)

The original purpose of this was to support targets with a "fastboot" suffix. This logic is no longer considered relevant and may be removed in the future to avoid confusion. We keep this method for now to avoid adding an unexpected suffix to the build flavor. See (b/448820244)

Parameters
buildFlavor String

os String

Returns
String

getLatestBuild

protected Build getLatestBuild (String branch, 
                String buildFlavor, 
                String os)

Parameters
branch String

buildFlavor String

os String

Returns
Build

Throws
BuildRetrievalError

queryForBuild

protected RemoteBuildInfo queryForBuild (String branch, 
                String buildId, 
                String buildFlavor, 
                String os, 
                String pattern, 
                Set<String> exclusionPatterns)

Parameters
branch String

buildId String

buildFlavor String

os String

pattern String

exclusionPatterns Set

Returns
RemoteBuildInfo

Throws
BuildRetrievalError