Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package okteto for openSUSE:Factory checked in at 2022-07-01 13:45:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/okteto (Old) and /work/SRC/openSUSE:Factory/.okteto.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "okteto" Fri Jul 1 13:45:12 2022 rev:21 rq:986214 version:2.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/okteto/okteto.changes 2022-06-23 10:25:35.183825788 +0200 +++ /work/SRC/openSUSE:Factory/.okteto.new.1548/okteto.changes 2022-07-01 13:45:44.106968462 +0200 @@ -1,0 +2,15 @@ +Fri Jul 01 10:54:47 UTC 2022 - ka...@b1-systems.de + +- Update to version 2.4.1: + * Handle jobs "completed" status properly for the "--wait" flag (#2862) (#2863) + * Run windows tests in staging (#2784) (#2859) + * Use seconds instead of miliseconds to build the test name for the autowake, this is a quick fix to fix the tests (#2818) (#2860) + * Run e2e tests in staging (#2779) (#2858) + * use master branch from movies (#2850) + * use main branch for github actions (#2845) + * Github action release (#2833) (#2840) + * Update .DEREK.yml (#2838) (#2839) + * Clearer patters for remote stignore (#2831) (#2837) + * fix beta release sorting (#2815) (#2816) + +------------------------------------------------------------------- Old: ---- okteto-2.4.0.tar.gz New: ---- okteto-2.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ okteto.spec ++++++ --- /var/tmp/diff_new_pack.B25Xsy/_old 2022-07-01 13:45:44.782969478 +0200 +++ /var/tmp/diff_new_pack.B25Xsy/_new 2022-07-01 13:45:44.786969484 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: okteto -Version: 2.4.0 +Version: 2.4.1 Release: 0 Summary: Develop your applications directly in your Kubernetes Cluster License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.B25Xsy/_old 2022-07-01 13:45:44.830969550 +0200 +++ /var/tmp/diff_new_pack.B25Xsy/_new 2022-07-01 13:45:44.834969556 +0200 @@ -3,9 +3,10 @@ <param name="url">https://github.com/okteto/okteto</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">2.4.0</param> + <param name="revision">2.4.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> + <param name="match-tag">2.4.1</param> </service> <service name="set_version" mode="disabled"> <param name="basename">okteto</param> @@ -15,7 +16,7 @@ <param name="compression">gz</param> </service> <service name="go_modules" mode="disabled"> - <param name="archive">okteto-2.4.0.tar.gz</param> + <param name="archive">okteto-2.4.1.tar.gz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.B25Xsy/_old 2022-07-01 13:45:44.862969598 +0200 +++ /var/tmp/diff_new_pack.B25Xsy/_new 2022-07-01 13:45:44.866969604 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/okteto/okteto</param> - <param name="changesrevision">da59044135f347e42c34b34472a65ce5e4c85c7e</param></service></servicedata> + <param name="changesrevision">8db8f6de327c3883617b0c6db115e5e668c313be</param></service></servicedata> (No newline at EOF) ++++++ okteto-2.4.0.tar.gz -> okteto-2.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/.DEREK.yml new/okteto-2.4.1/.DEREK.yml --- old/okteto-2.4.0/.DEREK.yml 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/.DEREK.yml 2022-06-30 14:46:31.000000000 +0200 @@ -9,7 +9,5 @@ - dco_check - comments - pr_description_required - - release_notes - - hacktoberfest contributing_url: https://github.com/okteto/okteto/blob/master/contributing.md diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/.circleci/config.yml new/okteto-2.4.1/.circleci/config.yml --- old/okteto-2.4.0/.circleci/config.yml 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/.circleci/config.yml 2022-06-30 14:46:31.000000000 +0200 @@ -49,8 +49,11 @@ destination: coverage.txt test-integration: executor: golang-ci + resource_class: large environment: + OKTETO_URL: https://staging.okteto.dev/ OKTETO_USER: cindylopez + OKTETO_APPS_SUBDOMAIN: staging.okteto.net steps: - checkout - restore_cache: @@ -68,7 +71,7 @@ curl -L "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" -o /usr/local/bin/kubectl chmod +x /usr/local/bin/kubectl cp $(pwd)/artifacts/bin/okteto-Linux-x86_64 /usr/local/bin/okteto - /usr/local/bin/okteto login --token ${API_TOKEN} + /usr/local/bin/okteto login --token ${API_STAGING_TOKEN} - run: name: Integration tests environment: @@ -132,13 +135,17 @@ at: .\artifacts - run: name: Prepare env + environment: + OKTETO_URL: https://staging.okteto.dev/ command: | new-item $HOME\.okteto -itemtype "directory" -force new-item $HOME\.okteto\.noanalytics -itemtype "file" -value "noanalytics" -force - & 'C:\Users\circleci\project\artifacts\bin\okteto.exe' login --token $env:API_TOKEN + & 'C:\Users\circleci\project\artifacts\bin\okteto.exe' login --token $env:API_STAGING_TOKEN - run: name: Integration tests environment: + OKTETO_URL: https://staging.okteto.dev/ + OKTETO_APPS_SUBDOMAIN: staging.okteto.net OKTETO_PATH: 'C:\Users\circleci\project\artifacts\bin\okteto.exe' OKTETO_SKIP_CLEANUP: 'true' command: | @@ -190,7 +197,7 @@ git push g...@github.com:okteto/homebrew-cli.git master - deploy: name: Auto-update-actions - command: ./scripts/update_actions.sh $CIRCLE_TAG + command: ./scripts/ci/release-github-actions.sh $CIRCLE_TAG release: executor: golang-ci @@ -233,6 +240,14 @@ only: - master - /.*(windows|win)/ + - test-integration: + requires: + - build + filters: + branches: + only: + - master + - /.*(e2e)/ - test-release: context: GKE requires: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/cmd/pipeline/deploy.go new/okteto-2.4.1/cmd/pipeline/deploy.go --- old/okteto-2.4.0/cmd/pipeline/deploy.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/cmd/pipeline/deploy.go 2022-06-30 14:46:31.000000000 +0200 @@ -284,15 +284,9 @@ if err != nil { return err } - allRunning := true - for _, status := range resourceStatus { - if status == "error" { - return fmt.Errorf("repository '%s' deployed with errors", name) - } - if status != "running" { - allRunning = false - break - } + allRunning, err := CheckAllResourcesRunning(name, resourceStatus) + if err != nil { + return err } if allRunning { return nil @@ -300,3 +294,17 @@ } } } + +func CheckAllResourcesRunning(name string, resourceStatus map[string]string) (bool, error) { + allRunning := true + for _, status := range resourceStatus { + if status == okteto.ErrorStatus { + return false, fmt.Errorf("repository '%s' deployed with errors", name) + } + if status != okteto.RunningStatus && status != okteto.CompletedStatus { + allRunning = false + } + + } + return allRunning, nil +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/cmd/pipeline/deploy_test.go new/okteto-2.4.1/cmd/pipeline/deploy_test.go --- old/okteto-2.4.0/cmd/pipeline/deploy_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/cmd/pipeline/deploy_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -19,6 +19,7 @@ "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/config" "github.com/okteto/okteto/pkg/model" + "github.com/okteto/okteto/pkg/okteto" ) func Test_getRepositoryURL(t *testing.T) { @@ -105,4 +106,56 @@ } }) } +} + +func TestCheckAllResourcesRunning(t *testing.T) { + + var tests = []struct { + name string + resourceStatus map[string]string + expectError bool + expectResult bool + }{ + { + name: "all-running", + resourceStatus: map[string]string{ + "1": okteto.RunningStatus, + "2": okteto.CompletedStatus, + }, + expectError: false, + expectResult: true, + }, + { + name: "progressing", + resourceStatus: map[string]string{ + "1": okteto.RunningStatus, + "2": okteto.CompletedStatus, + "3": okteto.ProgressingStatus, + }, + expectError: false, + expectResult: false, + }, + { + name: "error", + resourceStatus: map[string]string{ + "1": okteto.RunningStatus, + "2": okteto.CompletedStatus, + "3": okteto.ProgressingStatus, + "4": okteto.ErrorStatus, + }, + expectError: true, + expectResult: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result, err := CheckAllResourcesRunning(tt.name, tt.resourceStatus) + if tt.expectError && err == nil || !tt.expectError && err != nil { + t.Errorf("expected error '%t', got '%v", tt.expectError, err) + } + if tt.expectResult != result { + t.Errorf("expected result '%t', got '%t", tt.expectResult, result) + } + }) + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/cmd/preview/deploy.go new/okteto-2.4.1/cmd/preview/deploy.go --- old/okteto-2.4.0/cmd/preview/deploy.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/cmd/preview/deploy.go 2022-06-30 14:46:31.000000000 +0200 @@ -23,6 +23,7 @@ "github.com/docker/docker/pkg/namesgenerator" contextCMD "github.com/okteto/okteto/cmd/context" + "github.com/okteto/okteto/cmd/pipeline" "github.com/okteto/okteto/cmd/utils" "github.com/okteto/okteto/pkg/analytics" oktetoErrors "github.com/okteto/okteto/pkg/errors" @@ -264,15 +265,9 @@ if err != nil { return err } - allRunning := true - for _, status := range resourceStatus { - if status == "error" { - return fmt.Errorf("preview environment '%s' deployed with resource errors", name) - } - if status != "running" { - allRunning = false - break - } + allRunning, err := pipeline.CheckAllResourcesRunning(name, resourceStatus) + if err != nil { + return err } if allRunning { return nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/cmd/up/stignore.go new/okteto-2.4.1/cmd/up/stignore.go --- old/okteto-2.4.0/cmd/up/stignore.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/cmd/up/stignore.go 2022-06-30 14:46:31.000000000 +0200 @@ -71,20 +71,19 @@ } line := strings.TrimSpace(string(bytes)) - if line == "" { + // ignore local lines that are empty, comments or includes more files + // TODO: support remote #include https://github.com/okteto/okteto/issues/2832 + if strings.Compare(line, "") == 0 || strings.HasPrefix(line, "//") || strings.HasPrefix(line, "#") { continue } - if strings.Contains(line, "(?d)") { - continue - } - if strings.HasPrefix(line, "#") { - continue - } - if strings.HasPrefix(line, "!") { - continue + + // transform line by adding (?d) unless the line starts with ! or already has (?d) + if !strings.HasPrefix(line, "!") && !strings.Contains(line, "(?d)") { + line = fmt.Sprintf("(?d)%s", line) } - _, err = writer.WriteString(fmt.Sprintf("(?d)%s\n", line)) + // write new line at remote .stignore + _, err = writer.WriteString(fmt.Sprintf("%s\n", line)) if err != nil { return err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/cmd/up/stignore_test.go new/okteto-2.4.1/cmd/up/stignore_test.go --- old/okteto-2.4.0/cmd/up/stignore_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/cmd/up/stignore_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -44,12 +44,23 @@ stignoreContent: `.ignore #include file (?d) folder -!exclude`, +!exclude +// this comment should be excluded +(?i)!case +*`, expectedTransformedStignoreContent: `(?d).ignore +(?d) folder +!exclude +(?d)(?i)!case +(?d)* `, expectedAnnotation: model.Annotations{ model.OktetoStignoreAnnotation: fmt.Sprintf("%x", sha512.Sum512([]byte(` -.ignore`))), +(?d).ignore +(?d) folder +!exclude +(?d)(?i)!case +(?d)*`))), }, }, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/integration/actions_test.go new/okteto-2.4.1/integration/actions_test.go --- old/okteto-2.4.0/integration/actions_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/integration/actions_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -351,7 +351,7 @@ func getTestNamespace() string { tName := fmt.Sprintf("TestAction-%s", runtime.GOOS) - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) return namespace } @@ -444,7 +444,7 @@ actionRepo := fmt.Sprintf("%s%s.git", githubHttpsUrl, pipelinePath) actionFolder := strings.Split(pipelinePath, "/")[1] log.Printf("cloning pipeline repository: %s", actionRepo) - err := cloneGitRepoWithBranch(ctx, actionRepo, "master") + err := cloneGitRepoWithBranch(ctx, actionRepo, "main") if err != nil { return err } @@ -455,6 +455,44 @@ os.Setenv(model.GithubServerURLEnvVar, githubUrl) log.Printf("deploying pipeline %s", namespace) + command := fmt.Sprintf("%s/entrypoint.sh", actionFolder) + args := []string{"movies", namespace} + + cmd := exec.Command(command, args...) + cmd.Env = os.Environ() + o, err := cmd.CombinedOutput() + if err != nil { + return fmt.Errorf("%s %s: %s", command, strings.Join(args, " "), string(o)) + } + log.Printf("Deploy pipeline output: \n%s\n", string(o)) + + oktetoClient, err := okteto.NewOktetoClient() + if err != nil { + return err + } + okteto.Context().Namespace = namespace + pipeline, err := oktetoClient.GetPipelineByName(ctx, "movies") + if err != nil || pipeline == nil { + return fmt.Errorf("Could not get deployment %s", namespace) + } + return nil +} + +func executeDeployWithComposePipelineAction(ctx context.Context, namespace string) error { + actionRepo := fmt.Sprintf("%s%s.git", githubHttpsUrl, pipelinePath) + actionFolder := strings.Split(pipelinePath, "/")[1] + log.Printf("cloning pipeline repository: %s", actionRepo) + err := cloneGitRepoWithBranch(ctx, actionRepo, "main") + if err != nil { + return err + } + log.Printf("cloned repo %s \n", actionRepo) + defer deleteGitRepo(ctx, actionFolder) + os.Setenv(model.GithubRepositoryEnvVar, "okteto/movies-with-compose") + os.Setenv(model.GithubRefEnvVar, "main") + os.Setenv(model.GithubServerURLEnvVar, githubUrl) + + log.Printf("deploying pipeline %s", namespace) command := fmt.Sprintf("%s/entrypoint.sh", actionFolder) args := []string{"movies", namespace} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/integration/build_test.go new/okteto-2.4.1/integration/build_test.go --- old/okteto-2.4.0/integration/build_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/integration/build_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -49,7 +49,7 @@ ) var ( - testID = strings.ToLower(fmt.Sprintf("TestBuildCommand-%s-%d", runtime.GOOS, time.Now().Unix())) + testID = strings.ToLower(fmt.Sprintf("TestBuildCommand-%s-%d", runtime.GOOS, time.Now().UnixMilli())) testNamespace = fmt.Sprintf("%s-%s", testID, user) originNamespace = getCurrentNamespace() expectedImageTag = fmt.Sprintf("%s/%s/%s-app:okteto", okteto.Context().Registry, testNamespace, repoDir) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/integration/deploy_manifest_test.go new/okteto-2.4.1/integration/deploy_manifest_test.go --- old/okteto-2.4.0/integration/deploy_manifest_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/integration/deploy_manifest_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -113,7 +113,7 @@ ) var ( - testID = strings.ToLower(fmt.Sprintf("DeployFromManifest-%s-%d", runtime.GOOS, time.Now().Unix())) + testID = strings.ToLower(fmt.Sprintf("DeployFromManifest-%s-%d", runtime.GOOS, time.Now().UnixMilli())) testNamespace = fmt.Sprintf("%s-%s", testID, user) expectedImage = fmt.Sprintf("%s/%s/%s-app:okteto", okteto.Context().Registry, testNamespace, repoDir) originNamespace = getCurrentNamespace() @@ -394,7 +394,7 @@ repoDir := "voting-app" var ( - testID = strings.ToLower(fmt.Sprintf("TestDeployOutput-%s-%d", runtime.GOOS, time.Now().Unix())) + testID = strings.ToLower(fmt.Sprintf("TestDeployOutput-%s-%d", runtime.GOOS, time.Now().UnixMilli())) testNamespace = fmt.Sprintf("%s-%s", testID, user) originNamespace = getCurrentNamespace() ) @@ -466,7 +466,7 @@ repoDir := "movies" branch := "pchico83/manifest-v2" var ( - testID = strings.ToLower(fmt.Sprintf("TestDeployOutput-%s-%d", runtime.GOOS, time.Now().Unix())) + testID = strings.ToLower(fmt.Sprintf("TestDeployOutput-%s-%d", runtime.GOOS, time.Now().UnixMilli())) testNamespace = fmt.Sprintf("%s-%s", testID, user) originNamespace = getCurrentNamespace() ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/integration/deploy_test.go new/okteto-2.4.1/integration/deploy_test.go --- old/okteto-2.4.0/integration/deploy_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/integration/deploy_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -57,7 +57,7 @@ t.Fatal(err) } tName := fmt.Sprintf("TestDeploy-%s", runtime.GOOS) - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) t.Run(tName, func(t *testing.T) { log.Printf("running %s \n", tName) @@ -124,7 +124,7 @@ } tName := fmt.Sprintf("TestDeploySubsetService-%s", runtime.GOOS) - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) desiredDeployments := []string{"vote", "kafka", "zookeeper"} svcToAvoidDeploy := []string{"worker", "result"} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/integration/push_test.go new/okteto-2.4.1/integration/push_test.go --- old/okteto-2.4.0/integration/push_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/integration/push_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -42,7 +42,7 @@ t.Fatal(err) } tName := fmt.Sprintf("TestPush-%s", runtime.GOOS) - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) t.Run(tName, func(t *testing.T) { log.Printf("running %s \n", tName) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/integration/stacks_test.go new/okteto-2.4.1/integration/stacks_test.go --- old/okteto-2.4.0/integration/stacks_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/integration/stacks_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -47,7 +47,7 @@ } tName := fmt.Sprintf("TestStacks-%s", runtime.GOOS) - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) t.Run(tName, func(t *testing.T) { log.Printf("running %s \n", tName) @@ -160,7 +160,7 @@ } tName := fmt.Sprintf("TestStacks-%s", runtime.GOOS) - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) startNamespace := getCurrentNamespace() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/integration/up_test.go new/okteto-2.4.1/integration/up_test.go --- old/okteto-2.4.0/integration/up_test.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/integration/up_test.go 2022-06-30 14:46:31.000000000 +0200 @@ -250,7 +250,7 @@ t.Fatalf("kubectl is not in the path: %s", err) } - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) dir, err := os.MkdirTemp("", tName) @@ -437,7 +437,7 @@ t.Fatalf("kubectl is not in the path: %s", err) } - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) dir, err := os.MkdirTemp("", tName) @@ -594,7 +594,7 @@ t.Fatalf("kubectl is not in the path: %s", err) } - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) dir, err := os.MkdirTemp("", tName) @@ -701,7 +701,7 @@ if _, err := exec.LookPath(kubectlBinary); err != nil { t.Fatalf("kubectl is not in the path: %s", err) } - name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().Unix())) + name := strings.ToLower(fmt.Sprintf("%s-%d", tName, time.Now().UnixMilli())) namespace := fmt.Sprintf("%s-%s", name, user) log.Printf("running %s \n", tName) startNamespace := getCurrentNamespace() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/pkg/okteto/namespace.go new/okteto-2.4.1/pkg/okteto/namespace.go --- old/okteto-2.4.0/pkg/okteto/namespace.go 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/pkg/okteto/namespace.go 2022-06-30 14:46:31.000000000 +0200 @@ -26,6 +26,10 @@ const ( // Maximum number of characters allowed in a namespace name MAX_ALLOWED_CHARS = 63 + RunningStatus = "running" + CompletedStatus = "completed" + ProgressingStatus = "progressing" + ErrorStatus = "error" ) type namespaceClient struct { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/scripts/ci/release-github-actions.sh new/okteto-2.4.1/scripts/ci/release-github-actions.sh --- old/okteto-2.4.0/scripts/ci/release-github-actions.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/okteto-2.4.1/scripts/ci/release-github-actions.sh 2022-06-30 14:46:31.000000000 +0200 @@ -0,0 +1,137 @@ +#!/usr/bin/env bash + +# release-github-actions.sh takes care of create a github action release that +# matches a stable CLI release. +# It does so by creating a git tag in each of the action repos and updating the +# tip of LTS branches if necessary. +# Github Actions can be consumed through LTS branches or "latest". These +# branches are created for major releases and kept up to date with the latest +# changes. + +# run in a subshell +{ ( + set -e # make any error fail the script + set -u # make unbound variables fail the script + + # SC2039: In POSIX sh, set option pipefail is undefined + # shellcheck disable=SC2039 + set -o pipefail # make any pipe error fail the script + + # RELEASE_TAG is the release tag that we want to release + RELEASE_TAG="${1:-""}" + + # REPO_OWNER is the owner of the repo (okteto) + REPO_OWNER="okteto" + + if [ "$RELEASE_TAG" = "" ]; then + echo "RELEASE_TAG not provided" + exit 1 + fi + + if ! semver validate "${RELEASE_TAG}" >/dev/null 2>&1; then + echo "${RELEASE_TAG} is not a valid semver format" + exit 1 + fi + + PREREL="$(semver get prerel "${RELEASE_TAG}")" + MAJOR_VERSION="$(semver get major "${RELEASE_TAG}")" + LTS_BRANCH="v${MAJOR_VERSION}" + + # stable release + if [ -n "$PREREL" ]; then + echo "Current version ${RELEASE_TAG} is not a stable semver release" + exit 1 + fi + + VERSIONS_BUCKET_FILENAME="downloads.okteto.com/cli/stable/versions" + + VERSIONS_FILE=$(mktemp) + gsutil cat "gs://${VERSIONS_BUCKET_FILENAME}" >"$VERSIONS_FILE" + echo "Current version list for stable channel (showing latest 10):" + tail -n 10 "$VERSIONS_FILE" + + if ! grep -qFx "${RELEASE_TAG}" "${VERSIONS_FILE}"; then + echo "RELEASE_TAG: ${RELEASE_TAG} not included in the versions from https://${VERSIONS_BUCKET_FILENAME}" + exit 1 + fi + + repos=( + delete-namespace + build + destroy-preview + deploy-preview + deploy-stack + namespace + pipeline + push + create-namespace + destroy-pipeline + login + destroy-stack + apply + context + ) + + for repo in "${repos[@]}"; do + echo "Releasing ${REPO_OWNER}/$repo" + git clone "g...@github.com:${REPO_OWNER}/${repo}.git" + pushd "$repo" + git config user.name "okteto" + git config user.email "c...@okteto.com" + + if git tag --list | grep -qFx "$RELEASE_TAG"; then + echo "$RELEASE_TAG already exists" + exit 1 + fi + + # checkout the list branch. Create it if it doesn't exist + git checkout "${LTS_BRANCH}" 2>/dev/null || git checkout -b "${LTS_BRANCH}" + + # get the latest tag from the lts branch + current_tag="$(git describe --tags --abbrev=0 --match "*.*.*")" + diff="$(semver compare "${current_tag}" "$RELEASE_TAG")" + + # RELEASE_TAG must be a newer release + if [ "${diff}" != "-1" ]; then + echo "RELEASE_TAG ${RELEASE_TAG} is older than the current tag: ${current_tag}" + exit 0 + fi + + sed -i '' -E 's_FROM\ okteto\/okteto\:latest_FROM\ okteto\/okteto\:'"$RELEASE_TAG"'_' Dockerfile + sed -i '' -E 's_FROM\ okteto\/okteto\:[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*_FROM\ okteto\/okteto\:'"$RELEASE_TAG"'_' Dockerfile + git add Dockerfile + git commit -m "release ${RELEASE_TAG}" + + echo "Pushing LTS branch ${LTS_BRANCH}" + git push "g...@github.com:${REPO_OWNER}/${repo}.git" "${LTS_BRANCH}" + + echo "Creating release for tag ${RELEASE_TAG}" + ghr \ + -debug \ + -name "${RELEASE_TAG}" \ + -token "$GITHUB_TOKEN" \ + -recreate \ + -replace \ + -commitish "$(git rev-parse "${LTS_BRANCH}")" \ + "$RELEASE_TAG" + + # After updating the LTS branch, if the current release is the latest known + # release, update latest + latest="$(tail -n1 "${VERSIONS_FILE}")" + if [ "${latest}" = "${RELEASE_TAG}" ]; then + echo "Updating latest tag" + ghr \ + -debug \ + -name "latest@${RELEASE_TAG}" \ + -token "$GITHUB_TOKEN" \ + -recreate \ + -replace \ + -commitish "$(git rev-parse main)" \ + latest + fi + + popd + rm -rf "$repo" + done + +); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/scripts/ci/release.sh new/okteto-2.4.1/scripts/ci/release.sh --- old/okteto-2.4.0/scripts/ci/release.sh 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/scripts/ci/release.sh 2022-06-30 14:46:31.000000000 +0200 @@ -168,7 +168,7 @@ if [ "${chan}" = "dev" ]; then awk '!seen[$0]++' "$version_file_tmp" >"${version_file}" else - awk '!seen[$0]++' "$version_file_tmp" | okteto-ci-utils semver-sort >"${version_file}" + awk '!seen[$0]++' "$version_file_tmp" | perl -pe 's/\-(?=beta)/~/' | sort -V | perl -pe 's/~/-/' >"${version_file}" fi echo "Added ${tag} to the version list" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/scripts/set_latest_actions.sh new/okteto-2.4.1/scripts/set_latest_actions.sh --- old/okteto-2.4.0/scripts/set_latest_actions.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/okteto-2.4.1/scripts/set_latest_actions.sh 2022-06-30 14:46:31.000000000 +0200 @@ -0,0 +1,43 @@ +#!/bin/bash +set -e + +VERSION=$1 + +if [ -z "$VERSION" ]; then + echo "missing version" + exit 1 +fi + +actionsRepos=(delete-namespace + build + destroy-preview + deploy-preview + deploy-stack + namespace + pipeline + push + create-namespace + destroy-pipeline + login + destroy-stack + apply + context +) + +for repo in "${actionsRepos[@]}"; do + echo "$repo" + rm -rf "$repo" + git clone g...@github.com:okteto/"$repo".git + pushd "$repo" + git checkout "$VERSION" + ghr \ + -debug \ + -name "latest@${VERSION}" \ + -token "$GITHUB_TOKEN" \ + -recreate \ + -replace \ + -commitish "$(git rev-parse main)" \ + latest + popd + rm -rf "$repo" +done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/scripts/update_actions.sh new/okteto-2.4.1/scripts/update_actions.sh --- old/okteto-2.4.0/scripts/update_actions.sh 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/scripts/update_actions.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,45 +0,0 @@ -#!/bin/bash -set -e - -VERSION=$1 - -if [ -z "$VERSION" ]; then - echo "missing version" - exit 1 -fi - -actionsRepos=(delete-namespace - build - destroy-preview - deploy-preview - deploy-stack - namespace - pipeline - push - create-namespace - destroy-pipeline - login - destroy-stack - apply - context -) - -for repo in "${actionsRepos[@]}"; do - echo "$repo" - git clone --depth 1 g...@github.com:okteto/"$repo".git - pushd "$repo" - git config user.name "okteto" - git config user.email "c...@okteto.com" - sed -iE 's_FROM\ okteto\/okteto\:latest_FROM\ okteto\/okteto\:'"$VERSION"'_' Dockerfile - sed -iE 's_FROM\ okteto\/okteto\:[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*_FROM\ okteto\/okteto\:'"$VERSION"'_' Dockerfile - git add Dockerfile - ret=0 - git commit -m "release $VERSION" || ret=1 - if [ $ret -ne 1 ]; then - git push g...@github.com:okteto/"$repo".git main - git --no-pager log -1 - fi - ghr -token "$GITHUB_TOKEN" -replace "$VERSION" - popd - rm -rf "$repo" -done diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/okteto-2.4.0/scripts/upgrade_latest_actions.sh new/okteto-2.4.1/scripts/upgrade_latest_actions.sh --- old/okteto-2.4.0/scripts/upgrade_latest_actions.sh 2022-06-16 12:11:31.000000000 +0200 +++ new/okteto-2.4.1/scripts/upgrade_latest_actions.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -#!/bin/bash -set -e - -VERSION=$1 - -if [ -z "$VERSION" ]; then - echo "missing version" - exit 1 -fi - -actionsRepos=(delete-namespace - build - destroy-preview - deploy-preview - deploy-stack - namespace - pipeline - push - create-namespace - destroy-pipeline - login - destroy-stack - apply - context -) - -for repo in "${actionsRepos[@]}"; do - echo "$repo" - rm -rf "$repo" - git clone g...@github.com:okteto/"$repo".git - pushd "$repo" - git checkout "$VERSION" - ghr -token "$GITHUB_TOKEN" -delete "latest" - popd - rm -rf "$repo" -done ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/okteto/vendor.tar.gz /work/SRC/openSUSE:Factory/.okteto.new.1548/vendor.tar.gz differ: char 5, line 1