Skip to content
This repository has been archived by the owner on Nov 11, 2024. It is now read-only.

Commit

Permalink
The add service command introduces backslashes in kustomize.yaml (#12…
Browse files Browse the repository at this point in the history
…12) (#260)

Signed-off-by: Keith Chong <[email protected]>
  • Loading branch information
keithchong authored Jul 22, 2021
1 parent 1209d50 commit ae04c29
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
3 changes: 2 additions & 1 deletion pkg/pipelines/environments/environments.go
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,8 @@ func ListFiles(fs afero.Fs, base string) (StringSet, error) {
if info.IsDir() {
return nil
}
filename := strings.TrimPrefix(path, base+"/")
// Convert backslashes on Windows to forward slashes, and trim the 'base' prefix so it is a relative path.
filename := strings.TrimPrefix(filepath.ToSlash(path), filepath.ToSlash(base)+"/")
if filename == kustomization {
return nil
}
Expand Down
45 changes: 45 additions & 0 deletions pkg/pipelines/environments/environments_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package environments

import (
"os"
"runtime"
"sort"
"testing"

Expand Down Expand Up @@ -209,6 +210,50 @@ func TestBuildEnvironmentFilesWithNoCICDEnv(t *testing.T) {
}
}

func TestListFiles(t *testing.T) {
var appFs = ioutils.NewMemoryFilesystem()
var envPath = "environments/test-dev"
var basePath = "environments/test-dev/base"
err := appFs.MkdirAll(basePath, 0755)
if err != nil {
t.Fatal(err)
}
if runtime.GOOS == "windows" {
envPath = "environments\\test-dev"
basePath = "environments\\test-dev\\base"
mustWriteFile(t, appFs, "environments\\test-dev\\base\\01-namespaces\\cicd-environment.yaml", []byte(`this is a file`), 0644)
mustWriteFile(t, appFs, "environments\\test-dev\\base\\02-rolebindings\\argocd-admin.yaml", []byte(`this is a file`), 0644)
mustWriteFile(t, appFs, "environments\\test-dev\\base\\03-tasks\\deploy-from-source-task.yaml", []byte(`this is a file`), 0644)
mustWriteFile(t, appFs, "environments\\test-dev\\base\\04-pipelines\\app-ci-pipeline.yaml", []byte(`this is a file`), 0644)
mustWriteFile(t, appFs, "environments\\test-dev\\base\\08-routes\\gitops-webhook-event-listener.yaml", []byte(`this is a file`), 0644)
} else {
mustWriteFile(t, appFs, "environments/test-dev/base/01-namespaces/cicd-environment.yaml", []byte(`this is a file`), 0644)
mustWriteFile(t, appFs, "environments/test-dev/base/02-rolebindings/argocd-admin.yaml", []byte(`this is a file`), 0644)
mustWriteFile(t, appFs, "environments/test-dev/base/03-tasks/deploy-from-source-task.yaml", []byte(`this is a file`), 0644)
mustWriteFile(t, appFs, "environments/test-dev/base/04-pipelines/app-ci-pipeline.yaml", []byte(`this is a file`), 0644)
mustWriteFile(t, appFs, "environments/test-dev/base/08-routes/gitops-webhook-event-listener.yaml", []byte(`this is a file`), 0644)
}
exists, err := appFs.DirExists(envPath)
if err != nil {
t.Fatal(err)
}
if !exists {
t.Fatal("Folder does not exist")
}
// This will strip the prefix base from the list of files
listFiles, err := ListFiles(appFs, basePath)
want := StringSet{
"01-namespaces/cicd-environment.yaml": true,
"02-rolebindings/argocd-admin.yaml": true,
"03-tasks/deploy-from-source-task.yaml": true,
"04-pipelines/app-ci-pipeline.yaml": true,
"08-routes/gitops-webhook-event-listener.yaml": true,
}
if diff := cmp.Diff(want, listFiles); diff != "" {
t.Fatalf("files didn't match: %s\n", diff)
}
}

func filesFromResources(r res.Resources) []string {
names := []string{}
for k := range r {
Expand Down

0 comments on commit ae04c29

Please sign in to comment.