From 8402e002221ce6038f3327a05c05e08488ed2fcb Mon Sep 17 00:00:00 2001 From: Lucas Bajolet Date: Wed, 29 May 2024 10:52:24 -0400 Subject: [PATCH] packer_test: add test with config.json/components Since legacy config files may declare single plugin components, we need to warn that they're not supported anymore. This is in process of being PR'd into main, but to ensure the config works as intended and we do get the error, we add some tests for that. --- packer_test/loading_test.go | 28 ++++++++++++++++++++++++++++ packer_test/sample_config.json | 7 +++++++ 2 files changed, 35 insertions(+) create mode 100644 packer_test/sample_config.json diff --git a/packer_test/loading_test.go b/packer_test/loading_test.go index 59126a053..1f1d8ceee 100644 --- a/packer_test/loading_test.go +++ b/packer_test/loading_test.go @@ -209,3 +209,31 @@ func (ts *PackerTestSuite) TestLoadWithOnlyReleaseFlag() { }) } } + +func (ts *PackerTestSuite) TestWithLegacyConfigAndComponents() { + pluginDir, cleanup := ts.MakePluginDir("1.0.0") + defer cleanup() + + workdir, cleanup := TempWorkdir(ts.T(), "./sample_config.json", "./templates/simple.json", "./templates/simple.pkr.hcl") + defer cleanup() + + for _, cmd := range []string{"validate", "build"} { + ts.Run(fmt.Sprintf("%s simple JSON template with config.json and components defined", cmd), func() { + ts.PackerCommand().UsePluginDir(pluginDir).SetWD(workdir). + SetArgs(cmd, "simple.json"). + AddEnv("PACKER_CONFIG", filepath.Join(workdir, "sample_config.json")). + Assert(MustFail(), + Grep("Your configuration file describes some legacy components", grepStderr), + Grep("packer-provisioner-super-shell", grepStderr)) + }) + + ts.Run(fmt.Sprintf("%s simple HCL2 template with config.json and components defined", cmd), func() { + ts.PackerCommand().UsePluginDir(pluginDir).SetWD(workdir). + SetArgs(cmd, "simple.pkr.hcl"). + AddEnv("PACKER_CONFIG", filepath.Join(workdir, "sample_config.json")). + Assert(MustFail(), + Grep("Your configuration file describes some legacy components", grepStderr), + Grep("packer-provisioner-super-shell", grepStderr)) + }) + } +} diff --git a/packer_test/sample_config.json b/packer_test/sample_config.json new file mode 100644 index 000000000..80f755813 --- /dev/null +++ b/packer_test/sample_config.json @@ -0,0 +1,7 @@ +{ + "disable_checkpoint": true, + "disable_checkpoint_signature": true, + "provisioners": { + "super-shell": "packer-provisioner-super-shell" + } +}