This change uses a different as part of the TestArchive output path to fix
an intermittently failing test case on Windows caused by using the same
output name across test cases.
Originally tired to use t.TempDir() to gt a temp path but ran into
errors with parsing the config on Windows.
```
Unable to parse test config: invalid character 'U' in string escape code
```
* compress post processor: add bzip2 + tests
* post-processor/compress/post-processor_test.go: refactor tests and add tests for bzip2
* post-processor_test.go: test write/read for all compression algos
* check artifact.Destroy() errors
* close archive before deleting it
Co-authored-by: Adrien Delorme <azr@users.noreply.github.com>
* removed packer.Cache and references since packer.Cache is never used except in the download step. The download step now uses the new func packer.CachePath(targetPath) for this, the behavior is the same.
* removed download code from packer that was reimplemented into the go-getter library: progress bar, http download restart, checksuming from file, skip already downloaded files, symlinking, make a download cancellable by context.
* on windows if packer is running without symlinking rights and we are getting a local file, the file will be copied instead to avoid errors.
* added unit tests for step_download that are now CI tested on windows, mac & linux.
* files are now downloaded under cache dir `sha1(filename + "?checksum=" + checksum) + file_extension`
* since the output dir is based on the source url and the checksum, when the checksum fails, the file is auto deleted.
* a download file is protected and locked by a file lock,
* updated docs
* updated go modules and vendors
This commit adds support for a post-processor that produces a compressed
archive that can be uploaded to an OpenStack cluster through either
the Horizon web interface or Glance.