diff --git a/cmd/cloud-cleaner/main.go b/cmd/cloud-cleaner/main.go index e1a6de9cd..93daca16d 100644 --- a/cmd/cloud-cleaner/main.go +++ b/cmd/cloud-cleaner/main.go @@ -4,10 +4,11 @@ package main import ( "fmt" - "os" "github.com/Azure/go-autorest/autorest/azure/auth" + "github.com/osbuild/osbuild-composer/internal/boot/azuretest" + "github.com/osbuild/osbuild-composer/internal/test" ) func panicErr(err error) { @@ -22,19 +23,7 @@ func printErr(err error) { } } -// GenerateCIArtifactName generates a new identifier for CI artifacts which is based -// on environment variables specified by Jenkins -// note: in case of migration to sth else like Github Actions, change it to whatever variables GH Action provides -func GenerateCIArtifactName(prefix string) (string, error) { - distroCode := os.Getenv("DISTRO_CODE") - branchName := os.Getenv("BRANCH_NAME") - buildId := os.Getenv("BUILD_ID") - if branchName == "" || buildId == "" || distroCode == "" { - return "", fmt.Errorf("The environment variables must specify BRANCH_NAME, BUILD_ID, and DISTRO_CODE") - } - return fmt.Sprintf("%s%s-%s-%s", prefix, distroCode, branchName, buildId), nil -} func main() { fmt.Println("Running a cloud cleanup") @@ -46,7 +35,7 @@ func main() { panic("empty credentials") } // Get test ID - testID, err := GenerateCIArtifactName("") + testID, err := test.GenerateCIArtifactName("") panicErr(err) // Delete the vhd image imageName := "image-" + testID + ".vhd" diff --git a/cmd/osbuild-image-tests/main_test.go b/cmd/osbuild-image-tests/main_test.go index d08f2c443..020d0c62c 100644 --- a/cmd/osbuild-image-tests/main_test.go +++ b/cmd/osbuild-image-tests/main_test.go @@ -29,6 +29,7 @@ import ( "github.com/osbuild/osbuild-composer/internal/boot/openstacktest" "github.com/osbuild/osbuild-composer/internal/boot/vmwaretest" "github.com/osbuild/osbuild-composer/internal/common" + "github.com/osbuild/osbuild-composer/internal/test" "github.com/osbuild/osbuild-composer/internal/upload/vmware" ) @@ -48,20 +49,6 @@ type testcaseStruct struct { var disableLocalBoot = flag.Bool("disable-local-boot", false, "when this flag is given, no images are booted locally using qemu (this does not affect testing in clouds)") var failLocalBoot = flag.Bool("fail-local-boot", true, "when this flag is on (default), local boot will fail. Usually indicates missing cloud credentials") -// GenerateCIArtifactName generates a new identifier for CI artifacts which is based -// on environment variables specified by Jenkins -// note: in case of migration to sth else like Github Actions, change it to whatever variables GH Action provides -func GenerateCIArtifactName(prefix string) (string, error) { - distroCode := os.Getenv("DISTRO_CODE") - branchName := os.Getenv("BRANCH_NAME") - buildId := os.Getenv("BUILD_ID") - if branchName == "" || buildId == "" || distroCode == "" { - return "", fmt.Errorf("The environment variables must specify BRANCH_NAME, BUILD_ID, and DISTRO_CODE") - } - - return fmt.Sprintf("%s%s-%s-%s", prefix, distroCode, branchName, buildId), nil -} - // runOsbuild runs osbuild with the specified manifest and output-directory. func runOsbuild(manifest []byte, store, outputDirectory string) error { cmd := constants.GetOsbuildCommand(store, outputDirectory) @@ -250,7 +237,7 @@ func testBootUsingAWS(t *testing.T, imagePath string) { } - imageName, err := GenerateCIArtifactName("osbuild-image-tests-image-") + imageName, err := test.GenerateCIArtifactName("osbuild-image-tests-image-") require.NoError(t, err) e, err := boot.NewEC2(creds) @@ -269,7 +256,7 @@ func testBootUsingAWS(t *testing.T, imagePath string) { require.NoErrorf(t, err, "cannot delete the ec2 image, resources could have been leaked") }() - securityGroupName, err := GenerateCIArtifactName("osbuild-image-tests-security-group-") + securityGroupName, err := test.GenerateCIArtifactName("osbuild-image-tests-security-group-") require.NoError(t, err) instanceTypeForArch := map[string]string{ @@ -304,7 +291,7 @@ func testBootUsingAzure(t *testing.T, imagePath string) { } // create a random test id to name all the resources used in this test - testId, err := GenerateCIArtifactName("") + testId, err := test.GenerateCIArtifactName("") require.NoError(t, err) imageName := "image-" + testId + ".vhd" @@ -345,7 +332,7 @@ func testBootUsingOpenStack(t *testing.T, imagePath string) { require.NoError(t, err) // create a random test id to name all the resources used in this test - imageName, err := GenerateCIArtifactName("osbuild-image-tests-openstack-image-") + imageName, err := test.GenerateCIArtifactName("osbuild-image-tests-openstack-image-") require.NoError(t, err) // the following line should be done by osbuild-composer at some point @@ -395,7 +382,7 @@ func testBootUsingVMware(t *testing.T, imagePath string) { defer os.Remove(imagePath) // create a random test id to name all the resources used in this test - imageName, err := GenerateCIArtifactName("osbuild-image-tests-vmware-image-") + imageName, err := test.GenerateCIArtifactName("osbuild-image-tests-vmware-image-") require.NoError(t, err) // the following line should be done by osbuild-composer at some point diff --git a/internal/test/helpers.go b/internal/test/helpers.go index 020f9c2cb..2c8e9eae1 100644 --- a/internal/test/helpers.go +++ b/internal/test/helpers.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "encoding/json" + "fmt" "io/ioutil" "net" "net/http" @@ -226,3 +227,17 @@ func SetUpTemporaryRepository() (string, error) { func TearDownTemporaryRepository(dir string) error { return os.RemoveAll(dir) } + +// GenerateCIArtifactName generates a new identifier for CI artifacts which is based +// on environment variables specified by Jenkins +// note: in case of migration to sth else like Github Actions, change it to whatever variables GH Action provides +func GenerateCIArtifactName(prefix string) (string, error) { + distroCode := os.Getenv("DISTRO_CODE") + branchName := os.Getenv("BRANCH_NAME") + buildId := os.Getenv("BUILD_ID") + if branchName == "" || buildId == "" || distroCode == "" { + return "", fmt.Errorf("The environment variables must specify BRANCH_NAME, BUILD_ID, and DISTRO_CODE") + } + + return fmt.Sprintf("%s%s-%s-%s", prefix, distroCode, branchName, buildId), nil +}