/
Magefile.go
92 lines (84 loc) · 2.59 KB
/
Magefile.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//go:build mage
package main
import (
"os"
// mage:import
"github.com/wavesoftware/go-magetasks"
"github.com/wavesoftware/go-magetasks/config"
"github.com/wavesoftware/go-magetasks/config/buildvars"
"github.com/wavesoftware/go-magetasks/pkg/artifact"
"github.com/wavesoftware/go-magetasks/pkg/artifact/platform"
"github.com/wavesoftware/go-magetasks/pkg/checks"
"github.com/wavesoftware/go-magetasks/pkg/git"
"github.com/wavesoftware/go-magetasks/pkg/image"
"github.com/wavesoftware/go-magetasks/pkg/knative"
"knative.dev/kn-plugin-event/build/overrides"
"knative.dev/kn-plugin-event/pkg/metadata"
)
// Default target is set to binary.
//
// goland:noinspection GoUnusedGlobalVariable
var Default = magetasks.Build //nolint:deadcode,gochecknoglobals
func init() { //nolint:gochecknoinits
sender := artifact.Image{
Metadata: config.Metadata{Name: "kn-event-sender"},
Architectures: []platform.Architecture{
platform.AMD64, platform.ARM64, platform.S390X, platform.PPC64LE,
},
}
cli := artifact.Binary{
Metadata: config.Metadata{
Name: "kn-event",
BuildVariables: cliBuildVariables(sender),
},
Platforms: []artifact.Platform{
{OS: platform.Linux, Architecture: platform.AMD64},
{OS: platform.Linux, Architecture: platform.ARM64},
{OS: platform.Linux, Architecture: platform.PPC64LE},
{OS: platform.Linux, Architecture: platform.S390X},
{OS: platform.Mac, Architecture: platform.AMD64},
{OS: platform.Mac, Architecture: platform.ARM64},
{OS: platform.Windows, Architecture: platform.AMD64},
},
}
magetasks.Configure(config.Config{
Version: &config.Version{
Path: metadata.VersionPath(),
Resolver: knative.NewVersionResolver(
knative.WithGit(
git.WithRemote(git.Remote{
URL: "https://github.com/knative-sandbox/kn-plugin-event.git",
}),
),
),
},
Artifacts: []config.Artifact{sender, cli},
Checks: []config.Task{checks.GolangCiLint(func(o *checks.GolangCiLintOptions) {
o.Version = "v1.55.2"
})},
BuildVariables: map[string]config.Resolver{
metadata.ImageBasenamePath(): imageBasenameFromEnv,
},
Overrides: overrides.List,
})
}
func cliBuildVariables(sender artifact.Image) config.BuildVariables {
return buildvars.Assemble([]buildvars.Operator{
image.InfluenceableReference{
Path: metadata.ImagePath(),
EnvVariable: "KN_PLUGIN_EVENT_SENDER_IMAGE",
Image: sender,
},
})
}
func imageBasenameFromEnv() string {
return env("KO_DOCKER_REPO", "IMAGE_BASENAME")
}
func env(keys ...string) string {
for _, key := range keys {
if val, ok := os.LookupEnv(key); ok {
return val
}
}
return ""
}