Adrien Delorme
9d0193ac14
add possibility to use variables everywhere in post-processor blocks ( #11094 )
...
feature + tests.
Including in:
* name
* only
* except
* keep_input_artifact
Example file:
```hcl
source "null" "example1" {
communicator = "none"
}
source "null" "example2" {
communicator = "none"
}
locals {
except = "null.example1"
}
variable "only" {
default = "null.example1"
}
build {
sources = ["source.null.example1", "source.null.example2"]
post-processor "shell-local" {
except = [local.except]
inline = ["echo first post-processor"]
}
post-processor "shell-local" {
only = [var.only]
inline = ["echo second post-processor"]
}
}
```
Ouput:
```shell-session
$ packer build foo.pkr.hcl
null.example1: output will be in this color.
null.example2: output will be in this color.
==> null.example1: Running post-processor: (type shell-local)
==> null.example2: Running post-processor: (type shell-local)
==> null.example2 (shell-local): Running local shell script: /var/folders/3k/2gb5ct4s7cncr52_jh2kz6cw0000gq/T/packer-shell201696062
==> null.example1 (shell-local): Running local shell script: /var/folders/3k/2gb5ct4s7cncr52_jh2kz6cw0000gq/T/packer-shell494781572
null.example1 (shell-local): second post-processor
Build 'null.example1' finished after 61 milliseconds 432 microseconds.
null.example2 (shell-local): first post-processor
Build 'null.example2' finished after 111 milliseconds 678 microseconds.
==> Wait completed after 111 milliseconds 714 microseconds
```
close #4895
2021-06-15 18:29:26 +02:00
Adrien Delorme
77a29fc2f8
Allow to have dynamic blocks in a build block + tests ( #10825 )
...
This :
* allows to have a `build.dynamic` block
* add tests
* makes sure to show a correct message when a source was not found
* display only name of source (instead of a weird map printout)
* use a "Did you mean %q" feature where possible
Because dynamic blocks need all variables to be evaluated and available, I moved parsing of everything that is not a variable to "after" variables are extrapolated. Meaning that dynamic block get expanded in the `init` phase and then only we start interpreting HCL2 content.
After #10819 fix #10657
2021-03-30 15:53:04 +02:00
Adrien Delorme
a115b428ac
simplify fmt test case a little
2021-03-12 11:07:26 +01:00
Sylvia Moss
ef4afafde9
Fix force flag for hcl2 provisioners and post-processors ( #10571 )
2021-02-05 10:57:14 +01:00
Adrien Delorme
ed091163be
HCL2 Parse packer.required_plugins block + packer init ( #10304 )
...
This adds the new `required_plugins` block to be nested under the packer block.
Example:
```hcl
packer {
required_plugins {
aws = {
version = ">= 2.7.0"
source = "azr/aws"
}
azure = ">= 2.7.0"
}
}
```
For example on darwin_amd64 Packer will install those under :
* "${PACKER_HOME_DIR}/plugin/github.com/azr/amazon/packer-plugin-amazon_2.7.0_x5.0_darwin_amd64"
* "${PACKER_HOME_DIR}/plugin/github.com/hashicorp/azure/packer-plugin-azure_2.7.0_x5.0_darwin_amd64_x5"
+ docs
+ tests
2021-02-02 18:05:04 +01:00
Sylvia Moss
291121dd55
(2) Implement datasources ( #10440 )
2021-01-20 10:37:16 +01:00
Adrien Delorme
52d2d7fe5f
Copy MapOf... plugin types back into Packer core ( #10466 )
...
* move maps of plugins back in core
* go mod vendor
* more fixes
* fix imports
* Update core_test.go
* fix build
* more fixes
* more fixes
* up vendors after fixing sdk
* Update post_processor_mock.hcl2spec.go
* Leave implementatino of MapOf in the sdk for plugi tests
Other wise use the interface
* go mod tidy
* add MapOfDatasource type too
2021-01-13 12:14:06 +01:00
Megan Marsh
88b7b0e14a
remove sdk
2020-12-17 13:29:25 -08:00
Megan Marsh
5576bb5caa
move packer config constants next to the packer config
2020-12-03 10:17:35 -08:00
Megan Marsh
b69d69095e
move postprocessor to sdk, fix generation code
2020-12-01 14:48:55 -08:00
Megan Marsh
be5763ec41
move provisioner interface into sdk
2020-12-01 14:25:14 -08:00
Megan Marsh
ada91b24e9
extract builder interface to sdk
2020-12-01 13:42:42 -08:00
Megan Marsh
d5971ca25e
fix tests by moving mock hooks and communicators, and BasicUi definition, into SDK
2020-11-30 14:30:30 -08:00
Adrien Delorme
6dd06fad14
add command/ tests
2020-11-02 15:50:38 +01:00
Megan Marsh
66b81d9bee
add build.name to hcl code ( #10114 )
2020-10-16 10:57:42 +02:00
Adrien Delorme
3d7ab9ea43
add an hcl2-json test
2020-09-18 16:38:04 +02:00
sylviamoss
39a8dee4ea
add tests and update override example
2020-08-14 11:22:51 +02:00
Chris Gilmer
6e918c4bd3
Update test for builder output
2020-08-11 15:25:33 -07:00
Adrien Delorme and Megan Marsh
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 <[email protected] >
2020-07-23 09:25:07 +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
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
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
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
Adrien Delorme
e6aac8cd6f
Update build_test.go
2020-05-08 17:50:48 +02:00
Adrien Delorme
efcc6af06c
fix tests
2020-05-08 17:46:33 +02:00
Adrien Delorme
42a05e1e80
more refactoring
2020-05-08 16:41:47 +02:00