diff --git a/x-pack/functionbeat/magefile.go b/x-pack/functionbeat/magefile.go index ae228a97c629..fe9d3e53406a 100644 --- a/x-pack/functionbeat/magefile.go +++ b/x-pack/functionbeat/magefile.go @@ -45,10 +45,12 @@ func Build() error { // Building functions to deploy for _, provider := range functionbeat.SelectedProviders { - inputFiles := filepath.Join("provider", provider, "main.go") + inputFiles := filepath.Join("provider", provider.Name, "main.go") params.InputFiles = []string{inputFiles} - params.Name = devtools.BeatName + "-" + provider - params.OutputDir = filepath.Join("provider", provider) + params.Name = devtools.BeatName + "-" + provider.Name + params.OutputDir = filepath.Join("provider", provider.Name) + params.Env = map[string]string{"GOOS": provider.GOOS, "GOARCH": provider.GOARCH} + err := devtools.Build(params) if err != nil { return err @@ -78,7 +80,7 @@ func CrossBuild() error { // Building functions to deploy for _, provider := range functionbeat.SelectedProviders { - err := devtools.CrossBuild(devtools.AddPlatforms("linux/amd64"), devtools.InDir("x-pack", "functionbeat", "provider", provider)) + err := devtools.CrossBuild(devtools.AddPlatforms("linux/amd64"), devtools.InDir("x-pack", "functionbeat", "provider", provider.Name)) if err != nil { return err } @@ -138,10 +140,10 @@ func BuildSystemTestBinary() error { params := devtools.DefaultTestBinaryArgs() for _, provider := range functionbeat.SelectedProviders { - params.Name = filepath.Join("provider", provider, devtools.BeatName+"-"+provider) + params.Name = filepath.Join("provider", provider.Name, devtools.BeatName+"-"+provider.Name) inputFiles := make([]string, 0) for _, inputFileName := range []string{"main.go", "main_test.go"} { - inputFiles = append(inputFiles, filepath.Join("provider", provider, inputFileName)) + inputFiles = append(inputFiles, filepath.Join("provider", provider.Name, inputFileName)) } params.InputFiles = inputFiles err := devtools.BuildSystemTestGoBinary(params) diff --git a/x-pack/functionbeat/scripts/mage/providers.go b/x-pack/functionbeat/scripts/mage/providers.go index 40013d3214e5..ab326fea76f8 100644 --- a/x-pack/functionbeat/scripts/mage/providers.go +++ b/x-pack/functionbeat/scripts/mage/providers.go @@ -9,21 +9,37 @@ import ( "strings" ) +type functionbeatProvider struct { + Name string + GOOS string + GOARCH string +} + var ( // SelectedProviders is the list of selected providers - // Can be configured by setting PROVIDERS enviroment variable. SelectedProviders = getConfiguredProviders() - availableProviders = []string{ - "aws", + availableProviders = []functionbeatProvider{ + {Name: "aws", GOOS: "linux", GOARCH: "amd64"}, } ) -func getConfiguredProviders() []string { - providers := os.Getenv("PROVIDERS") - if len(providers) == 0 { +func getConfiguredProviders() []functionbeatProvider { + providersList := os.Getenv("PROVIDERS") + if len(providersList) == 0 { return availableProviders } - return strings.Split(providers, ",") + providers := make([]functionbeatProvider, 0) + + for _, name := range strings.Split(providersList, ",") { + for _, provider := range availableProviders { + if provider.Name == name { + providers = append(providers, provider) + break + } + } + } + + return providers }