var _ = g.Describe("[builds][Slow] testing build configuration hooks", func() { defer g.GinkgoRecover() var ( buildFixture = exutil.FixturePath("testdata", "test-build-postcommit.json") oc = exutil.NewCLI("cli-test-hooks", exutil.KubeConfigPath()) ) g.JustBeforeEach(func() { g.By("waiting for builder service account") err := exutil.WaitForBuilderAccount(oc.KubeClient().Core().ServiceAccounts(oc.Namespace())) o.Expect(err).NotTo(o.HaveOccurred()) oc.Run("create").Args("-f", buildFixture).Execute() g.By("waiting for istag to initialize") exutil.WaitForAnImageStreamTag(oc, oc.Namespace(), "busybox", "1") }) g.Describe("testing postCommit hook", func() { g.It("successful postCommit script with args", func() { err := oc.Run("patch").Args("bc/busybox", "-p", "{\"spec\":{\"postCommit\":{\"script\":\"echo hello $1\",\"args\":[\"world\"],\"command\":null}}}").Execute() o.Expect(err).NotTo(o.HaveOccurred()) br, _ := exutil.StartBuildAndWait(oc, "busybox") br.AssertSuccess() o.Expect(br.Logs()).To(o.ContainSubstring("hello world")) }) g.It("successful postCommit explicit command", func() { err := oc.Run("patch").Args("bc/busybox", "-p", "{\"spec\":{\"postCommit\":{\"command\":[\"sh\",\"-c\"],\"args\":[\"echo explicit command\"],\"script\":\"\"}}}").Execute() o.Expect(err).NotTo(o.HaveOccurred())
_, err = createLimitRangeOfType(oc, imageapi.LimitTypeImageStream, limit) o.Expect(err).NotTo(o.HaveOccurred()) g.By(fmt.Sprintf("trying to tag a docker image exceeding limit %v", limit)) out, err := oc.Run("import-image").Args("stream:dockerimage", "--confirm", "--insecure", "--from", tag2Image["tag1"].DockerImageReference).Output() o.Expect(err).To(o.HaveOccurred()) o.Expect(out).Should(o.ContainSubstring("exceeds the maximum limit")) o.Expect(out).Should(o.ContainSubstring(string(imageapi.ResourceImageStreamTags))) limit, err = bumpLimit(oc, imageapi.ResourceImageStreamTags, "1") o.Expect(err).NotTo(o.HaveOccurred()) g.By(fmt.Sprintf("trying to tag a docker image below limit %v", limit)) err = oc.Run("import-image").Args("stream:dockerimage", "--confirm", "--insecure", "--from", tag2Image["tag1"].DockerImageReference).Execute() o.Expect(err).NotTo(o.HaveOccurred()) err = exutil.WaitForAnImageStreamTag(oc, oc.Namespace(), "stream", "dockerimage") o.Expect(err).NotTo(o.HaveOccurred()) g.By(fmt.Sprintf("trying to tag a docker image exceeding limit %v", limit)) is, err := oc.Client().ImageStreams(oc.Namespace()).Get("stream") o.Expect(err).NotTo(o.HaveOccurred()) is.Spec.Tags["foo"] = imageapi.TagReference{ Name: "foo", From: &kapi.ObjectReference{ Kind: "DockerImage", Name: tag2Image["tag2"].DockerImageReference, }, ImportPolicy: imageapi.TagImportPolicy{ Insecure: true, }, }
runnerConf = filepath.Join(testDataDir, "jvm-runner.yaml") runnerWithScriptsConf = filepath.Join(testDataDir, "jvm-runner-with-scripts.yaml") scriptsFromRepoBc = filepath.Join(testDataDir, "bc-scripts-in-repo.yaml") scriptsFromUrlBc = filepath.Join(testDataDir, "bc-scripts-by-url.yaml") scriptsFromImageBc = filepath.Join(testDataDir, "bc-scripts-in-the-image.yaml") ) g.JustBeforeEach(func() { g.By("waiting for builder service account") err := exutil.WaitForBuilderAccount(oc.KubeClient().Core().ServiceAccounts(oc.Namespace())) o.Expect(err).NotTo(o.HaveOccurred()) // we have to wait until image stream tag will be available, otherwise // `oc start-build` will fail with 'imagestreamtags "wildfly:10.0" not found' error. // See this issue for details: https://github.com/openshift/origin/issues/10103 err = exutil.WaitForAnImageStreamTag(oc, "openshift", "wildfly", "10.0") o.Expect(err).NotTo(o.HaveOccurred()) }) g.Describe("with scripts from the source repository", func() { oc.SetOutputDir(exutil.TestContext.OutputDir) g.It("should use assemble-runtime script from the source repository", func() { g.By("creating jvm-runner configuration") err := exutil.CreateResource(runnerConf, oc) o.Expect(err).NotTo(o.HaveOccurred()) g.By("building jvm-runner image") br, _ := exutil.StartBuildAndWait(oc, "jvm-runner") br.AssertSuccess()