54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
type buildOption struct {
|
|
OS string `json:"os"`
|
|
GoARCH string `json:"go_arch"`
|
|
GoARM string `json:"go_arm,omitempty"`
|
|
Variant string `json:"variant,omitempty"`
|
|
}
|
|
|
|
func main() {
|
|
log.SetFlags(log.Lshortfile)
|
|
|
|
imageName := flag.String("image-name", "ldez/traefik-certs-dumper", "")
|
|
version := flag.String("version", "", "")
|
|
baseImageName := flag.String("base-image-name", "alpine:3.9", "")
|
|
dryRun := flag.Bool("dry-run", true, "")
|
|
|
|
flag.Parse()
|
|
|
|
require("image-name", imageName)
|
|
require("version", version)
|
|
require("base-image-name", baseImageName)
|
|
|
|
_, travisTag := os.LookupEnv("TRAVIS_TAG")
|
|
if !travisTag {
|
|
log.Println("Skipping deploy")
|
|
os.Exit(0)
|
|
}
|
|
|
|
targets := []string{"arm.v6", "arm.v7", "arm.v8", "amd64", "386"}
|
|
|
|
publisher, err := newPublisher(*imageName, *version, *baseImageName, targets)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
err = publisher.execute(*dryRun)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func require(fieldName string, field *string) {
|
|
if field == nil || *field == "" {
|
|
log.Fatalf("%s is required", fieldName)
|
|
}
|
|
}
|