mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-03-19 20:57:53 +02:00
refactor: Removed os.Getenv / os.Setenv in favor of ctx.Env
goreleaser offers a ctx.Env map to access env variables. os.GetEnv and os.Setenv usages where removed from Artifactory pipeline in favor of cts.Env access. This makes testing easier
This commit is contained in:
parent
4e4529bbf8
commit
af618f9b69
@ -100,7 +100,7 @@ func (Pipe) Run(ctx *context.Context) error {
|
||||
}
|
||||
|
||||
envName := fmt.Sprintf("ARTIFACTORY_%s_SECRET", strings.ToUpper(instance.Name))
|
||||
if os.Getenv(envName) == "" {
|
||||
if _, ok := ctx.Env[envName]; !ok {
|
||||
return pipeline.Skip(fmt.Sprintf("missing secret for artifactory instance %s", instance.Name))
|
||||
}
|
||||
}
|
||||
@ -186,7 +186,8 @@ func uploadBinary(ctx *context.Context, instance config.Artifactory, build confi
|
||||
|
||||
// uploadAssetAndLog uploads file to target and logs all actions
|
||||
func uploadAssetAndLog(ctx *context.Context, instance config.Artifactory, path string, target *buildtarget.Target) error {
|
||||
secret := os.Getenv(fmt.Sprintf("ARTIFACTORY_%s_SECRET", strings.ToUpper(instance.Name)))
|
||||
envName := fmt.Sprintf("ARTIFACTORY_%s_SECRET", strings.ToUpper(instance.Name))
|
||||
secret := ctx.Env[envName]
|
||||
|
||||
// Generate the target url
|
||||
targetURL, err := resolveTargetTemplate(ctx, instance, target)
|
||||
|
@ -167,16 +167,14 @@ func TestRunPipe_ModeBinary(t *testing.T) {
|
||||
}`)
|
||||
})
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION-US_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION-US_SECRET")
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION-EU_SECRET", "productionuser-apikey")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION-EU_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION-US_SECRET": "deployuser-secret",
|
||||
"ARTIFACTORY_PRODUCTION-EU_SECRET": "productionuser-apikey",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
@ -221,14 +219,13 @@ func TestRunPipe_ModeArchive(t *testing.T) {
|
||||
debfile, err := os.Create(filepath.Join(folder, "bin.deb"))
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "goreleaser",
|
||||
Dist: folder,
|
||||
@ -307,14 +304,13 @@ func TestRunPipe_TargetTemplateError(t *testing.T) {
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
var binPath = filepath.Join(dist, "mybin", "mybin")
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
@ -371,14 +367,13 @@ func TestRunPipe_BadCredentials(t *testing.T) {
|
||||
}`)
|
||||
})
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
@ -437,14 +432,13 @@ func TestRunPipe_UnparsableErrorResponse(t *testing.T) {
|
||||
}`)
|
||||
})
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
@ -500,14 +494,13 @@ func TestRunPipe_UnparsableResponse(t *testing.T) {
|
||||
}`)
|
||||
})
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTIONS_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION-US_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
@ -538,14 +531,13 @@ func TestRunPipe_WithoutBinaryTarget(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
var dist = filepath.Join(folder, "dist")
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
@ -571,14 +563,13 @@ func TestRunPipe_WithoutBinaryTarget(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRunPipe_NoFile(t *testing.T) {
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: "archivetest/dist",
|
||||
@ -615,14 +606,13 @@ func TestRunPipe_UnparsableTarget(t *testing.T) {
|
||||
err = ioutil.WriteFile(binPath, d1, 0666)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
@ -651,12 +641,11 @@ func TestRunPipe_UnparsableTarget(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRunPipe_SkipWhenPublishFalse(t *testing.T) {
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Publish: false,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
Artifactories: []config.Artifactory{
|
||||
{
|
||||
@ -680,14 +669,13 @@ func TestRunPipe_DirUpload(t *testing.T) {
|
||||
assert.NoError(t, os.Mkdir(filepath.Join(dist, "mybin"), 0755))
|
||||
var binPath = filepath.Join(dist, "mybin")
|
||||
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Version: "1.0.0",
|
||||
Publish: true,
|
||||
Parallelism: 4,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
ProjectName: "mybin",
|
||||
Dist: dist,
|
||||
@ -724,33 +712,39 @@ func TestNoArtifactories(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestArtifactoriesWithoutTarget(t *testing.T) {
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
assert.True(t, pipeline.IsSkip(Pipe{}.Run(context.New(config.Project{
|
||||
Artifactories: []config.Artifactory{
|
||||
{
|
||||
Name: "production",
|
||||
Username: "deployuser",
|
||||
var ctx = &context.Context{
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
Artifactories: []config.Artifactory{
|
||||
{
|
||||
Name: "production",
|
||||
Username: "deployuser",
|
||||
},
|
||||
},
|
||||
},
|
||||
}))))
|
||||
}
|
||||
|
||||
assert.True(t, pipeline.IsSkip(Pipe{}.Run(ctx)))
|
||||
}
|
||||
|
||||
func TestArtifactoriesWithoutUsername(t *testing.T) {
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
assert.True(t, pipeline.IsSkip(Pipe{}.Run(context.New(config.Project{
|
||||
Artifactories: []config.Artifactory{
|
||||
{
|
||||
Name: "production",
|
||||
Target: "http://artifacts.company.com/example-repo-local/{{ .ProjectName }}/{{ .Os }}/{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}",
|
||||
var ctx = &context.Context{
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
Artifactories: []config.Artifactory{
|
||||
{
|
||||
Name: "production",
|
||||
Target: "http://artifacts.company.com/example-repo-local/{{ .ProjectName }}/{{ .Os }}/{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}",
|
||||
},
|
||||
},
|
||||
},
|
||||
}))))
|
||||
}
|
||||
|
||||
assert.True(t, pipeline.IsSkip(Pipe{}.Run(ctx)))
|
||||
}
|
||||
|
||||
func TestArtifactoriesWithoutName(t *testing.T) {
|
||||
@ -777,12 +771,11 @@ func TestArtifactoriesWithoutSecret(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestArtifactoriesWithInvalidMode(t *testing.T) {
|
||||
// Set secrets for artifactory instances
|
||||
os.Setenv("ARTIFACTORY_PRODUCTION_SECRET", "deployuser-secret")
|
||||
defer os.Unsetenv("ARTIFACTORY_PRODUCTION_SECRET")
|
||||
|
||||
var ctx = &context.Context{
|
||||
Publish: true,
|
||||
Env: map[string]string{
|
||||
"ARTIFACTORY_PRODUCTION_SECRET": "deployuser-secret",
|
||||
},
|
||||
Config: config.Project{
|
||||
Artifactories: []config.Artifactory{
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user