Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/Terrabuild/Api/Client.fs
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ module private Build =
[<RequireQualifiedAccess>]
type BuildContextInput =
{ Configuration: string option
Environment: string option
Note: string option
Tag: string option
Targets: string seq
Expand Down Expand Up @@ -198,6 +199,7 @@ type Client(workspaceId: string, token: string, options: ConfigOptions.Options)

let context = {
Build.BuildContextInput.Configuration = options.Configuration
Build.BuildContextInput.Environment = options.Environment
Build.BuildContextInput.Note = options.Note
Build.BuildContextInput.Tag = options.Tag
Build.BuildContextInput.Targets = options.Targets
Expand Down
6 changes: 6 additions & 0 deletions src/Terrabuild/CLI.fs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ type LogsArgs =
| [<ExactlyOnce; MainCommand; First>] Target of target:string list
| [<Unique; AltCommandLine("-w")>] Workspace of path:string
| [<Unique; AltCommandLine("-c")>] Configuration of name:string
| [<Unique; AltCommandLine("-e")>] Environment of name:string
| [<EqualsAssignment; AltCommandLine("-v")>] Variable of variable:string * value:string
| [<Unique; AltCommandLine("-l")>] Label of labels:string list
| [<Unique; AltCommandLine("-lo")>] Local_Only
Expand All @@ -33,6 +34,7 @@ with
| Target _ -> "Specify build target."
| Workspace _ -> "Root of workspace. If not specified, current directory is used."
| Configuration _ -> "Configuration to use."
| Environment _ -> "Environment to use."
| Variable _ -> "Set variable."
| Label _-> "Select projects based on labels."
| Local_Only -> "Use local cache only."
Expand All @@ -42,6 +44,7 @@ type RunArgs =
| [<ExactlyOnce; MainCommand; First>] Target of target:string list
| [<Unique; AltCommandLine("-w")>] Workspace of path:string
| [<Unique; AltCommandLine("-c")>] Configuration of name:string
| [<Unique; AltCommandLine("-e")>] Environment of name:string
| [<EqualsAssignment; AltCommandLine("-v")>] Variable of variable:string * value:string
| [<Unique; AltCommandLine("-l")>] Label of labels:string list
| [<Unique; AltCommandLine("-p")>] Parallel of max:int
Expand All @@ -59,6 +62,7 @@ with
| Target _ -> "Specify build target."
| Workspace _ -> "Root of workspace. If not specified, current directory is used."
| Configuration _ -> "Configuration to use."
| Environment _ -> "Environment to use."
| Parallel _ -> "Max parallel build concurrency (default to number of processors)."
| Variable _ -> "Set variable."
| Label _-> "Select projects based on labels."
Expand All @@ -74,6 +78,7 @@ with
type ServeArgs =
| [<Unique; AltCommandLine("-w")>] Workspace of path:string
| [<Unique; AltCommandLine("-c")>] Configuration of name:string
| [<Unique; AltCommandLine("-e")>] Environment of name:string
| [<EqualsAssignment; AltCommandLine("-v")>] Variable of variable:string * value:string
| [<Unique; AltCommandLine("-l")>] Label of labels:string list
with
Expand All @@ -82,6 +87,7 @@ with
match this with
| Workspace _ -> "Root of workspace. If not specified, current directory is used."
| Configuration _ -> "Configuration to use."
| Environment _ -> "Environment to use."
| Variable _ -> "Set variable."
| Label _-> "Select projects based on labels."

Expand Down
1 change: 1 addition & 0 deletions src/Terrabuild/Contracts/ConfigOptions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ type Options = {
StartedAt: DateTime
Targets: string set
Configuration: string option
Environment: string option
LogTypes: Contracts.LogType list
Note: string option
Tag: string option
Expand Down
7 changes: 7 additions & 0 deletions src/Terrabuild/Core/Configuration.fs
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,14 @@ let private buildEvaluationContext (options: ConfigOptions.Options) (workspaceCo
match options.Configuration with
| Some config -> Value.String config
| _ -> Value.Nothing

let envValue =
match options.Environment with
| Some env -> Value.String env
| _ -> Value.Nothing

Map [ "terrabuild.configuration", configValue
"terrabuild.environment", envValue
"terrabuild.branch_or_tag", Value.String options.BranchOrTag
"terrabuild.head_commit", Value.String options.HeadCommit.Sha
"terrabuild.retry", Value.Bool options.Retry
Expand Down
8 changes: 8 additions & 0 deletions src/Terrabuild/Program.fs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ type RunTargetOptions = {
IsLog: bool
Targets: string set
Configuration: string option
Environment: string option
Note: string option
Tag: string option
Labels: string set option
Expand Down Expand Up @@ -90,6 +91,7 @@ let processCommandLine (parser: ArgumentParser<TerrabuildArgs>) (result: ParseRe
ConfigOptions.Options.Targets = options.Targets
ConfigOptions.Options.LogTypes = sourceControl.LogTypes
ConfigOptions.Options.Configuration = options.Configuration
ConfigOptions.Options.Environment = options.Environment
ConfigOptions.Options.Note = options.Note
ConfigOptions.Options.Tag = options.Tag
ConfigOptions.Options.Labels = options.Labels
Expand Down Expand Up @@ -167,6 +169,7 @@ let processCommandLine (parser: ArgumentParser<TerrabuildArgs>) (result: ParseRe
| _ -> raiseInvalidArg "Can't find workspace root directory. Check you are in a workspace."
let targets = runArgs.GetResult(RunArgs.Target) |> Seq.map String.toLower
let configuration = runArgs.TryGetResult(RunArgs.Configuration)
let environment = runArgs.TryGetResult(RunArgs.Environment)
let note = runArgs.TryGetResult(RunArgs.Note)
let labels = runArgs.TryGetResult(RunArgs.Label) |> Option.map (fun labels -> labels |> Seq.map String.toLower |> Set)
let variables = runArgs.GetResults(RunArgs.Variable) |> Map
Expand All @@ -192,6 +195,7 @@ let processCommandLine (parser: ArgumentParser<TerrabuildArgs>) (result: ParseRe
RunTargetOptions.Targets = Set targets
RunTargetOptions.LocalOnly = localOnly
RunTargetOptions.Configuration = configuration
RunTargetOptions.Environment = environment
RunTargetOptions.Note = note
RunTargetOptions.Tag = tag
RunTargetOptions.Labels = labels
Expand All @@ -208,6 +212,7 @@ let processCommandLine (parser: ArgumentParser<TerrabuildArgs>) (result: ParseRe
| Some ws -> ws
| _ -> raiseInvalidArg "Can't find workspace root directory. Check you are in a workspace."
let configuration = serveArgs.TryGetResult(ServeArgs.Configuration)
let environment = serveArgs.TryGetResult(ServeArgs.Environment)
let labels = serveArgs.TryGetResult(ServeArgs.Label) |> Option.map (fun labels -> labels |> Seq.map String.toLower |> Set)
let variables = serveArgs.GetResults(ServeArgs.Variable) |> Map
let options = { RunTargetOptions.Workspace = wsDir |> FS.fullPath
Expand All @@ -221,6 +226,7 @@ let processCommandLine (parser: ArgumentParser<TerrabuildArgs>) (result: ParseRe
RunTargetOptions.Targets = Set [ "serve" ]
RunTargetOptions.LocalOnly = true
RunTargetOptions.Configuration = configuration
RunTargetOptions.Environment = environment
RunTargetOptions.Note = None
RunTargetOptions.Tag = None
RunTargetOptions.Labels = labels
Expand All @@ -238,6 +244,7 @@ let processCommandLine (parser: ArgumentParser<TerrabuildArgs>) (result: ParseRe
| Some ws -> ws
| _ -> raiseInvalidArg "Can't find workspace root directory. Check you are in a workspace."
let configuration = logsArgs.TryGetResult(LogsArgs.Configuration)
let environment = logsArgs.TryGetResult(LogsArgs.Environment)
let labels = logsArgs.TryGetResult(LogsArgs.Label) |> Option.map (fun labels -> labels |> Seq.map String.toLower |> Set)
let variables = logsArgs.GetResults(LogsArgs.Variable) |> Map

Expand All @@ -252,6 +259,7 @@ let processCommandLine (parser: ArgumentParser<TerrabuildArgs>) (result: ParseRe
RunTargetOptions.Targets = Set targets
RunTargetOptions.LocalOnly = true
RunTargetOptions.Configuration = configuration
RunTargetOptions.Environment = environment
RunTargetOptions.Note = None
RunTargetOptions.Tag = None
RunTargetOptions.Labels = labels
Expand Down