diff --git a/magefiles/magefile.go b/magefiles/magefile.go index 454c0fa9d7..d2d332495d 100644 --- a/magefiles/magefile.go +++ b/magefiles/magefile.go @@ -294,7 +294,7 @@ func (ci CI) TestE2E() error { } func RunE2ETests() error { - labelFilter := utils.GetEnv("E2E_TEST_SUITE_LABEL", "!upgrade-create && !upgrade-verify && !upgrade-cleanup && !release-pipelines") + labelFilter := utils.GetEnv("E2E_TEST_SUITE_LABEL", "!upgrade-create && !upgrade-verify && !upgrade-cleanup") return runTests(labelFilter, "e2e-report.xml") } diff --git a/tests/release/pipelines/push_to_external_registry.go b/tests/release/pipelines/push_to_external_registry.go index d644a1600c..a6a243d976 100644 --- a/tests/release/pipelines/push_to_external_registry.go +++ b/tests/release/pipelines/push_to_external_registry.go @@ -84,7 +84,7 @@ var _ = framework.ReleasePipelinesSuiteDescribe("Push to external registry", Lab "mapping": map[string]interface{}{ "components": []map[string]interface{}{ { - "name": component.GetName(), + "name": component.GetName(), "repository": releasecommon.ReleasedImagePushRepo, }, }, @@ -168,15 +168,14 @@ var _ = framework.ReleasePipelinesSuiteDescribe("Push to external registry", Lab }) It("tests if the image was pushed to quay", func() { - //retrieve the component to get the latest data + // retrieve the component to get the latest data component, err := fw.AsKubeAdmin.HasController.GetComponent(component.GetName(), devNamespace) Expect(err).ShouldNot(HaveOccurred(), fmt.Sprintf("could not get component %s in the %s namespace", component.GetName(), devNamespace)) containerImageDigest := strings.Split(component.Spec.ContainerImage, "@")[1] - - imageDigest, err := releasecommon.GetDigestWithTagInQuay(releasecommon.ReleasedImagePushRepo + ":latest") - Expect(err).ShouldNot(HaveOccurred(), fmt.Sprintf("failed while getting Digest for quay image %s with error: %+v", releasecommon.ReleasedImagePushRepo + ":latest", err)) - Expect(imageDigest).To(Equal(containerImageDigest)) - }) + digestExist, err := releasecommon.DoesDigestExistInQuay(releasecommon.ReleasedImagePushRepo, containerImageDigest) + Expect(err).ShouldNot(HaveOccurred(), fmt.Sprintf("failed while getting Digest for quay image %s with error: %+v", releasecommon.ReleasedImagePushRepo+"@"+containerImageDigest, err)) + Expect(digestExist).To(BeTrue()) + }) It("verifies that a Release is marked as succeeded.", func() { Eventually(func() error { diff --git a/tests/release/quay.go b/tests/release/quay.go index 1da691b64b..318218a39b 100644 --- a/tests/release/quay.go +++ b/tests/release/quay.go @@ -11,30 +11,29 @@ import ( var ( quayApiUrl = "https://quay.io/api/v1" - quayOrg = utils.GetEnv("IMAGE_CONTROLLER_QUAY_ORG", "hacbs-release-tests") + // quayOrg = utils.GetEnv("IMAGE_CONTROLLER_QUAY_ORG", "hacbs-release-tests") quayToken = utils.GetEnv("IMAGE_CONTROLLER_QUAY_ORG_TOKEN", "") quayClient = quay.NewQuayClient(&http.Client{Transport: &http.Transport{}}, quayToken, quayApiUrl) ) -// imageURL format example: quay.io/redhat-appstudio-qe/devfile-go-rhtap-uvv7:latest -func GetDigestWithTagInQuay(imageURL string) (string, error) { - urlParts := strings.Split(imageURL, ":") - if len(urlParts) != 2 { - return "", fmt.Errorf("image URL %s has incorrect format", imageURL) - } - repoParts := strings.Split(urlParts[0], "/") +// repoURL format example: quay.io/redhat-appstudio-qe/dcmetromap +func DoesDigestExistInQuay(repoURL string, digest string) (bool, error) { + repoParts := strings.Split(repoURL, "/") if len(repoParts) <= 2 { - return "", fmt.Errorf("image URL %s is not complete", imageURL) + return false, fmt.Errorf("repo URL %s is not complete", repoURL) } + repoName := strings.Join(repoParts[2:], "/") - tagList, _, err := quayClient.GetTagsFromPage(quayOrg, repoName, 0) + tagList, _, err := quayClient.GetTagsFromPage(repoParts[1], repoName, 0) if err != nil { - return "", err + return false, err } + for _, tag := range tagList { - if tag.Name == urlParts[1] { - return tag.ManifestDigest, nil + if tag.ManifestDigest == digest { + return true, nil } } - return "", fmt.Errorf("no image is found") + + return false, fmt.Errorf("no image is found") }