Protocol
Action
A discrete, composable unit of work in the release pipeline.
protocol Action : SendableOverview
Actions are the fundamental building block of ShipItSwifty. Each action performs a single well-defined task (build, sign, upload, etc.) and can be composed into workflows for release automation.
Conformance
Provide a human-readable name, declare Options for configuration, and implement run(with:context:) to perform the work.
Example
struct MyAction: Action {
static let name = "my-action"
static let description = "Does something useful"
struct Options: Codable, Sendable { var verbose: Bool = false }
struct Result: Codable, Sendable { var message: String }
func run(with options: Options, context: ActionContext) async throws -> Result {
return Result(message: "Done!")
}
}Topics
Associated Types
associatedtype Options : Decodable, Encodable, SendableThe typed configuration for this action, decoded from Shipfile YAML or CLI flags.
associatedtype Result : Decodable, Encodable, SendableThe typed result returned after this action completes.
Instance Methods
func run(with: Self.Options, context: ActionContext) async throws -> Self.ResultExecute the action with the given options.
Type Properties
static var description: StringLong-form description for
--helpoutput and documentation.static var name: StringHuman-readable identifier, e.g.
"build","upload".
Type Methods
static func descriptor(for: Self, optionSchema: [SchemaField], platforms: Set<Platform>?, validationRules: [ActionValidationRule]) -> ActionDescriptorCreates a type-erased
ActionDescriptorfor registering this action inActionRegistry.
Relationships
Inherits From
Swift.SendableSwift.SendableMetatype
Conforming Types
AndroidCLIVersionActionAndroidCreateActionAndroidDescribeActionAndroidDocsActionAndroidEmulatorActionAndroidHelpActionAndroidInfoActionAndroidInitActionAndroidInstallActionAndroidLayoutActionAndroidRunActionAndroidSDKActionAndroidScreenActionAndroidSkillsActionAndroidStudioActionAndroidUpdateActionArchiveActionBuildActionCoverageActionDsymActionExportActionFirebaseAppDistributionActionFrameActionGenerateProjectActionGitActionLintActionMetadataActionNotifyActionPlayStoreActionPrecheckActionProvisionActionSignActionSnapshotActionTestActionTestFlightActionTestResultsActionUploadActionValidateArchiveActionValidateBundleActionVersionAction