github.com/containers/podman/v2@v2.2.2-0.20210501105131-c1e07d070c4c/test/e2e/image_sign_test.go (about) 1 package integration 2 3 import ( 4 "os" 5 "os/exec" 6 "path/filepath" 7 8 . "github.com/containers/podman/v2/test/utils" 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 ) 12 13 var _ = Describe("Podman image sign", func() { 14 var ( 15 origGNUPGHOME string 16 tempdir string 17 err error 18 podmanTest *PodmanTestIntegration 19 ) 20 21 BeforeEach(func() { 22 SkipIfRemote("podman-remote image sign is not supported") 23 tempdir, err = CreateTempDirInTempDir() 24 if err != nil { 25 os.Exit(1) 26 } 27 podmanTest = PodmanTestCreate(tempdir) 28 podmanTest.Setup() 29 podmanTest.SeedImages() 30 31 tempGNUPGHOME := filepath.Join(podmanTest.TempDir, "tmpGPG") 32 err := os.Mkdir(tempGNUPGHOME, os.ModePerm) 33 Expect(err).To(BeNil()) 34 35 origGNUPGHOME = os.Getenv("GNUPGHOME") 36 err = os.Setenv("GNUPGHOME", tempGNUPGHOME) 37 Expect(err).To(BeNil()) 38 39 }) 40 41 AfterEach(func() { 42 podmanTest.Cleanup() 43 f := CurrentGinkgoTestDescription() 44 processTestResult(f) 45 os.Setenv("GNUPGHOME", origGNUPGHOME) 46 }) 47 48 It("podman sign image", func() { 49 cmd := exec.Command("gpg", "--import", "sign/secret-key.asc") 50 err := cmd.Run() 51 Expect(err).To(BeNil()) 52 sigDir := filepath.Join(podmanTest.TempDir, "test-sign") 53 err = os.MkdirAll(sigDir, os.ModePerm) 54 Expect(err).To(BeNil()) 55 session := podmanTest.Podman([]string{"image", "sign", "--directory", sigDir, "--sign-by", "foo@bar.com", "docker://library/alpine"}) 56 session.WaitWithDefaultTimeout() 57 Expect(session.ExitCode()).To(Equal(0)) 58 _, err = os.Stat(filepath.Join(sigDir, "library")) 59 Expect(err).To(BeNil()) 60 }) 61 })