travis, build: only run purging on cron jobs

This commit is contained in:
Péter Szilágyi 2017-04-05 14:18:57 +03:00
parent a05dc442aa
commit b3354d68bf
No known key found for this signature in database
GPG key ID: E9AE538CEDF8293D
2 changed files with 15 additions and 3 deletions

View file

@ -430,6 +430,10 @@ func maybeSkipArchive(env build.Environment) {
log.Printf("skipping because this is a PR build") log.Printf("skipping because this is a PR build")
os.Exit(0) os.Exit(0)
} }
if env.IsCronJob {
log.Printf("skipping because this is a cron job")
os.Exit(0)
}
if env.Branch != "master" && !strings.HasPrefix(env.Tag, "v1.") { if env.Branch != "master" && !strings.HasPrefix(env.Tag, "v1.") {
log.Printf("skipping because branch %q, tag %q is not on the whitelist", env.Branch, env.Tag) log.Printf("skipping because branch %q, tag %q is not on the whitelist", env.Branch, env.Tag)
os.Exit(0) os.Exit(0)
@ -965,9 +969,10 @@ func doPurge(cmdline []string) {
) )
flag.CommandLine.Parse(cmdline) flag.CommandLine.Parse(cmdline)
env := build.Env() if env := build.Env(); !env.IsCronJob {
maybeSkipArchive(env) log.Printf("skipping because not a cron job")
os.Exit(0)
}
// Create the azure authentication and list the current archives // Create the azure authentication and list the current archives
auth := build.AzureBlobstoreConfig{ auth := build.AzureBlobstoreConfig{
Account: strings.Split(*store, "/")[0], Account: strings.Split(*store, "/")[0],

View file

@ -30,6 +30,7 @@ var (
GitTagFlag = flag.String("git-tag", "", `Overrides git tag being built`) GitTagFlag = flag.String("git-tag", "", `Overrides git tag being built`)
BuildnumFlag = flag.String("buildnum", "", `Overrides CI build number`) BuildnumFlag = flag.String("buildnum", "", `Overrides CI build number`)
PullRequestFlag = flag.Bool("pull-request", false, `Overrides pull request status of the build`) PullRequestFlag = flag.Bool("pull-request", false, `Overrides pull request status of the build`)
CronJobFlag = flag.Bool("cron-job", false, `Overrides cron job status of the build`)
) )
// Environment contains metadata provided by the build environment. // Environment contains metadata provided by the build environment.
@ -39,6 +40,7 @@ type Environment struct {
Commit, Branch, Tag string // Git info Commit, Branch, Tag string // Git info
Buildnum string Buildnum string
IsPullRequest bool IsPullRequest bool
IsCronJob bool
} }
func (env Environment) String() string { func (env Environment) String() string {
@ -59,6 +61,7 @@ func Env() Environment {
Tag: os.Getenv("TRAVIS_TAG"), Tag: os.Getenv("TRAVIS_TAG"),
Buildnum: os.Getenv("TRAVIS_BUILD_NUMBER"), Buildnum: os.Getenv("TRAVIS_BUILD_NUMBER"),
IsPullRequest: os.Getenv("TRAVIS_PULL_REQUEST") != "false", IsPullRequest: os.Getenv("TRAVIS_PULL_REQUEST") != "false",
IsCronJob: os.Getenv("TRAVIS_EVENT_TYPE") == "cron",
} }
case os.Getenv("CI") == "True" && os.Getenv("APPVEYOR") == "True": case os.Getenv("CI") == "True" && os.Getenv("APPVEYOR") == "True":
return Environment{ return Environment{
@ -69,6 +72,7 @@ func Env() Environment {
Tag: os.Getenv("APPVEYOR_REPO_TAG_NAME"), Tag: os.Getenv("APPVEYOR_REPO_TAG_NAME"),
Buildnum: os.Getenv("APPVEYOR_BUILD_NUMBER"), Buildnum: os.Getenv("APPVEYOR_BUILD_NUMBER"),
IsPullRequest: os.Getenv("APPVEYOR_PULL_REQUEST_NUMBER") != "", IsPullRequest: os.Getenv("APPVEYOR_PULL_REQUEST_NUMBER") != "",
IsCronJob: os.Getenv("APPVEYOR_SCHEDULED_BUILD") == "True",
} }
default: default:
return LocalEnv() return LocalEnv()
@ -118,5 +122,8 @@ func applyEnvFlags(env Environment) Environment {
if *PullRequestFlag { if *PullRequestFlag {
env.IsPullRequest = true env.IsPullRequest = true
} }
if *CronJobFlag {
env.IsCronJob = true
}
return env return env
} }