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  })