From 33d6ca8b6a428ab52858b7a857460c76ae59fca0 Mon Sep 17 00:00:00 2001 From: Matias Pan Date: Thu, 5 Sep 2024 10:52:05 -0300 Subject: [PATCH] Delete deprecated magefiles Signed-off-by: Matias Pan --- magefiles/dagger.go | 367 -------------------------------------------- magefiles/go.mod | 23 --- magefiles/go.sum | 55 ------- magefiles/main.go | 12 -- 4 files changed, 457 deletions(-) delete mode 100644 magefiles/dagger.go delete mode 100644 magefiles/go.mod delete mode 100644 magefiles/go.sum delete mode 100644 magefiles/main.go diff --git a/magefiles/dagger.go b/magefiles/dagger.go deleted file mode 100644 index 7791e54..0000000 --- a/magefiles/dagger.go +++ /dev/null @@ -1,367 +0,0 @@ -//go:build mage -// +build mage - -package main - -import ( - "context" - "fmt" - "os" - - "dagger.io/dagger" - "github.com/containers/image/v5/docker/reference" - "github.com/magefile/mage/mg" - "github.com/magefile/mage/sh" -) - -const ( - // https://hub.docker.com/_/golang/tags?page=1&name=alpine - alpineVersion = "3.18" - goVersion = "1.20" - - // https://github.com/golangci/golangci-lint/releases - golangciLintVersion = "1.54.1" - - // https://hub.docker.com/r/flyio/flyctl/tags - flyctlVersion = "0.1.78" - - appName = "dagger-registry-2023-07-28" - appImageRegistry = "registry.fly.io" - binaryName = "registry-redirect" - - syslogHost = "vector-2023-06-08.internal:514" - - InstancesToDeploy = "3" - // We want to avoid running multiple instances in the same region - // If there are issues with one region, the whole service will be disrupted - MaxInstancesPerRegion = "1" - - // https://fly.io/docs/reference/regions/#fly-io-regions - Paris = "cdg" - Singapore = "sin" - Ashburn = "iad" - - // https://fly.io/docs/reference/configuration/#picking-a-deployment-strategy - DeployStrategy = "bluegreen" // Required when MaxInstancesPerRegion set to 1 -) - -// golangci-lint -func Lint(ctx context.Context) { - c, ok := ctx.Value("daggerClient").(*dagger.Client) - if !ok { - c := newDaggerClient(ctx) - defer c.Close() - } - - lint(ctx, c) -} - -func lint(ctx context.Context, c *dagger.Client) { - _, err := c.Container(dagger.ContainerOpts{Platform: dagger.Platform("linux/amd64")}). - Pipeline("lint"). - From(fmt.Sprintf("golangci/golangci-lint:v%s-alpine", golangciLintVersion)). - WithMountedCache("/go/pkg/mod", c.CacheVolume("gomod")). - WithMountedDirectory("/src", sourceCode(c)).WithWorkdir("/src"). - WithExec([]string{"golangci-lint", "run", "--color", "always", "--timeout", "2m"}). - Sync(ctx) - if err != nil { - panic(err) - } -} - -// go test -func Test(ctx context.Context) { - c, ok := ctx.Value("daggerClient").(*dagger.Client) - if !ok { - c := newDaggerClient(ctx) - defer c.Close() - } - - test(ctx, c) -} - -func test(ctx context.Context, c *dagger.Client) { - _, err := c.Container(dagger.ContainerOpts{Platform: dagger.Platform("linux/amd64")}). - Pipeline("test"). - From(fmt.Sprintf("golang:%s-alpine%s", goVersion, alpineVersion)). - WithMountedDirectory("/src", sourceCode(c)).WithWorkdir("/src"). - WithMountedCache("/go/pkg/mod", c.CacheVolume("gomod")). - WithEnvVariable("CGO_ENABLED", "0"). - WithExec([]string{"go", "test", "./..."}). - Sync(ctx) - - if err != nil { - panic(err) - } -} - -// binary artefact used in container image -func Build(ctx context.Context) { - c, ok := ctx.Value("daggerClient").(*dagger.Client) - if !ok { - c := newDaggerClient(ctx) - defer c.Close() - } - - build(ctx, c) -} - -func build(ctx context.Context, c *dagger.Client) *dagger.File { - binaryPath := fmt.Sprintf("build/%s", binaryName) - - buildBinary, err := c.Container(dagger.ContainerOpts{Platform: dagger.Platform("linux/amd64")}). - Pipeline("build"). - From(fmt.Sprintf("golang:%s-alpine%s", goVersion, alpineVersion)). - WithMountedDirectory("/src", sourceCode(c)).WithWorkdir("/src"). - WithMountedCache("/go/pkg/mod", c.CacheVolume("gomod")). - WithExec([]string{"go", "build", "-o", binaryPath}). - Sync(ctx) - if err != nil { - panic(err) - } - - return buildBinary.File(binaryPath) -} - -func sourceCode(c *dagger.Client) *dagger.Directory { - return c.Host().Directory(".", dagger.HostDirectoryOpts{ - Include: []string{ - "LICENSE", - "README.md", - "go.mod", - "go.sum", - "**/*.go", - }, - }) -} - -// container image to private registry -func Publish(ctx context.Context) { - c, ok := ctx.Value("daggerClient").(*dagger.Client) - if !ok { - c := newDaggerClient(ctx) - defer c.Close() - } - - publish(ctx, c) -} - -func publish(ctx context.Context, c *dagger.Client) string { - binary := build(ctx, c) - - githubRef := os.Getenv("GITHUB_REF_NAME") - if githubRef == "main" { - return publishImage(ctx, c, binary) - } else { - fmt.Println("\nšŸ“¦ Publishing runs only in CI, main branch") - } - - return "" -} - -// zero-downtime deploy container image -func Deploy(ctx context.Context) { - c, ok := ctx.Value("daggerClient").(*dagger.Client) - if !ok { - c := newDaggerClient(ctx) - defer c.Close() - } - - imageRef := os.Getenv("IMAGE_REF") - if imageRef == "" { - panic("IMAGE_REF env var must be set") - } - - deploy(ctx, c, imageRef) -} - -func deploy(ctx context.Context, c *dagger.Client, imageRef string) { - githubRef := os.Getenv("GITHUB_REF_NAME") - if githubRef == "main" { - imageRefFlyValid, err := reference.ParseDockerRef(imageRef) - if err != nil { - panic(err) - } - - _, err = flyctl(c). - Pipeline("deploy"). - WithExec([]string{ - "deploy", "--now", - "--image", imageRefFlyValid.String(), - "--ha=false", // we will be scaling this app in the next command - "--strategy", DeployStrategy, - }). - WithExec([]string{ - "scale", - "count", InstancesToDeploy, - "--max-per-region", MaxInstancesPerRegion, - fmt.Sprintf("--region=%s,%s,%s", Ashburn, Paris, Singapore), - "--yes", - }). - Sync(ctx) - if err != nil { - panic(err) - } - } else { - fmt.Println("\nšŸŽ Deploying runs only in CI, main branch") - } -} - -// [lints, tests], builds, publishes & deploys a new version of the app -func All(ctx context.Context) { - c := newDaggerClient(ctx) - defer c.Close() - ctx = context.WithValue(ctx, "daggerClient", c) - - mg.CtxDeps(ctx, Lint, Test) - - imageRef := publish(ctx, c) - deploy(ctx, c, imageRef) -} - -func newDaggerClient(ctx context.Context) *dagger.Client { - client, err := dagger.Connect(ctx, dagger.WithLogOutput(os.Stderr)) - if err != nil { - panic(err) - } - return client -} - -func publishImage(ctx context.Context, c *dagger.Client, binary *dagger.File) string { - ref := fmt.Sprintf("%s:%s", imageName(), gitSHA()) - - refWithSHA, err := c.Container(dagger.ContainerOpts{Platform: dagger.Platform("linux/amd64")}). - From(fmt.Sprintf("alpine:%s", alpineVersion)). - WithFile(fmt.Sprintf("/%s", binaryName), binary). - WithNewFile("/GIT_SHA", dagger.ContainerWithNewFileOpts{ - Contents: gitSHA(), - Permissions: 444, - }). - WithNewFile("/GIT_AUTHOR", dagger.ContainerWithNewFileOpts{ - Contents: author(), - Permissions: 444, - }). - WithNewFile("/BUILD_URL", dagger.ContainerWithNewFileOpts{ - Contents: buildURL(), - Permissions: 444, - }). - WithDirectory("/src", sourceCode(c)). - WithEntrypoint([]string{fmt.Sprintf("/%s", binaryName)}). - WithRegistryAuth(appImageRegistry, "x", flyTokenSecret(c)). - Publish(ctx, ref) - - if err != nil { - panic(err) - } - - return refWithSHA -} - -func gitSHA() string { - gitSHA := os.Getenv("GITHUB_SHA") - if gitSHA == "" { - if gitHEAD, err := sh.Output("git", "rev-parse", "HEAD"); err == nil { - gitSHA = fmt.Sprintf("%s.", gitHEAD) - } - gitSHA = fmt.Sprintf("%sdev", gitSHA) - } - - return gitSHA -} - -func author() string { - author := os.Getenv("GITHUB_AUTHOR") - if author == "" { - author = os.Getenv("USER") - } - - return author -} - -func buildURL() string { - githubServerURL := os.Getenv("GITHUB_SERVER_URL") - githubRepository := os.Getenv("GITHUB_REPOSITORY") - githubRunID := os.Getenv("GITHUB_RUN_ID") - buildURL := fmt.Sprintf("%s/%s/actions/runs/%s", githubServerURL, githubRepository, githubRunID) - - if githubRunID == "" { - if hostname, err := os.Hostname(); err == nil { - buildURL = hostname - } - if cwd, err := os.Getwd(); err == nil { - buildURL = fmt.Sprintf("%s:%s", buildURL, cwd) - } - } - - return buildURL -} - -func flyctl(c *dagger.Client) *dagger.Container { - c = c.Pipeline("flyctl") - flyctl := c.Container(dagger.ContainerOpts{Platform: dagger.Platform("linux/amd64")}).Pipeline("auth"). - From(fmt.Sprintf("flyio/flyctl:v%s", flyctlVersion)). - WithSecretVariable("FLY_API_TOKEN", flyTokenSecret(c)). - WithNewFile("fly.toml", dagger.ContainerWithNewFileOpts{ - Contents: fmt.Sprintf(` -# https://fly.io/docs/reference/configuration/ -app = "%s" -primary_region = "%s" - -kill_signal = "SIGINT" -# Wait these many seconds for existing connections to drain before hard killing -kill_timeout = 30 - -[env] - APP_NAME = "%s" - PORT = "8080" - SYSLOG_HOST = "%s" - -[experimental] - auto_rollback = true - cmd = ["-repo", "dagger"] - -[[services]] - http_checks = [] - internal_port = 8080 - processes = ["app"] - protocol = "tcp" - script_checks = [] - [services.concurrency] - hard_limit = 1000 - soft_limit = 800 - type = "connections" - - [[services.ports]] - force_https = true - handlers = ["http"] - port = 80 - - [[services.ports]] - handlers = ["tls", "http"] - port = 443 - - [[services.tcp_checks]] - grace_period = "1s" - interval = "5s" - restart_limit = 0 - timeout = "4s"`, appName, Ashburn, appName, syslogHost)}) - - return flyctl -} - -func flyTokenSecret(c *dagger.Client) *dagger.Secret { - flyToken := os.Getenv("FLY_API_TOKEN") - if flyToken == "" { - panic("FLY_API_TOKEN env var must be set") - } - return c.SetSecret("FLY_API_TOKEN", flyToken) -} - -func imageName() string { - envImageURL := os.Getenv("IMAGE_URL") - if envImageURL != "" { - return envImageURL - } - - return fmt.Sprintf("%s/%s", appImageRegistry, appName) -} diff --git a/magefiles/go.mod b/magefiles/go.mod deleted file mode 100644 index 83664c2..0000000 --- a/magefiles/go.mod +++ /dev/null @@ -1,23 +0,0 @@ -module github.com/dagger/registry-redirect/magefiles - -go 1.19 - -require ( - dagger.io/dagger v0.7.4 - github.com/containers/image/v5 v5.26.1 - github.com/magefile/mage v1.15.0 -) - -require ( - github.com/99designs/gqlgen v0.17.36 // indirect - github.com/Khan/genqlient v0.6.0 // indirect - github.com/adrg/xdg v0.4.0 // indirect - github.com/containers/storage v1.48.0 // indirect - github.com/iancoleman/strcase v0.3.0 // indirect - github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/vektah/gqlparser/v2 v2.5.8 // indirect - golang.org/x/mod v0.12.0 // indirect - golang.org/x/sync v0.3.0 // indirect - golang.org/x/sys v0.10.0 // indirect - golang.org/x/tools v0.11.0 // indirect -) diff --git a/magefiles/go.sum b/magefiles/go.sum deleted file mode 100644 index ddab165..0000000 --- a/magefiles/go.sum +++ /dev/null @@ -1,55 +0,0 @@ -dagger.io/dagger v0.7.4 h1:Z8z//T3nmmiYyzcK6Hn7vIcE3WLTc2syK7fSfWBBKx0= -dagger.io/dagger v0.7.4/go.mod h1:CZwYt0FfVsEEYTFytzf2ihESB2P4H1S3/UfnrVxjBsE= -github.com/99designs/gqlgen v0.17.36 h1:u/o/rv2SZ9s5280dyUOOrkpIIkr/7kITMXYD3rkJ9go= -github.com/99designs/gqlgen v0.17.36/go.mod h1:6RdyY8puhCoWAQVr2qzF2OMVfudQzc8ACxzpzluoQm4= -github.com/Khan/genqlient v0.6.0 h1:Bwb1170ekuNIVIwTJEqvO8y7RxBxXu639VJOkKSrwAk= -github.com/Khan/genqlient v0.6.0/go.mod h1:rvChwWVTqXhiapdhLDV4bp9tz/Xvtewwkon4DpWWCRM= -github.com/adrg/xdg v0.4.0 h1:RzRqFcjH4nE5C6oTAxhBtoE2IRyjBSa62SCbyPidvls= -github.com/adrg/xdg v0.4.0/go.mod h1:N6ag73EX4wyxeaoeHctc1mas01KZgsj5tYiAIwqJE/E= -github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8= -github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= -github.com/containers/image/v5 v5.26.1 h1:8y3xq8GO/6y8FR+nAedHPsAFiAtOrab9qHTBpbqaX8g= -github.com/containers/image/v5 v5.26.1/go.mod h1:IwlOGzTkGnmfirXxt0hZeJlzv1zVukE03WZQ203Z9GA= -github.com/containers/storage v1.48.0 h1:wiPs8J2xiFoOEAhxHDRtP6A90Jzj57VqzLRXOqeizns= -github.com/containers/storage v1.48.0/go.mod h1:pRp3lkRo2qodb/ltpnudoXggrviRmaCmU5a5GhTBae0= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= -github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= -github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= -github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= -github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/vektah/gqlparser/v2 v2.5.8 h1:pm6WOnGdzFOCfcQo9L3+xzW51mKrlwTEg4Wr7AH1JW4= -github.com/vektah/gqlparser/v2 v2.5.8/go.mod h1:z8xXUff237NntSuH8mLFijZ+1tjV1swDbpDqjJmk6ME= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/tools v0.11.0 h1:EMCa6U9S2LtZXLAMoWiR/R8dAQFRqbAitmbJ2UKhoi8= -golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/magefiles/main.go b/magefiles/main.go deleted file mode 100644 index dd3af7e..0000000 --- a/magefiles/main.go +++ /dev/null @@ -1,12 +0,0 @@ -//go:build ignore -// +build ignore - -package main - -import ( - "os" - - "github.com/magefile/mage/mage" -) - -func main() { os.Exit(mage.Main()) }