This will build local terraform providers individually. The local terraform
providers are the providers that either (1) are not published in a public
regisrty or (2) require patches.
azureprivatedns: private to the installer repo
azurestack: requires patches
ibm: arm build is not published
ignition: arm buid is not published
ironic: not published
ovirt: not published
vsphere: requires patches
vsphereprivate: private to the installer repo
Building these has been added hack/build.sh. In the future a better way of
handling the vendoring in the individual directories will be necessary.
co-authored: staebler
Setting --workdir and passing ${@} through means:
$ ./hack/shellcheck.sh
will show any errors with relative paths that will still work outside
the container. For example:
./tests/smoke/.build/external/go_sdk/src/syscall/mkall.sh:278:7: note: Expressions don't expand in single quotes, use double quotes for that. [SC2016]
instead of:
/workdir/tests/smoke/.build/external/go_sdk/src/syscall/mkall.sh:278:7: note: Expressions don't expand in single quotes, use double quotes for that. [SC2016]
Adding prune rules for vendor and .build under tests/smoke avoids
complaining about that file and others over which are maintained
upstream or elsewhere.
Like we did in bootkube.sh in 0fa4eb13 (Fix perm errors with selinux
enabled, 2018-08-15, #134). This gives us permission to access the
mounted volume when SELinux is enabled (docs in [1]).
I've also normalized these invocations for consistency between the
various hack/ scripts:
* Adding slash separators to put each option on its own line,
excepting the final command being run in the container. This makes
the long commands slightly easier to skim. It will also make it
easier to track down motivation for an option with 'git blame',
because commits touching options on other lines won't clutter the
blame.
* Use long-form options (-v -> --volume, etc.). This makes the
options a bit more accessible to newcomers, and now that each option
is on it's own line we have plenty of space.
* Dropped single quotes from 'TRUE'. There are no shell-sensitive
characters in TRUE, so there's no need to quote it.
* Use ${PWD} consistently. It's in POSIX [2], so there's no need to
execute a pwd process to get this value.
* Drop -t. None of these commands should need a pseudoterminal.
* Drop explicit rw --volume options. They're the default [3].
[1]: https://github.com/containers/libpod/blame/v0.8.3/docs/podman-run.1.md#L628
[2]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03
[3]: https://github.com/containers/libpod/blame/v0.8.3/docs/podman-run.1.md#L646