@lamantin/fastpush
Version:
Typed fastlane frontend for pushing builds to store
67 lines (58 loc) • 1.96 kB
text/typescript
import { mapObjectToArgs } from "../mappers";
import { AndroidLane } from ".";
/**
* The gradle task you want to execute, e.g. assemble, bundle or test.
* For tasks such as assembleMyFlavorRelease you should use gradle(task: 'assemble', flavor: 'Myflavor', build_type: 'Release')
*/
export type GradleArgTask = "bundle" | "assemble" | "test" | "clean";
export type GradleArgs = {
/**
* The flavor that you want the task for, e.g. MyFlavor.
* If you are running the assemble task in a multi-flavor project, and you rely on Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] then you must specify a flavor here or else this value will be undefined
*/
flavor?: string
/**
* The build type that you want the task for, e.g. Release. Useful for some tasks such as assemble
*/
build_type?: "Debug" | "Release"
/**
* The multiple gradle tasks that you want to execute, e.g. [assembleDebug, bundleDebug]
*/
tasks?: string[]
/**
* All parameter flags you want to pass to the gradle command, e.g. --exitcode --xml file.xml
*/
flags?: string
/**
* The root directory of the gradle project
*/
project_dir?: string
/**
* Gradle properties to be exposed to the gradle script
*/
properties?: {[key in string]: string}
/**
* Gradle system properties to be exposed to the gradle script
*/
system_properties?: {[key in string]: string}
/**
* Control whether the generated Gradle command is printed as output before running it (true/false)
* @default true
*/
print_command?: boolean
/**
* Control whether the output produced by given Gradle command is printed while running (true/false)
* @default true
*/
print_command_output?: boolean
};
export function gradle(task: GradleArgTask, args?: GradleArgs): AndroidLane {
return {
type: 'android',
name: 'gradle',
args: [
{ name: 'task', value: task },
...mapObjectToArgs(args)
],
};
}