Adrien Delorme
44616d3bff
refactor initialization out from packer configs + tests ( #9627 )
...
The initialization of packer core in JSON also validates that `null` variables were set, except in the case of `packer validate --syntax-only` , but after the refactor to allow to have all commands work with HCL2 and JSON this subtlety was lost.
This refactors the initialisation of the core in order to allow to have `packer validate --syntax-only` not error in case a variable is not set. Since these calls are refactored this works for HCL2 too.
fix #9478
2020-07-24 10:58:03 +02:00
Adrien Delorme
125178d943
core: Decode: when in HCL2 decoding mode; reset the whole struct before preparing it. ( #9622 )
...
* core: Decode when in HCL2 decoding mode; reset the whole struct before preparing it.
* HCL2: add path variables + docs & tests
Co-authored-by: Megan Marsh <megan@hashicorp.com>
2020-07-23 09:25:07 +02:00
Adrien Delorme
d84d956e36
add language coment !
2020-07-07 11:43:13 +02:00
Adrien Delorme
a15ad19411
test builds can be 'excepted'
2020-07-07 11:41:24 +02:00
Adrien Delorme
c1c8b8d22a
complete -> recipes
2020-07-07 11:31:19 +02:00
Adrien Delorme
10e5d952ac
unquote 'cooking...'
2020-07-06 18:08:51 +02:00
Adrien Delorme
0deaa5d2a5
add a complete tests for builder variables + only/except
2020-07-06 17:01:55 +02:00
Adrien Delorme
7969b690de
Revert "Share build info with Provisioner and Post-Processor via HCL2 variables ( #9444 )"
...
This reverts commit 99046c9178
.
2020-07-02 15:07:29 +02:00
Adrien Delorme
3d371a2d5d
Add complete HCL2 examples + allow to name a singular build.source blocks ( #9490 )
...
* in the examples/hcl folder
* add possibility to name singular build.source blocks to differentiate their output and to filter on them
2020-07-02 11:07:59 +02:00
Sylvia Moss
99046c9178
Share build info with Provisioner and Post-Processor via HCL2 variables ( #9444 )
2020-06-29 13:44:57 +02:00
Adrien Delorme
6f4d79799b
add thorough test
2020-06-23 15:40:54 +02:00
Adrien Delorme
dabcc866e5
add another inspect test
2020-06-23 15:17:49 +02:00
Adrien Delorme
fb337f8867
hcl work on only/except ( #9454 )
...
* HCL2: allow to skip a named build block too
* test that excepting a build block works
* test only on a named build block
* add/update docs
2020-06-23 10:53:16 +02:00
Moss
daaeccd8b0
Skip consecutives post-processors
2020-06-09 17:35:53 +02:00
Moss
bfb9df0039
fix except flag for JSON and HCL2
2020-06-09 15:26:45 +02:00
Wilken Rivera
f672f5bd9b
command/validate: Add support for HCL2 configuration files
...
* Update validate command to use FixConfig for checking against known
fixers
* Update validation command flag docs
* Add ConfigFixer method to PackerHandler Interface
* Implement ConfigFixer interface in PackerConfig
* Remove all stdout messaging (i.e calls to c.Ui.Say) in the validate
command. The command will only display hcl.Diagnotic messaging when there is an error or warning.
HCL2 Configs
```
⇶ packer validate docker_centos_shell_provisioner.pkr.hcl
```
JSON Configs
```
⇶ packer validate vmware-iso_ubuntu_minimal/vmware-iso_ubuntu_minimal.json
Error: Failed to prepare build: "vmware-iso"
1 error occurred:
* Deprecated configuration key: 'iso_checksum_type'. Please call `packer fix`
against your template to update your template to be compatable with the current
version of Packer. Visit https://www.packer.io/docs/commands/fix/ for more
detail.
Warning: Fixable configuration found.
You may need to run `packer fix` to get your build to run correctly.
See debug log for more information.
map[string]interface{}{
"builders": []interface{}{
map[string]interface{}{
... // 3 identical entries
"guest_os_type": string("ubuntu-64"),
"http_directory": string("http"),
- "iso_checksum":
string("946a6077af6f5f95a51f82fdc44051c7aa19f9cfc5f737954845a6050543d7c2"),
+ "iso_checksum":
string("sha256:946a6077af6f5f95a51f82fdc44051c7aa19f9cfc5f737954845a6050543d7c2"),
- "iso_checksum_type": string("sha256"),
"iso_url":
string("http://old-releases.ubuntu.com/releases/14.04.1/ubuntu-14.04.1-server-amd64.iso "),
"shutdown_command": string("echo 'vagrant' | sudo -S shutdown -P now"),
... // 4 identical entries
},
},
}
```
2020-06-05 14:24:39 -04:00
Adrien Delorme
bac9c74447
packer console for HCL2 ( #9359 )
2020-06-05 17:23:54 +02:00
Tom Dyas
c0a6623ea2
teach HCL mode builds to honor -only and -except options ( #8947 )
2020-04-28 15:03:24 +02:00
Adrien Delorme
2af40c762b
HCL2: pass on builder type and name ( #8956 )
...
* sets `packer_build_name` and `packer_builder_type` variables for builder provisioners and post-processors in HCL2
* allows to use the new `${source.type}` and `${source.name}` variables in HCL2
* fixes #8932
Note that the common.PackerConfig is used everywhere and was not set for HCL2, this had some implications:
For #8923 you can see the issue here:
dde74232f2/builder/lxd/config.go (L61-L63)
More random examples of where this could cause an issue :
0785c2f6fc/provisioner/ansible-local/provisioner.go (L380-L381)
b4efd13a4d/builder/amazon/ebs/builder.go (L232-L236)
* [All references to PackerConfig.PackerBuildName](https://sourcegraph.com/github.com/hashicorp/packer@ff6a039d5bb45e34ff761d9c52e8b98972288447/-/blob/common/packer_config.go#L7:2&tab=references )
* [All references to PackerConfig.PackerBuilderType](https://sourcegraph.com/github.com/hashicorp/packer@ff6a039d5bb45e34ff761d9c52e8b98972288447/-/blob/common/packer_config.go#L8:2&tab=references )
2020-04-09 11:14:37 +02:00
Adrien Delorme
d068430abf
make sure locals are evaluated only once variables are + test this ( #8918 )
...
fix #8898
2020-03-19 15:30:34 +01:00
Adrien Delorme
ad8dafa3bd
HCL: add tests and fixes around var-file and var args ( #8914 )
2020-03-19 13:57:22 +01:00
Sylvia Moss
23fa3107a3
Render variables one time on prepare method ( #8727 )
2020-02-13 17:35:23 +01:00
Moss
a0329ef196
Simplify testing template
2019-12-10 18:59:56 +01:00
Moss
7466c4fdca
Return exit code 1 when builder type is not found
2019-12-10 18:55:18 +01:00
Megan Marsh
59efa0faee
rename option to error-cleanup-privisoner, which I think is clearer
2019-09-25 13:43:29 -07:00
Megan Marsh
0683bc409b
add test for error-cleanup provisioner, and fix tests by fixing null builder to use an actual none communicator instead of skipping communicator generation altogether
2019-09-25 13:39:09 -07:00
Adrien Delorme
583d93790f
add tests for cancellation while building
2019-05-06 15:07:57 +02:00
Adrien Delorme
a2cc2532ea
add TestBuildParallel_Timeout to test errors on parallel builds
2019-05-03 09:02:56 +02:00
Adrien Delorme
852af993e6
BuildParallel: test with 3 parallel builds
2019-05-02 16:24:28 +02:00
Adrien Delorme
14486003a1
fix test to be race free
2019-05-02 15:04:02 +02:00
Brett Wandel
aaf56ffd26
added: testing
2019-05-02 08:38:56 +10:00
Adrien Delorme
d7b1b597a7
test provisionning timeout
2019-04-08 20:09:21 +02:00
Megan Marsh
217a93fc30
fix build_test.go on windows. This code needs to not be run in parallel, or else there can be race conditions with the post-processors all trying to access the same file at once. Additionally, I changed the test template itself so that it is valid code on either bash or cmd. Finally, I found and fixed a small bug in naming the file extensions in shell local inline scripts.
2019-04-04 14:57:56 -07:00
Adrien Delorme
7e2d86731e
tests: add a post-processor that creates an unnamed.txt file
2019-02-20 11:03:17 +01:00
Adrien Delorme
074a74ec38
make sure 'only' completely ignores post-processor
...
before this commit, if one would put a 'only' inside the post-processor definition, the post process could be skipped
2019-02-01 15:21:41 +01:00
Adrien Delorme
58245f2557
break a chain of post-processors when one is skipped & make `-only`
...
"blind" to post-processors
* to avoid trouble
* other arrays of post processors might still be there !
* add docs
* update tests
2019-01-11 14:08:30 +01:00
Adrien Delorme
4bf3cd44fc
allow to skip a post processor
2019-01-10 15:44:34 +01:00
Adrien Delorme
905db043c4
command.TestBuildOnlyFileCommaFlags: create some files using post processors
2019-01-10 15:44:02 +01:00
Matthew Hooker
ddf23a2c46
Complete Atlas deprecation.
...
Removes the push command and the Atlas post-processor. Please see our
guide on building immutable infrastructure with Packer on CI/CD for
ideas on implementing these features yourself.
https://www.packer.io/guides/packer-on-cicd/
2018-08-02 20:23:28 -07:00
Megan Marsh
fdca364f4b
allow user to mark variables as sensitive for packer push
2017-06-08 13:01:23 -07:00
Justin Campbell
16adc3f7cc
command/push: Add test for var-file push to Atlas
2016-11-07 12:52:30 -08:00
Chris Bednarski
b3eacc5c2b
Updated test to verify expected behavior
2015-07-13 19:32:28 -07:00
Chris Bednarski
28a13111b8
Add stub for validate test
2015-07-13 14:57:35 -07:00
Chris Bednarski
94e1f83070
Added a black-box acceptance test for -only and -except build flags
2015-06-27 00:47:50 -07:00
Mitchell Hashimoto
1bcb52a093
command/fix: validate resulting template [GH-2075]
2015-06-13 13:56:09 -04:00
Mitchell Hashimoto
579264bb5b
command/push: interpolate
2015-05-29 15:35:55 -07:00
Mitchell Hashimoto
c9504d50ba
command/push: send artifact true/false if we're post-processing
2014-12-09 16:14:04 -08:00
Mitchell Hashimoto
fbc1551048
command/push: partially implemented, tests
2014-12-09 16:14:03 -08:00